มาลองทำ Kubernetes บน Windows กัน

Windows ❤ K8S

ก่อนหน้านี้เราลองทำในฝั่งของ Linux กันมาแล้ว แต่คราวนี้เรามาลองทำในฝั่ง ของ Windows กันดูบ้างดีกว่า

เกริ่นก่อนเลยว่าสำหรับบทความนี้จริงๆ ค่อนข้างจะเผาหน่อยนะครับ ต้องขออภัยด้วยถ้ามีจุดที่ผิดพลาดครับ

เตรียมของกันก่อน

  • Windows 10 Pro x64 หรือ Windows Server 2016
  • Hyper-v และ Container
  • Docker for Windows (ตั้งแต่ 18.03 ขึ้นไป แต่แนะนำที่ 18.06 ครับ)

เริ่มกันเลย…

ติดตั้ง Hyper-V และ Container จากเมนู Turn Windows features on or off ใน Programs and Features

Enable hyper-v and container features

จากนั้นก็ติดตั้ง Chocolatey ซะ (Chocolatey จะเหมือนกับ apt ในฝั่ง linux ครับ) ถ้าใช้ cmd ก็ใช้คำสั่งนี้ (อย่าลืม run as administrator ด้วยนะครับ)

c:\> @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

แต่ถ้าใช้ powershell ก็ใช้คำสั่งนี้ครับ

PS c:\> Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

หลังจากติดตั้งเสร็จแล้วให้ปิดแล้วเปิดหน้าต่าง cmd หรือ powershell ขึ้นมาใหม่เพื่อจะได้เรียกใช้คำสั่ง choco เพื่อลงโปรแกรมได้ครับ

… ว่าแต่… ถ้าไม่ลง Chocolatey ได้มั้ย ได้ครับ แค่โหลด Docker for windows จากหน้าเว็บของ Docker หรือจากลิงค์นี้เลยก็ได้ครับ จากนั้นก็ข้ามไปทำตามขั้นตอนต่อจากลง cmder ไปได้เลยครับ

ติดตั้ง cmder ซะ (สำหรับตัวนี้จะเป็น emulator ที่สามารถทำให้เราเรียกใช้งาน console ตัวต่างๆ ได้ เช่น cmd หรือ powershell ได้หลายหน้าต่างครับ)

c:\> choco install cmder -y

หลังจากติดตั้งเสร็จแล้วตัว cmder จะอยู่ที่ C:\tools\cmder ก็ไปเปิดขึ้นมา ซึ่งในการเปิดครั้งแรก ตัวโปรแกรมจะมีการตั้งค่า Path ใน Environment ของ windows เพื่อให้สามารถเรียกใช้งานในครั้งต่อไปได้ง่ายขึ้นครับ

Cmder Install location

จากั้นเราก็จะมาติดตั้ง Docker for windows กันต่อด้วยคำสั่ง

PS C:\> choco install docker-for-windows -y

หลังจากติดตั้งเสร็จแล้วจะมี Icon ของ Docker อยู่ที่หน้า Desktop

Docker for Windows Icon

ให้ดับเบิ้ลคลิกขึ้นมาแล้วจะมีไอคอนแสดงอยู่ตรง System tray

System tray

ก็รอจนกว่าจะมีข้อความแจ้งว่า Docker ทำงานแล้ว ดังภาพ

Docker runnit notification

หากติดตั้งครั้งแรกจะมีหน้าต่างนี้ขึ้นมาให้เรา Login เพื่อเอาไว้สำหรับ push image เราขึ้น Docker store ครับ

Docker Login

จากนั้นให้เปลี่ยนเป็น Linux Container ก่อนเพื่อติดตั้งK8S โดยคลิกขวาที่ไอคอนแล้วเลือกคำสั่ง Switch to Linux containers…

Switch to Lunux cotainer command

รอจน Docker แจ้งว่าสลับเสร็จแล้ว จากนั้นก็เข้าที่คำสั่ง Settings เพื่อเข้าสู่ขั้นตอนติดตั้ง K8S โดยในตอนนี้จะมีเมนู Kubernetes แสดงขึ้นมา (หากไม่สลับเป็น Linux จะไม่มีเมนูนี้แสดงขึ้นมา)

Kubernetes Install

ให้เลือกตามภาพข้างบนแล้วจากนั้นคลิกที่ Apply เพื่อทำการติดตั้ง และจะมีหน้าต่างยืนยันการติดตั้งแสดงขึ้นมาดังภาพ ก็ให้คลิกที่ Install ไปเลยครับ

Kuberbetes cluster installation confirm

ต่อจากนั้นก็นั่งรอไปเรื่อยๆ จนกว่าจะเสร็จครับ

Kubernetes installation progress

หากไม่มีปัญหาอะไร ตรงมุมซ้ายล่างจะมีไอคอนของ kubernetes ขึ้นมาแบบนี้ครับ

หลังจากติดตั้งเสร็จแล้ว ขั้นตอนต่อไปก็จะเป็นการติดตั้ง Dashboard ของ K8S กัน (สำหรับตัว Docker for windows เราจะไม่ได้ทำการสร้าง pods เหมือนกับฝั่ง Linux เพราะงั้นเลยข้ามไปที่ Dashboard กันเลยครับ)

เริ่มด้วยการ create dashboard ด้วยคำสั่ง

PS C:\> kubectl create -f https://raw.githubusercontent.com/VatthanachaiW/kubernete-config/master/kubernetes-dashboard.yaml
Kubernetes dashboard create

จากนั้นก็มาลง heapster กันต่อ ด้วยคำสั่ง

PS C:\> kubectl create -f https://raw.githubusercontent.com/VatthanachaiW/kubernete-config/master/kube-heapster-addon.yaml
Heapster create

มาทำที่เก็บข้อมูล statistic ด้วยตัว influxdb กันต่อ

PS C:\> kubectl create -f https://raw.githubusercontent.com/VatthanachaiW/kubernete-config/master/influxdb.yaml
Influxdb create

จากนั้นก็มาทำ cluster ของตัว heapster กันด้วยคำสั่ง

PS C:\> kubectl create -f https://raw.githubusercontent.com/VatthanachaiW/kubernete-config/master/heapster.yaml
heapser cluster create

จากนั้นก็ใช้คำสั่งนี้เพื่อเช็คว่า ทุกอย่างทำงานปกติหรือเปล่า ซึ่งทุกอย่างก็จะแจ้งสถานะว่า Running ดังภาพ

PS C:\> kubectl get pods --all-namespaces
Pods Status

หลังจากทุกอย่างเสร็จแล้ว เราก็จะใช้คำสั่งนี้เพื่อเข้าหน้า Dashboard กัน

PS C:\> kubectl proxy
Start Kubectl Dashboard

(สำหรับ port ที่จะเข้าใช้งานในแต่ละเครื่องอาจจะไม่เหมือนกันครับ)

ต่อจากนั้นเราก็เข้าหน้า Dashboard ผ่านทาง localhost โดย Address จะเป็นดังนี้

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

แล้วจะเจอหน้าจอ Login ของ Kubernetes Dashboard ดังนี้ ก็ได้คลิกที่ Skip เพื่อเข้าหน้าหลักได้เลยครับ

Kubernetes Dashboard Login

หลังจากนั้นก็จะเข้าหน้า Dashboard ซึ่งจะมีลักษณะแบบนี้ครับ

Kubernetes Dashboard

สำหรับขั้นตอนการทำ Kubernetes บน Windows ก็มีเพียงแค่นี้ครับ หวังว่าพอจะมีประโยชน์สำหรับคนที่ต้องการศึกษานะครับ

เพิ่มเติมอีกนิดครับ สามารถ Switch ไปใช้ Windows Container ได้ตามปกติครับและสามารถใช้ K8S ได้พร้อมกันครับ