มาลองทำ Kubernetes บน Windows กัน
--
ก่อนหน้านี้เราลองทำในฝั่งของ 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
จากนั้นก็ติดตั้ง 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 เพื่อให้สามารถเรียกใช้งานในครั้งต่อไปได้ง่ายขึ้นครับ
จากนั้นเราก็จะมาติดตั้ง Docker for windows กันต่อด้วยคำสั่ง
PS C:\> choco install docker-for-windows -y
หลังจากติดตั้งเสร็จแล้วจะมี Icon ของ Docker อยู่ที่หน้า Desktop
ให้ดับเบิ้ลคลิกขึ้นมาแล้วจะมีไอคอนแสดงอยู่ตรง System tray
ก็รอจนกว่าจะมีข้อความแจ้งว่า Docker ทำงานแล้ว ดังภาพ
หากติดตั้งครั้งแรกจะมีหน้าต่างนี้ขึ้นมาให้เรา Login เพื่อเอาไว้สำหรับ push image เราขึ้น Docker store ครับ
จากนั้นให้เปลี่ยนเป็น Linux Container ก่อนเพื่อติดตั้งK8S โดยคลิกขวาที่ไอคอนแล้วเลือกคำสั่ง Switch to Linux containers…
รอจน Docker แจ้งว่าสลับเสร็จแล้ว จากนั้นก็เข้าที่คำสั่ง Settings เพื่อเข้าสู่ขั้นตอนติดตั้ง K8S โดยในตอนนี้จะมีเมนู Kubernetes แสดงขึ้นมา (หากไม่สลับเป็น Linux จะไม่มีเมนูนี้แสดงขึ้นมา)
ให้เลือกตามภาพข้างบนแล้วจากนั้นคลิกที่ Apply เพื่อทำการติดตั้ง และจะมีหน้าต่างยืนยันการติดตั้งแสดงขึ้นมาดังภาพ ก็ให้คลิกที่ Install ไปเลยครับ
ต่อจากนั้นก็นั่งรอไปเรื่อยๆ จนกว่าจะเสร็จครับ
หากไม่มีปัญหาอะไร ตรงมุมซ้ายล่างจะมีไอคอนของ 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
จากนั้นก็มาลง heapster กันต่อ ด้วยคำสั่ง
PS C:\> kubectl create -f https://raw.githubusercontent.com/VatthanachaiW/kubernete-config/master/kube-heapster-addon.yaml
มาทำที่เก็บข้อมูล statistic ด้วยตัว influxdb กันต่อ
PS C:\> kubectl create -f https://raw.githubusercontent.com/VatthanachaiW/kubernete-config/master/influxdb.yaml
จากนั้นก็มาทำ cluster ของตัว heapster กันด้วยคำสั่ง
PS C:\> kubectl create -f https://raw.githubusercontent.com/VatthanachaiW/kubernete-config/master/heapster.yaml
จากนั้นก็ใช้คำสั่งนี้เพื่อเช็คว่า ทุกอย่างทำงานปกติหรือเปล่า ซึ่งทุกอย่างก็จะแจ้งสถานะว่า Running ดังภาพ
PS C:\> kubectl get pods --all-namespaces
หลังจากทุกอย่างเสร็จแล้ว เราก็จะใช้คำสั่งนี้เพื่อเข้าหน้า Dashboard กัน
PS C:\> kubectl proxy
(สำหรับ port ที่จะเข้าใช้งานในแต่ละเครื่องอาจจะไม่เหมือนกันครับ)
ต่อจากนั้นเราก็เข้าหน้า Dashboard ผ่านทาง localhost โดย Address จะเป็นดังนี้
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
แล้วจะเจอหน้าจอ Login ของ Kubernetes Dashboard ดังนี้ ก็ได้คลิกที่ Skip เพื่อเข้าหน้าหลักได้เลยครับ
หลังจากนั้นก็จะเข้าหน้า Dashboard ซึ่งจะมีลักษณะแบบนี้ครับ
สำหรับขั้นตอนการทำ Kubernetes บน Windows ก็มีเพียงแค่นี้ครับ หวังว่าพอจะมีประโยชน์สำหรับคนที่ต้องการศึกษานะครับ
เพิ่มเติมอีกนิดครับ สามารถ Switch ไปใช้ Windows Container ได้ตามปกติครับและสามารถใช้ K8S ได้พร้อมกันครับ