kind ของดีที่ทำให้เรามี K8S Cluster ใช้งานแบบไม่ยุ่งยาก บน Windows 10
Tags: kubernetes, kind, windows, thai
Published: 2021-02-03 17:31:16

>ตอนนี้เขียนจากส่วนประกอบต่าง ๆ ดังนี้
- Windows 10 version 20H2 (Os Build 19042.746) 
- Docker Desktop version 3.1.0(51484)
- kubectl.exe ติดตั้งเรียบร้อย
- สร้าง Kubernetes Cluster ชื่อว่า d8k ประกอบด้วย 1 Control Plane และ 2 Node

kind เป็นเครื่องมือที่จะทำให้มี Kubernetes Cluster ใช้งานโดยใช้ Docker Container เป็น node ดังนั้นถ้าระบบปฎิบัติการใดที่มี kind ให้ใช้งานได้ และติดตั้ง Docker ได้ก็จะทำได้ เท่าที่อ่านดูก็เป็นการจับคู่ที่หลากหลาย อย่างใน macOS ก็จะเป็น kind สำหรับ macOS และ Docker Desktop  หรือว่า kind สำหรับ Windows 10 และ WSL2 - Windods Subsystem for Linux 2 ส่วนใน Linux ไม่น่าจะต้องห่วงยังไม่ได้ลอง แต่มั่นใจว่าน่าจะใช้งาน kind ได้อยู่แล้ว

ตรวจสอบ Docker Desktop 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/gwysn3ofe73oyv5o5uro.png)

ติดตั้ง kind 
```
PS C:\Users\drs> curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.10.0/kind-windows-amd64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7214k  100 7214k    0     0  7214k      0  0:00:01  0:00:01 --:--:--  9.8M
PS C:\Users\drs> mv .\kind-windows-amd64.exe kind.exe
PS C:\Users\drs> .\kind.exe version
kind v0.10.0 go1.15.7 windows/amd64
```

สร้าง Configuration File สำหรับ kind เพื่อสร้าง 1 Control Plane และ 2 Node
```yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
```
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/pzmbeyy5cx3x94ujmdj7.png)

สร้าง Kubernetes Cluster ชื่อว่า d8k จาก lab.yaml ด้วยคำสั่ง `.\kind.exe create cluster --config lab.yaml --name d8k`
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/lh7polj22v9hlrrp48uh.png)
>- การติดตั้งใช้เวลานานพอสมควรเนื่อจาก Container Image ของ kind node (v1.20.2) มีขนาด 1.17 GB 
- หลังจากติดตั้งเสร็จ kind จะเพิ่มข้อมูลลงใน .kube/config เพื่อให้พร้อมใช้งาน

​ตรวจสอบความเรียบร้อย และความพร้อมของ Kubenetes Cluster
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ytg7p94bnfulsnsu9tjm.png)

หากไม่ต้องการใช้งาน Kubernetes Cluster แล้วสามารถลบด้วยคำสั่ง kind
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ol4c2dy90f5vh0yg2c6c.png)

หากต้องการระบุ version ของ Kubernetes สามารถทำได้โดยการระบุ version ได้ โดยข้อมูลของ image ในแต่ละ version หาได้จาก [kind release](https://github.com/kubernetes-sigs/kind/releases) เช่นต้องการติดตั้ง Kubernetes Cluster version 1.19.7
```yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  image: kindest/node:v1.19.7@sha256:a70639454e97a4b733f9d9b67e12c01f6b0297449d5b9cbbef87473458e26dca
- role: worker
  image: kindest/node:v1.19.7@sha256:a70639454e97a4b733f9d9b67e12c01f6b0297449d5b9cbbef87473458e26dca
- role: worker
  image: kindest/node:v1.19.7@sha256:a70639454e97a4b733f9d9b67e12c01f6b0297449d5b9cbbef87473458e26dca
```
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/c64jw6x1fb288hgt7sz0.png)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/proinfkxx9elwg2mubot.png)

สร้าง pod แรกใน Kubernetes ที่สร้างโดย kind
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/oaxwav0jtgpu2ps88ym5.png)

####มูลค่าความสุข