Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แŠจ Kubernetes แŒ‹แˆญ แ‹จแˆแ‰ตแˆฐแˆซ แŠจแˆ†แА, kubectl แˆแŠ“แˆแ‰ฃแ‰ต แ‰ แ‰ฅแ‹›แ‰ต แŠจแˆšแŒ แ‰€แˆ™แ‰ฃแ‰ธแ‹ แˆ˜แŒˆแˆแŒˆแ‹ซแ‹Žแ‰ฝ แ‹แˆตแŒฅ แŠ แŠ•แ‹ฑ แˆŠแˆ†แŠ• แ‹ญแ‰ฝแˆ‹แˆ. แŠฅแŠ“ แŠจแŠ แŠ•แ‹ต แ‹จแ‰ฐแ‹ˆแˆฐแА แˆ˜แˆณแˆชแ‹ซ แŒ‹แˆญ แ‰ แˆ˜แˆตแˆซแ‰ต แ‰ฅแ‹™ แŒŠแ‹œ แ‰ แˆšแ‹ซแˆณแˆแ‰แ‰ แ‰ต แŒŠแ‹œ แ‰ แ‹ฐแŠ•แ‰ฅ แˆ›แŒฅแŠ“แ‰ต แŠฅแŠ“ แŠฅแŠ•แ‹ดแ‰ต แ‰ แ‰ฅแ‰ƒแ‰ต แŠฅแŠ•แ‹ฐแˆšแŒ แ‰€แˆ™แ‰ แ‰ต แˆ˜แˆ›แˆญ แŒ แ‰ƒแˆš แАแ‹แข

แ‰กแ‹ตแŠ• Kubernetes aaS แŠจ Mail.ru แŠจ kubectl แŒ‹แˆญ แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แˆˆแˆ˜แˆตแˆซแ‰ต แŒ แ‰ƒแˆš แˆแŠญแˆฎแ‰ฝแŠ• แŠฅแŠ“ แ‹˜แ‹ดแ‹Žแ‰ฝแŠ• แ‹จแˆšแ‹ซแŒˆแŠ™แ‰ แ‰ต แ‰ แ‹ณแŠ•แŠคแˆ แ‹Œแ‹ญแ‰ฅแˆ แ‹จแ‰ฐแ‰ฐแˆจแŒŽแˆ˜ แˆ˜แŒฃแŒฅแแข แŠฅแŠ•แ‹ฒแˆแˆ แˆตแˆˆ แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŒ แˆˆแ‰… แ‹ซแˆˆ แŒแŠ•แ‹›แ‰ค แŠฅแŠ•แ‹ฒแŠ–แˆญแ‹Žแ‰ต แ‹ญแˆจแ‹ณแ‹Žแ‰ณแˆแข

แŠฅแŠ•แ‹ฐ แ‹ฐแˆซแˆฒแ‹ แŠจแˆ†แА แ‹จแŒฝแˆแ‰ แŒแ‰ฅ แŠจแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŒ‹แˆญ แ‹จแŠฅแˆˆแ‰ต แ‰ฐแŠฅแˆˆแ‰ต แˆตแˆซแ‹Ž แ‹จแ‰ แˆˆแŒ  แ‰€แˆแŒฃแ‹ แ‰ฅแ‰ป แˆณแ‹ญแˆ†แŠ• แ‹จแ‰ แˆˆแŒ  แŠ แˆตแ‹ฐแˆณแ‰ฝ แŠฅแŠ•แ‹ฒแˆ†แŠ• แˆ›แ‹ตแˆจแŒ แАแ‹!

แˆ˜แŒแ‰ขแ‹ซ: kubectl แˆแŠ•แ‹ตแŠ• แАแ‹

KubectlแŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แˆˆแˆ˜แŒ แ‰€แˆ แŠจแˆ˜แˆ›แˆญแ‹Ž แ‰ แŠแ‰ต แˆแŠ• แŠฅแŠ•แ‹ฐแˆ†แА แŠฅแŠ“ แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแˆฐแˆซ แˆ˜แˆฐแˆจแ‰ณแ‹Š แŒแŠ•แ‹›แ‰ค แˆ›แŒแŠ˜แ‰ต แŠ แˆˆแ‰ฅแ‹Žแ‰ตแข

แŠจแ‰ฐแŒ แ‰ƒแˆšแ‹ แŠ แŠ•แƒแˆญ, kubectl แ‹จ Kubernetes แˆตแˆซแ‹Žแ‰ฝแŠ• แˆˆแˆ›แŠจแŠ“แ‹ˆแŠ• แ‹จแˆšแ‹ซแˆตแ‰ฝแˆ แ‹จแ‰แŒฅแŒฅแˆญ แ“แАแˆ แАแ‹.

แ‰ แ‰ดแŠญแŠ’แŠซแ‹Š แŠ แАแŒ‹แŒˆแˆญ kubectl แ‹จ Kubernetes API แ‹ฐแŠ•แ‰ แŠ› แАแ‹แข

Kubernetes แŠคแ’แŠ แ‹ญ แ‹จแŠคแ‰ฝแ‰ฒแ‰ฒแ’ REST แŠคแ’แŠ แ‹ญ แАแ‹แข แ‹ญแˆ… แŠคแ’แŠ แ‹ญ แˆ™แˆ‰ แ‰ แˆ™แˆ‰ แ‰แŒฅแŒฅแˆญ แ‹จแˆšแ‹ฐแˆจแŒแ‰ แ‰ต แ‰ตแŠญแŠญแˆˆแŠ›แ‹ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‹จแ‰ฐแŒ แ‰ƒแˆš แ‰ แ‹ญแАแŒˆแŒฝ แАแ‹แข แ‹ญแˆ… แˆ›แˆˆแ‰ต แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŠญแ‹‹แŠ” แŠฅแŠ•แ‹ฐ แŠคแ’แŠ แ‹ญ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‹ญแŒ‹แˆˆแŒฃแˆ แŠฅแŠ“ แ‰ แŠคแ‰ฝแ‰ฒแ‰ฒแ’ แŒฅแ‹ซแ‰„ แ‹ˆแ‹ฐแ‹šแ‹ซ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แˆŠแ‹ฐแˆจแŒ แ‹ญแ‰ฝแˆ‹แˆแข

แˆตแˆˆแ‹šแˆ… แ‹จ kubectl แ‹‹แŠ“ แˆตแˆซ แˆˆ Kubernetes API แ‹จ HTTP แŒฅแ‹ซแ‰„แ‹Žแ‰ฝแŠ• แˆ›แ‰…แˆจแ‰ฅ แАแ‹แก-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แˆ™แˆ‰ แ‰ แˆ™แˆ‰ แˆ€แ‰ฅแ‰ตแŠ• แ‹ซแˆ›แŠจแˆˆ แˆตแˆญแ‹“แ‰ต แАแ‹แข แ‹ญแˆ… แˆ›แˆˆแ‰ต แ‹จแˆƒแ‰ฅแ‰ต แ‹แˆตแŒฃแ‹Š แˆแŠ”แ‰ณแŠ• แ‹ญแŒ แ‰ฅแ‰ƒแˆ แŠฅแŠ“ แˆแˆ‰แˆ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แˆตแˆซแ‹Žแ‰ฝ แ‹จCRUD แˆตแˆซแ‹Žแ‰ฝ แŠ“แ‰ธแ‹แข

แŠฅแАแ‹šแˆ…แŠ• แˆ€แ‰ฅแ‰ถแ‰ฝ แ‰ แˆ›แˆตแ‰ฐแ‹ณแ‹ฐแˆญ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆตแŠ• แˆ™แˆ‰ แ‰ แˆ™แˆ‰ แ‹ญแ‰†แŒฃแŒ แˆซแˆ‰แฃ แŠฅแŠ“ แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŠ แˆแŠ• แ‰ฃแˆˆแ‹ แ‹จแˆ€แ‰ฅแ‰ฑ แˆแŠ”แ‰ณ แˆแŠ• แˆ›แ‹ตแˆจแŒ แŠฅแŠ•แ‹ณแˆˆแ‰ แ‰ต แ‹ซแˆฐแˆ‹แˆแข แ‰ แ‹šแˆ… แˆแŠญแŠ•แ‹ซแ‰ต แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŠคแ’แŠ แ‹ญ แˆ›แˆ˜แˆณแŠจแˆชแ‹ซ แŠจแ‰ฐแ‹›แˆ›แŒ… แˆฅแˆซแ‹Žแ‰ปแ‰ธแ‹ แŒ‹แˆญ แŠฅแŠ•แ‹ฐ แ‹จแŠ•แ‰ฅแˆจแ‰ต แ‹“แ‹ญแАแ‰ถแ‰ฝ แ‹แˆญแ‹แˆญ แ‰ฐแ‹ฐแˆซแŒ…แ‰ทแˆแข

แŠ แŠ•แ‹ต แˆแˆณแˆŒ แŠฅแŠ•แˆ˜แˆแŠจแ‰ต.

ReplicaSet แˆแŠ•แŒญ แˆ˜แแŒ แˆญ แ‰ตแˆแˆแŒ‹แˆˆแˆ… แŠฅแŠ•แ‰ แˆแข แ‹ญแˆ…แŠ•แŠ• แˆˆแˆ›แ‹ตแˆจแŒ แ‰ แ‹แ‹ญแˆ แ‹แˆตแŒฅ แ‹ซแˆˆแ‹แŠ• ReplicaSet แ‰ แˆตแˆ แ‹ญแŒˆแˆแŒปแˆ‰แข replicaset.yaml, แŠจแ‹šแ‹ซ แ‰ตแ‹•แ‹›แ‹™แŠ• แ‹ซแˆ‚แ‹ฑ:

$ kubectl create -f replicaset.yaml

แ‹ญแˆ… ReplicaSet แˆ˜แˆญแŒƒ แ‹ญแˆแŒฅแˆซแˆแข แŒแŠ• แŠจแ‰ตแ‹•แ‹ญแŠ•แ‰ฑ แ‰ แˆตแ‰ฐแŒ€แˆญแ‰ฃ แˆแŠ• แ‹ญแˆ†แŠ“แˆ?

แŠฉแ‰ แˆญแŠ”แ‰ตแˆต ReplicaSet แ‹จแˆ˜แแŒ แˆญ แˆตแˆซ แŠ แˆˆแ‹แข แˆแŠญ แŠฅแŠ•แ‹ฐแˆŒแˆ‹แ‹ แŠฆแ•แˆฌแˆฝแŠ•แฃ แŠฅแŠ•แ‹ฐ แŠคแ’แŠ แ‹ญ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‰ฐแŒ‹แˆแŒงแˆแข แ‹จแ‹šแˆ… แŠญแ‹ˆแŠ“ แˆแ‹ฉ แ‹จแŠคแ’แŠ แ‹ญ แˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‹ญแˆ…แŠ• แ‹ญแˆ˜แˆตแˆ‹แˆแข

POST /apis/apps/v1/namespaces/{namespace}/replicasets

แˆˆแˆแˆ‰แˆ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แˆตแˆซแ‹Žแ‰ฝ แ‹จแŠคแ’แŠ แ‹ญ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฆแ‰ฝ แ‰  แˆ‹แ‹ญ แ‹ญแŒˆแŠ›แˆ‰ แ‹จแŠคแ’แŠ แ‹ญ แˆ›แŒฃแ‰€แˆป (แ‹ญแˆ…แˆ แŒจแˆแˆฎ แŠจแˆ‹แ‹ญ แ‹ซแˆˆแ‹ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ). แˆˆแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‰ตแŠญแŠญแˆˆแŠ› แŒฅแ‹ซแ‰„ แˆˆแˆ›แ‰…แˆจแ‰ฅ แ‰ แˆ˜แŒ€แˆ˜แˆชแ‹ซ แ‹จแŠคแ’แŠ แ‹ญ แŠ แŒˆแˆแŒ‹แ‹ญ แ‹ฉแŠ แˆญแŠคแˆแŠ• แ‰ แŠคแ’แŠ แ‹ญ แˆ›แŒฃแ‰€แˆป แ‹แˆตแŒฅ แ‰ แ‰ฐแ‹˜แˆจแ‹˜แˆฉแ‰ต แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แˆ˜แŠ•แŒˆแ‹ถแ‰ฝ แˆ‹แ‹ญ แˆ›แŠจแˆ แŠ แˆˆแ‰ฆแ‰ตแข

แˆตแˆˆแ‹šแˆ… แŠจแˆ‹แ‹ญ แ‹ซแˆˆแ‹แŠ• แ‰ตแ‹•แ‹›แ‹ แˆฒแˆแŒฝแˆ™ kubectl แ‹จแŠคแ‰ฝแ‰ฒแ‰ฒแ’ POST แŒฅแ‹ซแ‰„แŠ• แŠจแˆ‹แ‹ญ แˆ‹แˆˆแ‹ แ‹จแŠคแ’แŠ แ‹ญ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‹ญแˆแŠซแˆแข แ‰ แ‹แ‹ญแˆ‰ แ‹แˆตแŒฅ แ‹ซแ‰€แˆจแ‰กแ‰ต ReplicaSet แ‰ตแˆญแŒ‰แˆ replicaset.yaml, แ‰ แŒฅแ‹ซแ‰„แ‹ แŠ แŠซแˆ แ‹แˆตแŒฅ แ‹ญแˆ‹แŠซแˆ.

Kubectl แŠจ Kubernetes แ‹˜แˆˆแˆ‹ แŒ‹แˆญ แˆˆแˆšแŒˆแŠ“แŠ™ แˆแˆ‰แˆ แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‹จแˆšแˆฐแˆซแ‹ แ‰ แ‹šแˆ… แˆ˜แŠ•แŒˆแ‹ต แАแ‹แข แ‰ แŠฅแАแ‹šแˆ… แˆแˆ‰ แŠ แŒ‹แŒฃแˆšแ‹Žแ‰ฝ kubectl แ‰ แ‰€แˆ‹แˆ‰ แ‹จแŠคแ‰ฝแ‰ฒแ‰ฒแ’ แŒฅแ‹ซแ‰„แ‹Žแ‰ฝแŠ• แ‹ˆแ‹ฐ แ‰ฐแŒˆแ‰ขแ‹ แ‹จ Kubernetes API แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฆแ‰ฝ แ‹ซแ‰€แˆญแ‰ฃแˆแข

แŠฅแŠ•แ‹ฐ แˆ˜แŒˆแˆแŒˆแ‹ซ แ‰ แˆ˜แŒ แ‰€แˆ Kubernetes แˆ™แˆ‰ แ‰ แˆ™แˆ‰ แˆ›แˆตแ‰ฐแ‹ณแ‹ฐแˆญ แŠฅแŠ•แ‹ฐแˆšแ‰ฝแˆ‰ แŠฅแ‰ฃแŠญแ‹Ž แˆแ‰ฅ แ‹ญแ‰ แˆ‰ curlแ‹จแŠคแ‰ฝแ‰ฒแ‰ฒแ’ แŒฅแ‹ซแ‰„แ‹Žแ‰ฝแŠ• แ‰ แŠฅแŒ… แ‹ˆแ‹ฐ Kubernetes API แ‰ แˆ˜แˆ‹แŠญแข Kubectl แ‰ แ‰€แˆ‹แˆ‰ Kubernetes API แˆ˜แŒ แ‰€แˆแŠ• แ‰€แˆ‹แˆ แ‹ซแ‹ฐแˆญแŒˆแ‹‹แˆแข

แ‹ญแˆ… kubectl แˆแŠ• แŠฅแŠ•แ‹ฐแˆ†แА แŠฅแŠ“ แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแˆฐแˆซ แˆ˜แˆฐแˆจแ‰ณแ‹Š แАแŒˆแˆฎแ‰ฝ แŠ“แ‰ธแ‹. แŒแŠ• แˆตแˆˆ Kubernetes API แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แ‹จ kubectl แ‰ฐแŒ แ‰ƒแˆš แˆ›แ‹ˆแ‰… แ‹ซแˆˆแ‰ แ‰ต แˆŒแˆ‹ แАแŒˆแˆญ แŠ แˆˆแข แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‹แˆตแŒฃแ‹Š แŠ แˆˆแˆแŠ• แ‰ แแŒฅแАแ‰ต แŠฅแŠ•แ‹ญแข

แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‹แˆตแŒฃแ‹Š แ‹“แˆˆแˆ

แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แŠ–แ‹ถแ‰ฝ แˆ‹แ‹ญ แŠฅแŠ•แ‹ฐ แ‹จแ‰ฐแˆˆแ‹จ แˆ‚แ‹ฐแ‰ต แ‹จแˆšแˆ„แ‹ฑ แ‹จแŒˆแˆˆแˆแ‰ฐแŠ› แŠ แŠซแˆ‹แ‰ต แˆตแ‰ฅแˆตแ‰ฅแŠ• แ‹ซแŠซแ‰ตแ‰ณแˆแข แŠ แŠ•แ‹ณแŠ•แ‹ต แŠญแแˆŽแ‰ฝ แ‰ แˆ›แˆตแ‰ฐแˆญ แŠ–แ‹ถแ‰ฝ แˆ‹แ‹ญ แ‹ญแˆฐแˆซแˆ‰, แˆŒแˆŽแ‰ฝ แ‹ฐแŒแˆž แ‰ แˆ แˆซแ‰ฐแŠ› แŠ แŠ•แŒ“แ‹Žแ‰ฝ แˆ‹แ‹ญ, แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แŠ แŠซแˆ แ‹จแˆซแˆฑแŠ• แ‹จแ‰ฐแˆˆแ‹จ แ‰ฐแŒแ‰ฃแˆญ แ‹ซแŠจแŠ“แ‹แŠ“แˆ.

แ‰ แ‹‹แŠ“แ‹ แŠ แŠ•แŒ“แ‹Žแ‰ฝ แˆ‹แ‹ญ แ‰ แŒฃแˆ แŠ แˆตแˆแˆ‹แŒŠแ‹Žแ‰น แŠญแแˆŽแ‰ฝ แŠฅแ‹šแˆ… แŠ แˆ‰

  1. แ‰ฎแˆแ‰ต - แ‹จแŠ•แ‰ฅแˆจแ‰ต แˆ˜แŒแˆˆแŒซแ‹Žแ‰ฝแŠ• แ‹ซแŠจแˆ›แ‰ปแˆ (แ‰ฅแ‹™แ‹แŠ• แŒŠแ‹œ แ‹ˆแ‹˜แ‰ฐ).
  2. แ‹จแŠคแ’แŠ แ‹ญ แŠ แŒˆแˆแŒ‹แ‹ญ - แŠคแ’แŠ แ‹ญ แ‹ซแ‰€แˆญแ‰ฃแˆ แŠฅแŠ“ แˆ›แŠจแˆ›แ‰ปแŠ• แ‹ซแˆตแ‰ฐแ‹ณแ‹ตแˆซแˆแข
  3. แ‰ฐแ‰†แŒฃแŒฃแˆช แŠ แˆตแ‰ฐแ‹ณแ‹ณแˆช - แ‹จแŠ•แ‰ฅแˆจแ‰ต แˆแŠ”แ‰ณแ‹Žแ‰ฝ แŠจแ‹แˆญแ‹แˆฎแ‰ฝ แŒ‹แˆญ แˆ˜แŠจแ‰ แˆซแ‰ธแ‹แŠ• แ‹ซแˆจแŒ‹แŒแŒฃแˆแข
  4. แˆ˜แˆญแˆแŒแ‰ฅแˆญ แŠ แ‹˜แŒ‹แŒ… - แ‰ แˆ แˆซแ‰ฐแŠ› แŠ แŠ•แŒ“แ‹Žแ‰ฝ แˆ‹แ‹ญ แ–แ‹ตแ‹Žแ‰ฝแŠ• แˆ˜แˆญแˆแŒแ‰ฅแˆญ แ‹ซแˆตแ‹ˆแŒฃแˆ.

แŠฅแŠ“ แ‰ แˆ แˆซแ‰ฐแŠ›แ‹ แŠ แŠ•แŒ“แ‹Žแ‰ฝ แˆ‹แ‹ญ แŠ แŠ•แ‹ต แ‰ แŒฃแˆ แŠ แˆตแˆแˆ‹แŒŠ แŠ แŠซแˆ แŠฅแ‹šแˆ… แŠ แˆˆ-

  1. แŠฉแ‰คแˆŒแ‰ต - แ‰ แˆšแˆ แˆซแ‰ แ‰ต แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แˆ‹แ‹ญ แ‹จแŠฅแ‰ƒ แˆ˜แŒซแŠ›แ‹Žแ‰ฝแŠ• แˆ›แˆตแŒ€แˆ˜แˆญ แ‹ซแˆตแ‰ฐแ‹ณแ‹ตแˆซแˆ.

แŠฅแАแ‹šแˆ… แŠญแแˆŽแ‰ฝ แŠฅแŠ•แ‹ดแ‰ต แŠ แŠ•แ‹ต แˆ‹แ‹ญ แŠฅแŠ•แ‹ฐแˆšแˆ แˆฉ แˆˆแˆ˜แˆจแ‹ณแ‰ต แŠ แŠ•แ‹ต แˆแˆณแˆŒ แŠฅแŠ•แˆ˜แˆแŠจแ‰ตแข

แŠฅแŠ•แ‹ฐแŒจแˆจแˆตแŠญ แŠฅแŠ“แˆตแ‰ฅ kubectl create -f replicaset.yamlแŠจแ‹šแˆ… แ‰ แŠ‹แˆ‹ kubectl HTTP POST แŒฅแ‹ซแ‰„ แŠ แ‰€แˆจแ‰  ReplicaSet API แˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ (แ‹จ ReplicaSet แˆ€แ‰ฅแ‰ตแŠ• แ‰ตแˆญแŒ‰แˆ แˆ›แˆˆแ)แข

แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แ‹แˆตแŒฅ แˆแŠ• แŠฅแ‹จแˆ†แА แАแ‹?

  1. แŠซแ‹ฐแˆจแŒ‰ แ‰ แŠ‹แˆ‹ kubectl create -f replicaset.yaml แ‹จแŠคแ’แŠ แ‹ญ แŠ แŒˆแˆแŒ‹แ‹ญ แ‹จแŠฅแˆญแˆตแ‹ŽแŠ• ReplicaSet แŒแ‰ฅแ‹“แ‰ต แ‰ตแˆญแŒ‰แˆ แ‰ แˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แ‹ซแŠจแˆ›แ‰ปแˆแก

    Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

  2. แ‰ แˆ˜แ‰€แŒ แˆแฃ ReplicaSet แˆ˜แ‰†แŒฃแŒ แˆชแ‹ซแ‹ แ‰ แ‰ฐแ‰†แŒฃแŒฃแˆชแ‹ แŠ แˆตแ‰ฐแ‹ณแ‹ณแˆช แ‹แˆตแŒฅ แ‰ฐแŒ€แˆแˆฏแˆแฃ แŠฅแˆฑแˆ แ‹จ ReplicaSet แˆƒแ‰ฅแ‰ถแ‰ฝแŠ• แˆ˜แแŒ แˆญแฃ แˆ›แˆปแˆปแ‹ซ แŠฅแŠ“ แˆ˜แˆฐแˆจแ‹แŠ• แ‹ซแˆตแ‰ฐแŠ“แŒแ‹ณแˆแก

    Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

  3. แ‹จ ReplicaSet แˆ˜แ‰†แŒฃแŒ แˆชแ‹ซแ‹ แˆˆแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ ReplicaSet แ‰…แŒ‚ (แ‰ แ–แ‹ต แŠ แ‰ฅแАแ‰ต แ‰  ReplicaSet แแ‰ฝ แˆ˜แˆ แˆจแ‰ต) แ‹จแ–แ‹ต แแ‰บแŠ• แ‹ญแˆแŒฅแˆซแˆ แŠฅแŠ“ แ‰ แˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แ‹ซแŠจแˆ›แ‰ปแ‰ธแ‹‹แˆแข

    Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

  4. แˆˆแˆ›แŠ•แŠ›แ‹แˆ แ‹จแˆฐแˆซแ‰ฐแŠ› แŠ แŠ•แŒ“แ‹Žแ‰ฝ แŒˆแŠ“ แ‹ซแˆแ‰ฐแˆ˜แ‹ฐแ‰ก แ–แ‹ถแ‰ฝแŠ• แ‰ แˆ˜แŠจแ‰ณแ‰ฐแˆ แˆ˜แˆญแˆแŒแ‰ฅแˆญ แŠ แ‹แŒชแ‹ แ‰ฐแŒ€แˆแˆฏแˆแก

    Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

  5. แˆ˜แˆญแˆแŒแ‰ฅแˆญ แŠ แ‹แŒชแ‹ แˆˆแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แ–แ‹ต แ‰ฐแˆตแˆ›แˆš แ‹จแˆ†แА แ‹จแˆฐแˆซแ‰ฐแŠ› แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แ‹ญแˆ˜แˆญแŒฃแˆ แŠฅแŠ“ แ‹ญแˆ…แŠ•แŠ• แˆ˜แˆจแŒƒ แ‰ แˆ˜แ‹ฐแ‰ฅแˆฉ แ‹แˆตแŒฅ แ‰ฃแˆˆแ‹ แ‹จแ–แ‹ต แแ‰บ แˆ‹แ‹ญ แ‹ซแŠญแˆ‹แˆแก

    Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

  6. แ–แ‹ตแ‹ แ‰ แ‰ฐแˆ˜แ‹ฐแ‰ แ‰ แ‰ต แ‹จแˆฐแˆซแ‰ฐแŠ› แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แˆ‹แ‹ญ แŠฉแ‰คแˆŒแ‰ต แ‰ฐแŒ€แˆแˆฏแˆ แฃ แˆˆแ‹šแˆ… โ€‹โ€‹แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แ‹จแ‰ฐแˆ˜แ‹ฐแ‰กแ‰ตแŠ• แŠฅแŠ•แŠญแ‰ฅแˆŽแ‰ฝ แ‹ญแŠจแ‰ณแ‰ฐแˆ‹แˆ แข

    Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

  7. แŠฉแ‰คแˆŒแ‰ฑ แ‹จแ–แ‹ต แแ‰บแŠ• แŠจแˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แ‹ซแАแ‰ฃแˆ แŠฅแŠ“ แŠฅแŠ•แ‹ฐ แ‹ถแŠจแˆญ แ‹ซแˆˆ แ‹จแŠฅแ‰ƒ แˆ˜แ‹ซแ‹ขแ‹ซ แŠ แˆ‚แ‹ต แŒŠแ‹œ แ‰ แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ฑ แˆ‹แ‹ญ แŠฎแŠ•แ‰ดแ‹ญแАแˆฎแ‰ฝแŠ• แŠฅแŠ•แ‹ฒแ‹ซแˆตแАแˆณ แˆ˜แˆ˜แˆชแ‹ซ แ‹ญแˆฐแŒฃแˆแก-

    Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ

แŠจแ‹šแˆ… แ‰ แ‰ณแ‰ฝ แ‹จแ‹šแˆ… แˆ˜แŒแˆˆแŒซ แ‹จแŒฝแˆ‘แ แˆตแˆชแ‰ต แŠ แˆˆแข

แ‹ˆแ‹ฐ ReplicaSet แ‹จแแŒฅแˆจแ‰ต แˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‹จแŠคแ’แŠ แ‹ญ แŒฅแ‹ซแ‰„ แ‹จแˆšแˆตแ‰ฐแŠ“แŒˆแ‹ฐแ‹ แ‰ แŠคแ’แŠ แ‹ญ แŠ แŒˆแˆแŒ‹แ‹ญ แАแ‹แข แ‹จแŠคแ’แŠ แ‹ญ แŠ แŒˆแˆแŒ‹แ‹ญ แŒฅแ‹ซแ‰„แ‹แŠ• แ‹ซแˆจแŒ‹แŒแŒฃแˆ แŠฅแŠ“ ReplicaSet แ‹จแŠ•แ‰ฅแˆจแ‰ต แแ‰บแŠ• แ‰ แˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แ‹ซแŠจแˆ›แ‰ปแˆแข

แ‹ญแˆ… แŠญแˆตแ‰ฐแ‰ต ReplicaSet แˆ˜แ‰†แŒฃแŒ แˆชแ‹ซแŠ• แ‹ญแŒ€แˆแˆซแˆแฃ แ‹ญแˆ…แˆ แ‹จแ‰ฐแ‰†แŒฃแŒฃแˆชแ‹ แŠ แˆตแ‰ฐแ‹ณแ‹ณแˆช แŠ•แ‹‘แˆต แˆ‚แ‹ฐแ‰ต แАแ‹แข ReplicaSet แˆ˜แ‰†แŒฃแŒ แˆชแ‹ซแ‹ แ‰ แˆ˜แ‹ฐแ‰ฅแˆฉ แ‹แˆตแŒฅ แ‹จReplicaSet แˆƒแ‰ฅแ‰ถแ‰ฝแŠ• แˆ˜แแŒ แˆญแฃ แˆ›แ‹˜แˆ˜แŠ• แŠฅแŠ“ แˆ˜แˆฐแˆจแ‹แŠ• แ‹ญแŠจแ‰ณแ‰ฐแˆ‹แˆ แŠฅแŠ“ แ‹ญแˆ… แˆฒแŠจแˆฐแ‰ต แ‹จแŠญแˆตแ‰ฐแ‰ต แˆ›แˆณแ‹ˆแ‰‚แ‹ซ แ‹ญแ‰€แ‰ แˆ‹แˆแข

แ‹จ ReplicaSet แ‰ฐแ‰†แŒฃแŒฃแˆชแ‹ แˆตแˆซ แ‹จแˆšแˆแˆˆแŒˆแ‹ แ‹จ ReplicaSet แ–แ‹ต แ‰แŒฅแˆญ แˆ˜แŠ–แˆฉแŠ• แˆ›แˆจแŒ‹แŒˆแŒฅ แАแ‹แข แ‰ แŠฅแŠ› แˆแˆณแˆŒแฃ แŠฅแˆตแŠซแˆแŠ• แˆแŠ•แˆ แ–แ‹ต แ‹จแˆˆแˆแฃ แˆตแˆˆแ‹šแˆ… ReplicaSet แˆ˜แ‰†แŒฃแŒ แˆชแ‹ซแ‹ แŠฅแАแ‹šแˆ…แŠ• แ‹จแ–แ‹ต แแ‰บแ‹Žแ‰ฝ (แ‰ แ–แ‹ต แŠ แ‰ฅแАแ‰ต แ‰  ReplicaSet แแ‰บ แˆ˜แˆ แˆจแ‰ต) แ‹ญแˆแŒฅแˆซแˆ แŠฅแŠ“ แ‰ แˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แ‹ซแŠจแˆ›แ‰ปแˆแข

แŠ แ‹ฒแˆต แ–แ‹ตแ‹Žแ‰ฝ แˆ˜แˆแŒ แˆญ แ‹จแˆšแ‰€แˆฐแ‰€แˆฐแ‹ แˆˆแˆ แˆซแ‰ฐแŠ› แŠ แŠ•แŒ“แ‹Žแ‰ฝ แŒˆแŠ“ แ‹ซแˆแ‰ณแ‰€แ‹ฑ แ‹จแ–แ‹ต แ‰ตแˆญแŒ“แˆœแ‹Žแ‰ฝแŠ• แ‰ แˆšแŠจแ‰ณแ‰ฐแˆ แˆ˜แˆญแˆแŒแ‰ฅแˆญ แŠ แ‹˜แŒ‹แŒ… แАแ‹แข แˆ˜แˆญแˆแŒแ‰ฅแˆญ แŠ แ‹แŒชแ‹ แˆˆแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แ–แ‹ต แ‰ฐแˆตแˆ›แˆš แ‹จแˆ†แА แ‹จแˆฐแˆซแ‰ฐแŠ› แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ตแŠ• แ‹ญแˆ˜แˆญแŒฃแˆ แŠฅแŠ“ แ‰ แˆ›แŠจแˆ›แ‰ปแ‹ แ‹แˆตแŒฅ แ‹ซแˆ‰แ‰ตแŠ• แ‹จแ–แ‹ต แแ‰บแ‹Žแ‰ฝแŠ• แ‹ซแˆปแˆฝแˆ‹แˆแข

แŠฅแˆตแŠจแ‹šแˆ… แАแŒฅแ‰ฅ แ‹ตแˆจแˆต แˆแŠ•แˆ แ‹จแˆตแˆซ แŒซแŠ แŠฎแ‹ต แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แ‹แˆตแŒฅ แ‹จแ‰ตแŠ›แ‹แˆ แ‰ฆแ‰ณ แŠฅแ‹จแˆฐแˆซ แŠฅแŠ•แ‹ณแˆแˆ†แА แˆแ‰ฅ แ‹ญแ‰ แˆ‰แข แŠฅแˆตแŠซแˆแŠ• แ‹จแ‰ฐแ‹ฐแˆจแŒˆแ‹ แˆแˆ‰ - แ‹ญแˆ… แ‰ แˆ›แˆตแ‰ฐแˆญ แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แˆ‹แ‹ญ แ‰ฃแˆˆแ‹ แˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แ‹ซแˆ‰แ‰ตแŠ• แˆ€แ‰ฅแ‰ถแ‰ฝ แˆ˜แแŒ แˆญ แŠฅแŠ“ แˆ›แ‹˜แˆ˜แŠ• แАแ‹แข

แ‹จแˆ˜แŒจแˆจแˆปแ‹ แŠญแˆตแ‰ฐแ‰ต แŠฉแ‰คแˆŒแ‰ตแˆตแŠ• แ‹ซแˆตแАแˆณแˆ, แ‹ญแˆ…แˆ แˆˆแˆฐแˆซแ‰ฐแŠ› แŠ แŠ•แŒ“แ‹Žแ‰ฝ แ‹จแ‰ณแ‰€แ‹ฑแ‰ตแŠ• แ–แ‹ถแ‰ฝ แ‹ญแŠจแ‰ณแ‰ฐแˆ‹แˆ. ReplicaSet แ–แ‹ถแ‰ฝแ‹Ž แ‹จแ‰ฐแŒซแŠ‘แ‰ แ‰ต แ‹จแˆฐแˆซแ‰ฐแŠ› แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แŠฉแ‰คแˆŒแ‰ต แ‹จแŠฅแ‰ƒ แˆ˜แ‹ซแ‹ขแ‹ซ แŒŠแ‹œแ‹แŠ• แŠฅแŠ•แ‹ฐ Docker แ‹จแˆ˜แˆณแˆฐแˆ‰ แ‹จแˆ˜แ‹ซแ‹ฃ แˆแˆตแˆŽแ‰ฝแŠ• แŠฅแŠ•แ‹ฒแ‹ซแ‹ˆแˆญแ‹ฑ แŠฅแŠ“ แŠฅแŠ•แ‹ฒแ‹ซแˆ„แ‹ฑ แˆ˜แˆ˜แˆชแ‹ซ แˆ˜แˆตแŒ แ‰ต แŠ แˆˆแ‰ แ‰ตแข

แ‰ แ‹šแˆ… แŒŠแ‹œแฃ แ‹จแŠฅแˆญแˆตแ‹Ž ReplicaSet แˆ˜แ‰ฐแŒแ‰ แˆชแ‹ซ แ‰ แˆ˜แŒจแˆจแˆป แŠฅแ‹จแˆฐแˆซ แАแ‹!

แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŠคแ’แŠ แ‹ญ แˆšแŠ“

แ‰ฃแˆˆแˆแ‹ แˆแˆณแˆŒ แˆ‹แ‹ญ แŠฅแŠ•แ‹ณแ‹จแŠธแ‹ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŠญแแˆŽแ‰ฝ (แŠจแŠคแ’แŠ แ‹ญ แŠ แŒˆแˆแŒ‹แ‹ญ แŠฅแŠ“ แˆ›แŠจแˆ›แ‰ป แ‰ แˆตแ‰ฐแ‰€แˆญ) แ‰ แˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แ‰ฃแˆ‰ แˆ€แ‰ฅแ‰ถแ‰ฝ แˆ‹แ‹ญ แˆˆแ‹แŒฆแ‰ฝแŠ• แ‹ญแˆ˜แˆˆแŠจแ‰ณแˆ‰ แŠฅแŠ“ แ‰ แˆ›แŠจแˆ›แ‰ป แ‹แˆตแŒฅ แˆตแˆ‹แˆ‰ แˆ€แ‰ฅแ‰ถแ‰ฝ แˆ˜แˆจแŒƒ แ‹ญแˆˆแ‹แŒฃแˆ‰แข

แ‰ แŠฅแˆญแŒแŒฅ แŠฅแАแ‹šแˆ… แŠญแแˆŽแ‰ฝ แ‰ แ‰€แŒฅแ‰ณ แŠจแˆ›แŠจแˆ›แ‰ปแ‹ แŒ‹แˆญ แŠ แ‹ญแŒˆแŠ“แŠ™แˆ, แАแŒˆแˆญ แŒแŠ• แ‰  Kubernetes แŠคแ’แŠ แ‹ญ แ‰ฅแ‰ป.

แ‹จแˆšแŠจแ‰ฐแˆ‰แ‰ตแŠ• แˆแˆณแˆŒแ‹Žแ‰ฝ แ‰ฐแˆ˜แˆแŠจแ‰ต:

  1. ReplicaSet แˆ˜แ‰†แŒฃแŒ แˆชแ‹ซ แ‹จแŠคแ’แŠ แ‹ญ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‹ญแŒ แ‰€แˆ›แˆ ReplicaSets แ‹แˆญแ‹แˆญ แŠจแˆ˜แˆˆแŠชแ‹ซ แŒ‹แˆญ watch แ‰  ReplicaSet แˆ€แ‰ฅแ‰ถแ‰ฝ แˆ‹แ‹ญ แ‹จแ‰ฐแ‹ฐแˆจแŒ‰ แˆˆแ‹แŒฆแ‰ฝแŠ• แˆˆแˆ˜แ‰†แŒฃแŒ แˆญแข
  2. ReplicaSet แˆ˜แ‰†แŒฃแŒ แˆชแ‹ซ แ‹จแŠคแ’แŠ แ‹ญ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‹ญแŒ แ‰€แˆ›แˆ Pod แแŒ แˆญ (แ–แ‹ต แแŒ แˆญ) แŠฅแŠ•แŠญแ‰ฅแˆŽแ‰ฝแŠ• แˆˆแˆ˜แแŒ แˆญแข
  3. แˆ˜แˆญแˆแŒแ‰ฅแˆญ แŠ แ‹แŒช แ‹จแŠคแ’แŠ แ‹ญ แ‹จแˆ˜แŒจแˆจแˆป แАแŒฅแ‰ฅ แ‹ญแŒ แ‰€แˆ›แˆ แŒ แŒ‹แŠ แ–แ‹ต (แ–แ‹ต แŠ แˆญแ‰ตแ‹•) แˆตแˆˆแ‰ฐแˆ˜แˆจแŒ แ‹ แ‹จแˆฐแˆซแ‰ฐแŠ› แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แˆ˜แˆจแŒƒ แ‰ แˆ˜แŒ แ‰€แˆ แ–แ‹ตแ‹Žแ‰ฝแŠ• แˆˆแˆ›แ‹˜แˆ˜แŠ•แข

แŠฅแŠ•แ‹ฐแˆšแˆ˜แˆˆแŠจแ‰ฑแ‰ตแฃ แ‹ญแˆ… kubectl แ‹จแˆšแ‹ฐแˆญแˆฐแ‹ แ‹ซแ‹ แŠคแ’แŠ แ‹ญ แАแ‹แข แ‰ฐแˆ˜แˆณแˆณแ‹ฉแŠ• แŠคแ’แŠ แ‹ญ แˆˆแ‹แˆตแŒฃแ‹Š แŠ แŠซแˆ‹แ‰ต แŠฅแŠ“ แˆˆแ‹แŒญ แ‰ฐแŒ แ‰ƒแˆšแ‹Žแ‰ฝ แˆ˜แŒ แ‰€แˆ แ‰ แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‹ฒแ‹›แ‹ญแŠ• แ‹แˆตแŒฅ แˆ˜แˆ แˆจแ‰ณแ‹Š แŒฝแŠ•แˆฐ-แˆ€แˆณแ‰ฅ แАแ‹แข

แŠ แˆแŠ• แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแˆฐแˆซ แˆ›แŒ แ‰ƒแˆˆแˆ แŠฅแŠ•แ‰ฝแˆ‹แˆˆแŠ•-

  1. แ‹จแˆ›แŠจแˆ›แ‰ป แˆ›แŠจแˆ›แ‰ปแ‹Žแ‰นแฃ แˆ›แˆˆแ‰ตแˆ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แˆƒแ‰ฅแ‰ถแ‰ฝ แ‹ญแŒˆแˆแƒแˆ‰แข
  2. แ‹จแŠคแ’แŠ แ‹ญ แŠ แŒˆแˆแŒ‹แ‹ญ แ‰  Kubernetes แŠคแ’แŠ แ‹ญ แˆ˜แˆแŠญ แ‹ˆแ‹ฐ แˆ›แŠจแˆ›แ‰ปแ‹ แ‰ แ‹ญแАแŒˆแŒฝ แ‹ซแ‰€แˆญแ‰ฃแˆแข
  3. แˆแˆ‰แˆ แˆŒแˆŽแ‰ฝ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แŠ แŠซแˆ‹แ‰ต แŠฅแŠ“ แ‰ฐแŒ แ‰ƒแˆšแ‹Žแ‰ฝ แ‹จ Kubernetes แˆแŠ”แ‰ณแŠ• (แŠ•แ‰ฅแˆจแ‰ตแŠ•) แ‰ แŠคแ’แŠ แ‹ญ แ‰ แŠฉแˆ แ‹ซแАแ‰ฃแˆ‰แข

แŠฅแАแ‹šแˆ…แŠ• แ…แŠ•แˆฐ-แˆ€แˆณแ‰ฆแ‰ฝ แˆ›แ‹ˆแ‰… kubectlแŠ• แ‰ แ‹ฐแŠ•แ‰ฅ แˆˆแˆ˜แˆจแ‹ณแ‰ต แŠฅแŠ“ แŠจแˆฑ แ‹จแ‰ แˆˆแŒ  แŒฅแ‰…แˆ แˆˆแˆ›แŒแŠ˜แ‰ต แ‹ญแˆจแ‹ณแ‹Žแ‰ณแˆแข

แŠ แˆแŠ• แ‰  kubectl แˆแˆญแ‰ณแˆ›แАแ‰ตแ‹ŽแŠ• แˆˆแˆ›แˆปแˆปแˆ แ‹จแˆšแˆจแ‹ฑ แŠ แŠ•แ‹ณแŠ•แ‹ต แˆแ‹ฉ แˆแŠญแˆฎแ‰ฝแŠ• แŠฅแŠ“ แ‹˜แ‹ดแ‹Žแ‰ฝแŠ• แŠฅแŠ•แˆ˜แˆแŠจแ‰ตแข

1. แ‹จแ‰ตแ‹•แ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แ‰ แˆ˜แŒ แ‰€แˆ แŒแ‰คแ‰ตแŠ• แ‹ซแ‹แŒฅแŠ‘

แŠจ kubectl แŒ‹แˆญ แŠ แˆแŒปแŒธแˆแŠ• แˆˆแˆ›แˆปแˆปแˆ แ‰ แŒฃแˆ แŒ แ‰ƒแˆš แŠจแˆ†แŠ‘ แŒแŠ• แ‰ฅแ‹™ แŒŠแ‹œ แ‹จแˆ›แ‹ญแ‰ณแ‹ฉ แ‰ดแŠญแŠ’แŠฎแ‰ฝ แ‹จแ‰ตแŠฅแ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰… แАแ‹แข

แ‹จแ‰ตแ‹•แ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰… แ‹จแ‰ตแˆญ แ‰แˆแแŠ• แ‰ แˆ˜แŒ แ‰€แˆ แ‹จ kubectl แ‰ตแ‹•แ‹›แ‹žแ‰ฝแŠ• แŠญแแˆŽแ‰ฝ แ‰ แˆซแˆต-แˆฐแˆญ แŠฅแŠ•แ‹ฒแ‹ซแŒ แŠ“แ‰…แ‰ แ‹ญแˆแ‰…แ‹ตแˆแ‹Žแ‰ณแˆแข แ‹ญแˆ… แˆˆแŠ•แ‹‘แˆต แ‰ตแ‹•แ‹›แ‹žแ‰ฝแฃ แŠ แˆ›แˆซแŒฎแ‰ฝ แŠฅแŠ“ แАแŒ‹แˆช แŠฅแˆดแ‰ถแ‰ฝ แ‹ญแˆฐแˆซแˆแฃ แŠฅแŠ•แ‹ฐ แˆ˜แŒˆแˆแŒˆแ‹ซ แˆตแˆžแ‰ฝ แ‹ซแˆ‰ แ‹แˆตแ‰ฅแˆตแ‰ฅ แАแŒˆแˆฎแ‰ฝแŠ•แˆ แŒจแˆแˆฎแข

แ‹จ kubectl แ‰ตแ‹•แ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰… แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแˆฐแˆซ แ‹ญแˆ˜แˆแŠจแ‰ฑแก-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แ‹จแ‰ตแŠฅแ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰… แˆˆ Bash แŠฅแŠ“ Zsh แ‹›แŒŽแˆŽแ‰ฝ แ‹ญแˆฐแˆซแˆแข

แŠฆแŠแˆดแˆ‹แ‹Š แˆ˜แˆ˜แˆชแ‹ซ แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซแŠ• แˆˆแˆ›แ‹˜แŒ‹แŒ€แ‰ต แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซแ‹Žแ‰ฝแŠ• แ‹ญแ‹Ÿแˆ, แАแŒˆแˆญ แŒแŠ• แŠจแ‹šแˆ… แ‰ แ‰ณแ‰ฝ แŠ แŒญแˆญ แˆ˜แŒแˆˆแŒซ แŠฅแŠ“แ‰€แˆญแ‰ฃแˆˆแŠ•.

แ‹จแ‰ตแ‹•แ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰… แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแˆฐแˆซ

แ‹จแ‰ตแŠฅแ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰… แ‹จแˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆตแŠญแˆชแ•แ‰ต แ‰ แˆ˜แŒ แ‰€แˆ แ‹จแˆšแˆฐแˆซ แ‹จแˆผแˆ แ‰ฃแˆ…แˆช แАแ‹แข แ‹จแŠคแŠญแˆตแ‰ดแŠ•แˆฝแŠ• แˆตแŠญแˆชแ•แ‰ต แˆˆแ‰ฐแ‹ˆแˆฐแА แ‰ตแ‹•แ‹›แ‹ แ‹จแ‰…แŒฅแ‹ซ แ‰ฃแˆ…แˆชแŠ• แ‹จแˆšแŒˆแˆแŒฝ แ‹จแˆผแˆ แˆตแŠญแˆชแ•แ‰ต แАแ‹แข

Kubectl แ‹จแˆšแŠจแ‰ฐแˆ‰แ‰ตแŠ• แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‰ แˆ˜แŒ แ‰€แˆ แˆˆ Bash แŠฅแŠ“ Zsh แ‹จแŠคแŠญแˆตแ‰ดแŠ•แˆฝแŠ• แˆตแŠญแˆชแ•แ‰ถแ‰ฝแŠ• แ‰ แˆซแˆต แˆฐแˆญ แ‹ซแˆ˜แАแŒซแˆ แŠฅแŠ“ แ‹ซแ‹ˆแŒฃแˆแข

$ kubectl completion bash

แ‹ˆแ‹ญแˆ:

$ kubectl completion zsh

แ‰ แŠ•แ‹ตแˆ แˆ€แˆณแ‰ฅ, kubectl แ‰ตแŠฅแ‹›แ‹žแ‰นแŠ• แˆ›แˆŸแˆ‹แ‰ต แŠฅแŠ•แ‹ฒแ‰ฝแˆ แ‹จแŠฅแАแ‹šแˆ…แŠ• แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‹แŒคแ‰ต แŠจแ‰ฐแŒˆแ‰ขแ‹ แ‹จแ‰ตแŠฅแ‹›แ‹ แˆผแˆ แŒ‹แˆญ แˆ›แŒˆแŠ“แŠ˜แ‰ต แ‰ แ‰‚ แАแ‹.

แ‰ แ‰ฐแŒแ‰ฃแˆญแฃ แ‹จแŒแŠ•แŠ™แАแ‰ต แ‹˜แ‹ดแ‹ แˆˆแ‰ฃแˆฝ แ‹ญแˆˆแ‹ซแ‹ซแˆ (แ‰ แˆ˜แŠซแŠจแˆ แ‹ซแˆ‰แ‰ตแŠ• แˆแ‹ฉแАแ‰ถแ‰ฝ แŒจแˆแˆฎ) Linux แŠฅแŠ“ แˆ›แŠญแŠฆแŠคแˆต) แŠฅแŠ“ แ‹šแˆฝแข แŠฅแАแ‹šแˆ…แŠ• แŠ แˆ›แˆซแŒฎแ‰ฝ แ‰ แˆ™แˆ‰ แŠจแ‹šแˆ… แ‰ แ‰ณแ‰ฝ แŠฅแŠ•แˆธแแŠ“แ‰ธแ‹‹แˆˆแŠ•แข

แ‰ฃแˆฝ แŠขแŠ• Linux

แ‹จแ‰ฃแˆฝ แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆตแŠญแˆชแ•แ‰ต แ‰ แ‰ฃแˆฝ แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แŒฅแ‰…แˆ แˆ‹แ‹ญ แˆตแˆˆแˆšแˆ˜แˆจแŠฎแ‹ แˆ˜แŒ€แˆ˜แˆชแ‹ซ แˆ˜แŒซแŠ• แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆแข

$ sudo apt-get install bash-completion

แ‹ˆแ‹ญแˆ:

$ yum install bash-completion

แ‹จแˆšแŠจแ‰ฐแˆˆแ‹แŠ• แ‰ตแ‹•แ‹›แ‹ แ‰ แˆ˜แŒ แ‰€แˆ แŒฅแ‰…แˆ‰ แ‰ แ‰ฐแˆณแŠซ แˆแŠ”แ‰ณ แˆ˜แŒซแŠ‘แŠ• แˆ˜แˆžแŠจแˆญ แ‹ญแ‰ฝแˆ‹แˆ‰แก

$ type _init_completion

แ‹ญแˆ… แ‹จแˆผแˆ แ‰ฐแŒแ‰ฃแˆญ แŠฎแ‹ตแŠ• แŠซแ‹ˆแŒฃ, bash-completion แ‰ แ‰ตแŠญแŠญแˆ แ‰ฐแŒญแŠ—แˆ. แ‰ตแ‹•แ‹›แ‹™ "แŠ แˆแ‰ฐแŒˆแŠ˜แˆ" แˆตแˆ…แ‰ฐแ‰ต แŠจแˆฐแŒ , แ‹จแˆšแŠจแ‰ฐแˆˆแ‹แŠ• แˆ˜แˆตแˆ˜แˆญ แ‹ˆแ‹ฐ แ‹แ‹ญแˆแ‹Ž แˆ›แŠจแˆ แŠ แˆˆแ‰ฅแ‹Žแ‰ต ~ / .bashrc:

$ source /usr/share/bash-completion/bash_completion

แ‹ญแˆ…แŠ•แŠ• แˆ˜แˆตแˆ˜แˆญ แ‹ˆแ‹ฐ แ‹แ‹ญแˆ‰ แˆ›แŠจแˆ แŠ แˆตแˆแˆ‹แŒŠ แАแ‹แŠ•? ~ / .bashrc แ‹ˆแ‹ญแˆ แ‰ฃแˆฝ-แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แˆˆแˆ˜แŒซแŠ• แ‰ แ‰ฐแŒ แ‰€แˆ™แ‰ แ‰ต แ‹จแŒฅแ‰…แˆ แŠ แˆตแ‰ฐแ‹ณแ‹ณแˆช แˆ‹แ‹ญ แ‹จแ‰ฐแˆ˜แŠซ แŠ แ‹ญแ‹ฐแˆˆแˆแข แ‹ญแˆ… แˆˆแŠคแ’แ‰ฒ แŠ แˆตแˆแˆ‹แŒŠ แАแ‹, แŒแŠ• แˆˆ YUM แŠ แ‹ญแ‹ฐแˆˆแˆ.

bash-completion แŠ• แŠจแŒซแŠ‘ แ‰ แŠ‹แˆ‹ แ‹จ kubectl แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆตแŠญแˆชแ•แ‰ต แ‰ แˆแˆ‰แˆ แ‹จแˆผแˆ แŠญแแˆˆ แŒŠแ‹œแ‹Žแ‰ฝ แ‹แˆตแŒฅ แŠฅแŠ•แ‹ฒแАแ‰ƒ แˆแˆ‰แŠ•แˆ แАแŒˆแˆญ แˆ›แ‹‹แ‰€แˆญ แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆแข

แ‹ญแˆ…แŠ•แŠ• แˆˆแˆ›แ‹ตแˆจแŒ แŠ แŠ•แ‹ฑ แˆ˜แŠ•แŒˆแ‹ต แ‹จแˆšแŠจแ‰ฐแˆˆแ‹แŠ• แˆ˜แˆตแˆ˜แˆญ แ‹ˆแ‹ฐ แ‹แ‹ญแˆ‰ แˆ›แŠจแˆ แАแ‹แข ~ / .bashrc:

source <(kubectl completion bash)

แˆŒแˆ‹แ‹ แˆ˜แŠ•แŒˆแ‹ต แ‹จ kubectl แŠคแŠญแˆตแ‰ดแŠ•แˆฝแŠ• แˆตแŠญแˆชแ•แ‰ต แ‹ˆแ‹ฐ แˆ›แ‹แŒซแ‹ แˆ›แŠจแˆ แАแ‹ /etc/bash_completion.d (แŠจแˆŒแˆˆแ‹ แ‹ญแแŒ แˆฉ)

$ kubectl completion bash >/etc/bash_completion.d/kubectl

แ‰ แŠซแ‰ณแˆŽแŒ แ‹แˆตแŒฅ แ‹ซแˆ‰ แˆแˆ‰แˆ แ‰ฐแŒจแˆ›แˆช แˆตแŠญแˆชแ•แ‰ถแ‰ฝ /etc/bash_completion.d แ‰ แˆซแˆต-แˆฐแˆญ แ‰  bash-completion แ‹แˆตแŒฅ แ‹ญแŠซแ‰ฐแ‰ณแˆ‰แข

แˆแˆˆแ‰ฑแˆ แŠ แˆ›แˆซแŒฎแ‰ฝ แŠฅแŠฉแˆ แ‰ฐแˆแŒปแˆšแАแ‰ต แŠ แˆ‹แ‰ธแ‹แข

แ‹›แŒŽแˆ‰แŠ• แŠฅแŠ•แ‹ฐแŒˆแŠ“ แŠจแŒ€แˆ˜แˆฉ แ‰ แŠ‹แˆ‹ แ‹จ kubectl แ‰ตแ‹•แ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰… แ‹ญแˆฐแˆซแˆ.

แ‰ฃแˆฝ แ‰  MacOS แˆ‹แ‹ญ

แ‰  MacOS แˆ‹แ‹ญ แˆ›แ‹‹แ‰€แˆฉ แ‰ตแŠ•แˆฝ แ‹จแ‰ฐแ‹ˆแˆณแˆฐแ‰  แАแ‹แข แŠฅแ‹แАแ‰ณแ‹ แŒแŠ• แ‰ แАแ‰ฃแˆชแАแ‰ต MacOS แ‹จ Bash แˆตแˆชแ‰ต 3.2 แ‹ญแŒ แ‰€แˆ›แˆ แŠฅแŠ“ แ‹จ kubectl แˆซแˆต-แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆตแŠญแˆชแ•แ‰ต แ‰ขแ‹ซแŠ•แˆต 4.1 แ‰ฃแˆฝ แˆตแˆชแ‰ต แ‹ญแˆแˆแŒ‹แˆ แŠฅแŠ“ แ‰  Bash 3.2 แ‹แˆตแŒฅ แŠ แ‹ญแˆฐแˆซแˆแข

แŒŠแ‹œแ‹ แ‹ซแˆˆแˆแ‰ แ‰ต แ‹จ Bash แˆตแˆชแ‰ต แ‰  MacOS แˆ‹แ‹ญ แŠจแˆ˜แŒ แ‰€แˆ แŒ‹แˆญ แ‹จแ‰ฐแ‹ซแ‹ซแ‹™ แ‹จแแ‰ƒแ‹ต แŒ‰แ‹ณแ‹ฎแ‰ฝ แŠ แˆ‰แข แ‰ฃแˆฝ แˆตแˆชแ‰ต 4 แ‰ แŠ แ•แˆ แ‹จแˆ›แ‹ญแ‹ฐแŒˆแ แ‰ GPLv3 แแ‰ƒแ‹ต แ‰ฐแˆฐแŒฅแ‰ถแ‰ณแˆแข

แ‰  MacOS แˆ‹แ‹ญ kubectl autocompletion แŠ• แˆˆแˆ›แ‹‹แ‰€แˆญ แ‹จแ‰ แˆˆแŒ  แ‹จแ‰…แˆญแ‰ฅ แŒŠแ‹œ แ‹จ Bash แˆตแˆชแ‰ต แˆ˜แŒซแŠ• แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆแข แŠฅแŠ•แ‹ฒแˆแˆ แ‹จแ‰ฐแ‹˜แˆ˜แАแ‹แŠ• Bash แŠฅแŠ•แ‹ฐ แАแ‰ฃแˆช แˆผแˆ แˆ›แ‹‹แ‰€แˆญ แ‹ญแ‰ฝแˆ‹แˆ‰ แ‹ญแˆ…แˆ แˆˆแ‹ˆแ‹ฐแŠแ‰ฑ แ‰ฅแ‹™ แ‰ฝแŒแˆฎแ‰ฝแŠ• แ‹ซแ‹ตแŠ“แˆ. แŠ แˆตแ‰ธแŒ‹แˆช แŠ แ‹ญแ‹ฐแˆˆแˆ, แ‹แˆญแ‹แˆฎแ‰ฝ แ‰ แŠ แŠ•แ‰€แŒน แ‹แˆตแŒฅ แ‰ฐแˆฐแŒฅแ‰ฐแ‹‹แˆ "แ‰ฃแˆฝ แ‰  MacOS แˆ‹แ‹ญ แ‰ แˆ›แ‹˜แˆ˜แŠ• แˆ‹แ‹ญยป.

แŠจแˆ˜แ‰€แŒ แˆแ‹Ž แ‰ แŠแ‰ต แ‹จแ‰…แˆญแ‰ฅ แŒŠแ‹œแ‹แŠ• แ‹จ Bash แˆตแˆชแ‰ต แŠฅแ‹จแ‰ฐแŒ แ‰€แˆ™ แˆ˜แˆ†แŠ•แ‹ŽแŠ• แ‹ซแˆจแŒ‹แŒแŒก (แ‹แŒคแ‰ฑแŠ• แ‹ซแˆจแŒ‹แŒแŒก bash --version).

แ‹จแ‰ฃแˆฝ แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆตแŠญแˆชแ•แ‰ต แŠฅแŠ•แ‹ฐ แ•แˆฎแŒ€แŠญแ‰ต แ‹ญแˆˆแ‹ซแ‹ซแˆ แ‰ฃแˆฝ แˆ›แŒ แŠ“แ‰€แ‰…, แˆตแˆˆแ‹šแˆ… แˆ˜แŒ€แˆ˜แˆชแ‹ซ แˆ˜แŒซแŠ• แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ.

แ‰ แˆ˜แŒ แ‰€แˆ bash-completion แŠ• แˆ˜แŒซแŠ• แ‹ญแ‰ฝแˆ‹แˆ‰แข Homebrew:

$ brew install bash-completion@2

แ‹ญแˆ… แАแ‹ @2 แˆˆ bash-completion version แ‹ญแ‰†แˆ›แˆ 2. kubectl autocompletion bash-completion v2 แ‹ซแˆตแˆแˆแŒˆแ‹‹แˆแฃ แŠฅแŠ“ bash-completion v2 แ‰ขแ‹ซแŠ•แˆต แ‹จ Bash แˆตแˆชแ‰ต 4.1 แ‹ญแˆแˆแŒ‹แˆแข

แ‹จแ‰ตแŠฅแ‹›แ‹ แ‹แ…แ‹“แ‰ต brew-install แ‰ แ‹แ‹ญแˆ‰ แ‹แˆตแŒฅ แˆแŠ• แˆ˜แ‰ณแŠจแˆ แŠฅแŠ•แ‹ณแˆˆแ‰ แ‰ต แ‹จแˆšแŒˆแˆแŒฝ แ‹จแˆ›แˆตแŒ แŠ•แ‰€แ‰‚แ‹ซ แŠญแแˆ แ‹ญแ‹Ÿแˆ ~/.bash_profile:

export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . 
"/usr/local/etc/profile.d/bash_completion.sh"

แˆ†แŠ–แˆ แŠฅแАแ‹šแˆ…แŠ• แˆ˜แˆตแˆ˜แˆฎแ‰ฝ แ‹ˆแ‹ฐ แˆ‹แ‹ญ แŠฅแŠ•แ‹ณแ‹ญแŒจแˆแˆฉ แŠฅแˆ˜แŠญแˆซแˆˆแˆแข ~/.bash_profileแŠฅแŠ“ แ‹แˆตแŒฅ ~/.bashrc. แ‰ แ‹šแˆ… แˆแŠ”แ‰ณ, แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰… แ‰ แ‹‹แŠ“แ‹ แˆ‹แ‹ญ แ‰ฅแ‰ป แˆณแ‹ญแˆ†แŠ• แ‰ แˆแŒ†แ‰ฝ แ‰ตแ‹•แ‹›แ‹ แ‹›แŒŽแˆŽแ‰ฝ แ‹แˆตแŒฅแˆ แ‹ญแŒˆแŠ›แˆ.

แ‹จแ‰ตแŠฅแ‹›แ‹ แ‰…แˆญแŠแ‰ฑแŠ• แŠฅแŠ•แ‹ฐแŒˆแŠ“ แŠจแŒ€แˆ˜แˆฉ แ‰ แŠ‹แˆ‹ แ‹จแˆšแŠจแ‰ฐแˆˆแ‹แŠ• แ‰ตแ‹•แ‹›แ‹ แ‰ แˆ˜แŒ แ‰€แˆ แˆ˜แŒซแŠ‘ แ‰ตแŠญแŠญแˆ แˆ˜แˆ†แŠ‘แŠ• แˆ›แˆจแŒ‹แŒˆแŒฅ แ‹ญแ‰ฝแˆ‹แˆ‰-

$ type _init_completion

แ‰ แ‹แŒคแ‰ฑ แ‹แˆตแŒฅ แ‹จแˆผแˆ แ‰ฐแŒแ‰ฃแˆญแŠ• แŠจแ‰ฐแˆ˜แˆˆแŠจแ‰ฑ, แˆแˆ‰แˆ แАแŒˆแˆญ แ‰ แ‰ตแŠญแŠญแˆ แ‹จแ‰ฐแ‹‹แ‰€แˆจ แАแ‹.

แŠ แˆแŠ• แ‹จ kubectl แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰… แ‰ แˆแˆ‰แˆ แŠญแแˆˆ แŒŠแ‹œแ‹Žแ‰ฝ แ‹แˆตแŒฅ แˆ˜แŠ•แ‰ƒแ‰ฑแŠ• แˆ›แˆจแŒ‹แŒˆแŒฅ แŠ แˆˆแ‰ฅแŠ•แข

แŠ แŠ•แ‹ฑ แˆ˜แŠ•แŒˆแ‹ต แ‹จแˆšแŠจแ‰ฐแˆˆแ‹แŠ• แˆ˜แˆตแˆ˜แˆญ แ‹ˆแ‹ฐ แŠฅแˆญแˆตแ‹Ž แˆ›แŠจแˆ แАแ‹แข ~/.bashrc:

source <(kubectl completion bash)

แˆแˆˆแ‰ฐแŠ›แ‹ แˆ˜แŠ•แŒˆแ‹ต แ‹ˆแ‹ฐ แŠ แ‰ƒแŠแ‹ แˆซแˆต-แŠ แŒ แŠ“แ‰…แ‰… แˆตแŠญแˆชแ•แ‰ต แˆ›แŠจแˆ แАแ‹แข /usr/local/etc/bash_completion.d:

$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl

แ‹ญแˆ… แ‹˜แ‹ด แ‹จแˆšแˆ แˆซแ‹ HomebrewแŠ• แ‰ แˆ˜แŒ แ‰€แˆ bash-completion แŠจแŒซแŠ‘ แ‰ฅแ‰ป แАแ‹แข แ‰ แ‹šแˆ… แŠ แŒ‹แŒฃแˆš, bash-completion แˆแˆ‰แŠ•แˆ แˆตแŠญแˆชแ•แ‰ถแ‰ฝ แŠจแ‹šแˆ… แˆ›แ‹แŒซ แ‹ญแŒญแŠ“แˆ.

แŠจแŒซแŠ‘ Homebrew แ‰ แˆ˜แŒ แ‰€แˆ kubectlแ‹จแˆซแˆต-แŠ แŒ แŠ“แ‰…แ‰… แˆตแŠญแˆชแ•แ‰ต แ‰ แˆซแˆต-แˆฐแˆญ แ‰ แŠ แ‰ƒแŠแ‹ แ‹แˆตแŒฅ แˆตแˆˆแˆšแ‰€แˆ˜แŒฅ แ‹จแ‰€แ‹ฐแˆ˜แ‹แŠ• แŠฅแˆญแˆแŒƒ แˆ›แŠจแŠ“แ‹ˆแŠ• แŠ แ‹ซแˆตแˆแˆแŒแˆแข /usr/local/etc/bash_completion.d แ‰ แˆ˜แŒซแŠ• แŒŠแ‹œ. แ‰ แ‹šแˆ… แŠ แŒ‹แŒฃแˆš kubectl autocompletion แˆแŠญ bash-completion แŠฅแŠ•แ‹ฐแŒซแŠ‘ แˆ˜แˆตแˆซแ‰ต แ‹ญแŒ€แˆแˆซแˆแข

แ‰ แ‹แŒคแ‰ฑแˆ, แŠฅแАแ‹šแˆ… แˆแˆ‰ แŠ แˆ›แˆซแŒฎแ‰ฝ แŠฅแŠฉแˆ แŠ“แ‰ธแ‹.

แ‹šแˆฝ

แ‹จZsh แˆซแˆต-แŠ แŒ แŠ“แ‰…แ‰… แˆตแŠญแˆชแ•แ‰ถแ‰ฝ แˆแŠ•แˆ แŠ แ‹ญแАแ‰ต แŒฅแŒˆแŠแАแ‰ต แŠ แ‹ซแˆตแˆแˆแŒ‹แ‰ธแ‹แˆแข แ‹จแ‰ตแŠฅแ‹›แ‹ แ‹›แŒŽแˆ‰แŠ• แˆฒแŒญแŠ‘ แ‹จแˆšแ‹ซแˆตแˆแˆแŒแ‹Ž แАแŒˆแˆญ แ‰ขแŠ–แˆญ แŠฅแАแˆฑแŠ• แˆ›แŠ•แ‰ƒแ‰ต แ‰ฅแ‰ป แАแ‹แข

แ‹ˆแ‹ฐ แŠฅแˆญแˆตแ‹Ž แˆ˜แˆตแˆ˜แˆญ แ‰ แˆ›แŠจแˆ แ‹ญแˆ…แŠ•แŠ• แˆ›แ‹ตแˆจแŒ แ‹ญแ‰ฝแˆ‹แˆ‰แข ~/.zshrc แ‹แ‹ญแˆแก-

source <(kubectl completion zsh)

แˆตแˆ…แ‰ฐแ‰ต แŠจแ‰ฐแ‰€แ‰ แˆ‰ not found: compdef แˆผแˆแ‹ŽแŠ• แŠฅแŠ•แ‹ฐแŒˆแŠ“ แŠจแŒ€แˆ˜แˆฉ แ‰ แŠ‹แˆ‹ แŠ แ‰ฅแˆฎ แ‹จแ‰ฐแˆฐแˆซแ‹แŠ• แ‰ฐแŒแ‰ฃแˆญ แˆ›แŠ•แ‰ƒแ‰ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ compdef. แ‰ แ‹แ‹ญแˆแ‹Ž แˆ˜แŒ€แˆ˜แˆชแ‹ซ แˆ‹แ‹ญ แ‰ แˆ›แŠจแˆ แˆ›แŠ•แ‰ƒแ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰แข ~/.zshrc แ‰ แˆ˜แŠจแ‰ฐแˆ

autoload -Uz compinit
compinit

2. แ‹จแŠ•แ‰ฅแˆจแ‰ต แ‹แˆญแ‹แˆฎแ‰ฝแŠ• แ‰ แแŒฅแАแ‰ต แ‹ญแˆ˜แˆแŠจแ‰ฑ

แ‹จ YAML แˆƒแ‰ฅแ‰ต แ‰ตแˆญแŒ“แˆœแ‹Žแ‰ฝแŠ• แˆฒแˆแŒฅแˆฉ แˆ˜แˆตแŠฎแ‰นแŠ• แŠฅแŠ“ แˆˆแАแ‹šแ‹ซ แˆƒแ‰ฅแ‰ถแ‰ฝ แ‰ตแˆญแŒ‰แˆ›แ‰ธแ‹แŠ• แˆ›แ‹ˆแ‰… แŠ แˆˆแ‰ฆแ‰ตแข แ‹ญแˆ…แŠ•แŠ• แˆ˜แˆจแŒƒ แˆˆแˆ˜แˆแˆˆแŒ แŠ แŠ•แ‹ต แ‰ฆแ‰ณ แ‰ แŠคแ’แŠ แ‹ญ แˆ›แŒฃแ‰€แˆป แ‹แˆตแŒฅ แАแ‹แฃ แŠฅแˆฑแˆ แˆˆแˆแˆ‰แˆ แˆ€แ‰ฅแ‰ถแ‰ฝ แ‹จแ‰ฐแˆŸแˆ‹ แ‹แˆญแ‹แˆญ แˆ˜แŒแˆˆแŒซแ‹Žแ‰ฝแŠ• แ‹ญแ‹ญแ‹›แˆแข

แ‹จแˆ†แА แАแŒˆแˆญ แˆˆแˆ˜แˆแˆˆแŒ แ‰ แˆšแˆแˆแŒ‰แ‰ แ‰ต แŒŠแ‹œ แˆแˆ‰ แ‹ˆแ‹ฐ แ‹Œแ‰ฅ แŠ แˆณแˆฝ แˆ˜แ‰€แ‹จแˆญ แ‹จแˆ›แ‹ญแˆ˜แ‰ฝ แАแ‹แข แˆตแˆˆแ‹šแˆ… kubectl แ‰ตแ‹•แ‹›แ‹™แŠ• แ‹ซแ‰€แˆญแ‰ฃแˆ kubectl explain, แ‹ญแˆ…แˆ แ‰ แ‰ตแŠญแŠญแˆ แ‰ แŠฅแˆญแˆตแ‹Ž แ‰ฐแˆญแˆšแŠ“แˆ แ‹แˆตแŒฅ แ‹ซแˆˆแ‹แŠ• แˆแˆ‰แŠ•แˆ แˆ€แ‰ฅแ‰ถแ‰ฝ แ‹แˆญแ‹แˆญ แ‹ซแˆณแ‹ซแˆ.

แ‹จแ‰ตแŠฅแ‹›แ‹ แ‰…แˆญแ€แ‰ฑ แŠฅแŠ•แ‹ฐแˆšแŠจแ‰ฐแˆˆแ‹ แАแ‹-

$ kubectl explain resource[.field]...

แ‰ตแ‹•แ‹›แ‹™ แ‹จแ‰ฐแŒ แ‹จแ‰€แ‹แŠ• แˆ€แ‰ฅแ‰ต แ‹ˆแ‹ญแˆ แˆ˜แˆตแŠญ แ‹แˆญแ‹แˆญ แˆ˜แŒแˆˆแŒซ แ‹ซแ‹ˆแŒฃแˆแข แ‹จแˆšแ‰ณแ‹จแ‹ แˆ˜แˆจแŒƒ แ‰ แŠคแ’แŠ แ‹ญ แˆ˜แˆ˜แˆชแ‹ซ แ‹แˆตแŒฅ แŠซแˆˆแ‹ แŒ‹แˆญ แ‰ฐแˆ˜แˆณแˆณแ‹ญ แАแ‹แข

แ‰ แАแ‰ฃแˆช kubectl explain แˆ›แˆณแ‹Žแ‰ฝ แ‹จแˆ˜แŒ€แˆ˜แˆชแ‹ซแ‹แŠ• แ‹ฐแˆจแŒƒ แ‰ฅแ‰ป แ‹ซแˆณแ‹ซแˆ.

แˆแŠ• แŠฅแŠ•แ‹ฐแˆšแˆ˜แˆตแˆ แ‰ฐแˆ˜แˆแŠจแ‰ต แŠฅแ‹šแˆ… แˆŠแˆ†แŠ• แ‹ญแ‰ฝแˆ‹แˆแข.

แŠ แˆ›แˆซแŒฉแŠ• แŠซแŠจแˆ‰ โ€‹โ€‹แˆ™แˆ‰แ‹แŠ• แ‹›แ แˆ›แˆณแ‹จแ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰ --recursive:

$ kubectl explain deployment.spec --recursive

แ‹จแ‰ตแŠžแ‰น แˆ€แ‰ฅแ‰ถแ‰ฝ แŠฅแŠ•แ‹ฐแˆšแ‹ซแˆตแˆแˆแŒ‰ แ‰ แ‰ตแŠญแŠญแˆ แŠซแˆ‹แ‹ˆแ‰ แˆแˆ‰แŠ•แˆ แ‰ แˆšแŠจแ‰ฐแˆˆแ‹ แ‰ตแŠฅแ‹›แ‹ แˆ›แˆณแ‹จแ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰-

$ kubectl api-resources

แ‹ญแˆ… แ‰ตแŠฅแ‹›แ‹ แ‹จแˆ€แ‰ฅแ‰ต แˆตแˆžแ‰ฝแŠ• แ‰ แ‰ฅแ‹™ แ‰แŒฅแˆญ แ‹ซแˆณแ‹ซแˆแฃ แˆˆแˆแˆณแˆŒแข deployments แ‰  deployment. แŠฅแŠ•แ‹ฒแˆแˆ แŠ แŒญแˆญ แˆตแˆ แ‹ซแˆณแ‹ซแˆ, แˆˆแˆแˆณแˆŒ deployแฃ แˆ‹แˆ‰แ‰ต แˆ€แ‰ฅแ‰ถแ‰ฝแข แˆตแˆˆ แŠฅแАแ‹šแˆ… แˆแ‹ฉแАแ‰ถแ‰ฝ แŠ แ‹ญแŒจแАแ‰. แŠฅแАแ‹šแˆ… แˆแˆ‰ แ‹จแˆตแˆ แŠ แˆ›แˆซแŒฎแ‰ฝ แˆˆ kubectl แŠฅแŠฉแˆ แŠ“แ‰ธแ‹แข แ‹ซแˆ แˆ›แˆˆแ‰ต แˆ›แŠ“แ‰ธแ‹แŠ•แˆ แˆˆแŠฅแАแˆญแˆฑ แˆ˜แŒ แ‰€แˆ แ‹ญแ‰ฝแˆ‹แˆ‰ kubectl explain.

แˆแˆ‰แˆ แ‹จแˆšแŠจแ‰ฐแˆ‰แ‰ต แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แŠฅแŠฉแˆ แŠ“แ‰ธแ‹แก

$ kubectl explain deployments.spec
# ะธะปะธ
$ kubectl explain deployment.spec
# ะธะปะธ        
$ kubectl explain deploy.spec

3. แ‰ฅแŒ แŠ แˆแ‹ต แ‹แ…แ‹“แ‰ต แ‰…แˆญแŒธแ‰ต แ‰ฐแŒ แ‰€แˆ

แАแ‰ฃแˆช แ‹จแ‰ตแ‹•แ‹›แ‹ แ‹แ…แ‹“แ‰ต แ‰…แˆญแŒธแ‰ต kubectl get:

$ kubectl get pods
NAME                     READY    STATUS    RESTARTS  AGE
engine-544b6b6467-22qr6   1/1     Running     0       78d
engine-544b6b6467-lw5t8   1/1     Running     0       78d
engine-544b6b6467-tvgmg   1/1     Running     0       78d
web-ui-6db964458-8pdw4    1/1     Running     0       78d

แ‹ญแˆ… แ‰…แˆญแŒธแ‰ต แˆแ‰น แАแ‹, แŒแŠ• แ‹จแ‰ฐแ‹ˆแˆฐแА แˆ˜แŒ แŠ• แ‹ซแˆˆแ‹ แˆ˜แˆจแŒƒ แ‹ญแ‹Ÿแˆ. แŠจแˆ™แˆ‰ แ‹จแŠ•แ‰ฅแˆจแ‰ต แแ‰บ แ‰…แˆญแŒธแ‰ต แŒ‹แˆญ แˆฒแАแŒปแŒธแˆญแฃ แŠฅแ‹šแˆ… แŒฅแ‰‚แ‰ต แˆ˜แˆตแŠฎแ‰ฝ แ‰ฅแ‰ป แ‹ญแ‰ณแ‹ซแˆ‰แข

แ‰ แ‹šแˆ… แŠ แŒ‹แŒฃแˆš, แ‰ฅแŒ แŠ แˆแ‹ต แ‹แ…แ‹“แ‰ต แ‰…แˆญแŒธแ‰ต แˆ˜แŒ แ‰€แˆ แ‹ญแ‰ฝแˆ‹แˆ‰. แˆแŠ• แ‹แˆ‚แ‰ฅ แŠฅแŠ•แ‹ฐแˆšแ‹ˆแŒฃ แˆˆแˆ˜แ‹ˆแˆฐแŠ• แ‹ซแˆตแ‰ฝแˆแ‹Žแ‰ณแˆ. แˆ›แŠ•แŠ›แ‹แŠ•แˆ แ‹จแŠ•แ‰ฅแˆจแ‰ต แˆ˜แˆตแŠญ แŠฅแŠ•แ‹ฐ แ‹จแ‰ฐแˆˆแ‹จ แŠ แˆแ‹ต แˆ›แˆณแ‹จแ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰แข

แ‹จแ‰ฅแŒ แ‰…แˆญแŒธแ‰ต แŠ แŒ แ‰ƒแ‰€แˆ แŠ แˆ›แˆซแŒฎแ‰ฝแŠ• แ‰ แˆ˜แŒ แ‰€แˆ แ‹ญแ‹ˆแˆฐแŠ“แˆแก-

-o custom-columns=<header>:<jsonpath>[,<header>:<jsonpath>]...

แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑแŠ• แ‹จแ‹แŒคแ‰ต แŠ แˆแ‹ต แŠฅแŠ•แ‹ฐ แŒฅแŠ•แ‹ต แŠ แ‹ตแˆญแŒŽ แˆ˜แŒแˆˆแŒฝ แ‹ญแ‰ฝแˆ‹แˆ‰แข <header>:<jsonpath>แ‹จแ‰ต <header> แ‹จแŠ แˆแ‹ต แˆตแˆ แАแ‹, แŠฅแŠ“ <jsonpath> - แ‹จแŠ•แ‰ฅแˆจแ‰ต แˆ˜แˆตแŠญแŠ• แ‹จแˆšแŒˆแˆแŒฝ แŠ แŒˆแˆ‹แˆˆแŒฝ.

แŠ แŠ•แ‹ต แ‰€แˆ‹แˆ แˆแˆณแˆŒ แŠฅแŠ•แˆ˜แˆแŠจแ‰ตแก-

$ kubectl get pods -o custom-columns='NAME:metadata.name'

NAME
engine-544b6b6467-22qr6
engine-544b6b6467-lw5t8
engine-544b6b6467-tvgmg
web-ui-6db964458-8pdw4

แ‹แ…แ‹“แ‰ต แ‹จแ–แ‹ณแ‹Žแ‰ฝ แˆตแˆ แ‹ซแˆˆแ‹ แŠ แŠ•แ‹ต แŠ แˆแ‹ต แ‹ญแ‹Ÿแˆ.

แ‹จแŠ แˆ›แˆซแŒญ แŠ แŒˆแˆ‹แˆˆแŒฝ แ‹จแ–แ‹ต แˆตแˆžแ‰ฝแŠ• แŠจแˆ˜แˆตแŠญ แ‹ญแˆ˜แˆญแŒฃแˆ metadata.name. แˆแŠญแŠ•แ‹ซแ‰ฑแˆ แ‹จแ–แ‹ฑ แˆตแˆ แ‰ แˆแŒ แˆตแˆ แˆ˜แˆตแŠญ แ‹แˆตแŒฅ แ‹ญแŒˆแˆˆแŒปแˆ metadata แ‰ แ–แ‹ณแ‹ แ‹จแŠ•แ‰ฅแˆจแ‰ต แˆ˜แŒแˆˆแŒซ แ‹แˆตแŒฅ. แ‰ฐแŒจแˆ›แˆช แ‹แˆญแ‹แˆฎแ‰ฝ แ‰  แ‹แˆตแŒฅ แ‹ญแŒˆแŠ›แˆ‰ API แˆ˜แˆ˜แˆชแ‹ซ แ‹ˆแ‹ญแˆ แ‰ตแ‹•แ‹›แ‹™แŠ• แ‹ญแ‰ฐแ‹ญแ‰ก kubectl explain pod.metadata.name.

แŠ แˆแŠ• แ‰ แ‹แŒคแ‰ฑ แˆ‹แ‹ญ แ‰ฐแŒจแˆ›แˆช แŠ แˆแ‹ต แˆ›แŠจแˆ แ‰ตแˆแˆแŒ‹แˆˆแˆ… แŠฅแŠ•แ‰ แˆแฃ แˆˆแˆแˆณแˆŒ แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แ–แ‹ต แŠฅแ‹จแˆฐแˆซแ‰ แ‰ต แ‹ซแˆˆแ‹แŠ• แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แˆ›แˆณแ‹จแ‰ตแข แ‹ญแˆ…แŠ•แŠ• แˆˆแˆ›แ‹ตแˆจแŒ แ‰ แ‰€แˆ‹แˆ‰ แ‰ฐแŒˆแ‰ขแ‹แŠ• แ‹จแŠ แˆแ‹ต แ‹แˆญแ‹แˆญ แ‹ˆแ‹ฐ แ‰ฅแŒ แŠ แˆแ‹ถแ‰ฝ แŠ แˆ›แˆซแŒญ แˆ›แŠจแˆ แ‹ญแ‰ฝแˆ‹แˆ‰-

$ kubectl get pods 
  -o custom-columns='NAME:metadata.name,NODE:spec.nodeName'

NAME                       NODE
engine-544b6b6467-22qr6    ip-10-0-80-67.ec2.internal
engine-544b6b6467-lw5t8    ip-10-0-36-80.ec2.internal
engine-544b6b6467-tvgmg    ip-10-0-118-34.ec2.internal
web-ui-6db964458-8pdw4     ip-10-0-118-34.ec2.internal

แŠ แŒˆแˆ‹แˆˆแŒน แ‹จแŠ แŠ•แŒ“แ‹แŠ• แˆตแˆ แŠจ แ‹ญแˆ˜แˆญแŒฃแˆ spec.nodeName - แŠ แŠ•แ‹ต แ–แ‹ต แ‹ˆแ‹ฐ แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แˆฒแˆ˜แ‹ฐแ‰ฅ, แˆตแˆ™ แ‰ แˆ˜แˆตแŠญ แˆ‹แ‹ญ แ‰ฐแŒฝแแˆ spec.nodeName pod แˆ€แ‰ฅแ‰ต แ‹แˆญแ‹แˆญ. แ‰ฐแŒจแˆ›แˆช แ‹แˆญแ‹แˆญ แˆ˜แˆจแŒƒ แ‰ แ‹แŒคแ‰ฑ แ‹แˆตแŒฅ แˆŠแŒˆแŠ แ‹ญแ‰ฝแˆ‹แˆ kubectl explain pod.spec.nodeName.

แŠฅแ‰ฃแŠญแ‹ŽแŠ• แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แˆ˜แŒˆแˆแŒˆแ‹ซ แˆ˜แˆตแŠฎแ‰ฝ แˆˆแŒ‰แ‹ณแ‹ญ แˆตแˆฑ แˆ˜แˆ†แŠ“แ‰ธแ‹แŠ• แˆแ‰ฅ แ‹ญแ‰ แˆ‰แข

แˆ›แŠ•แŠ›แ‹แŠ•แˆ แ‹จแŠ•แ‰ฅแˆจแ‰ต แˆ˜แˆตแŠญ แŠฅแŠ•แ‹ฐ แŠ แˆแ‹ต แˆ›แ‹จแ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰. แ‹จแˆ˜แˆญแŒƒแ‹แŠ• แ‹แˆญแ‹แˆญ แˆ˜แŒแˆˆแŒซ แ‰ฅแ‰ป แ‹ญแŒˆแˆแŒแˆ™ แŠฅแŠ“ แ‰ แ‹ˆแ‹ฐแ‹ทแ‰ธแ‹ แˆ›แŠ“แ‰ธแ‹แˆ แˆ˜แˆตแŠฎแ‰ฝ แ‹ญแˆžแŠญแˆฉแ‰ตแข

แ‰ แˆ˜แŒ€แˆ˜แˆชแ‹ซ แŒแŠ• แ‹จแˆ˜แˆตแŠญ แˆแˆญแŒซ แˆ˜แŒแˆˆแŒซแ‹Žแ‰ฝแŠ• แŒ แˆˆแ‰… แ‰ฅแˆˆแŠ• แŠฅแŠ•แˆ˜แˆญแˆแˆญแข

JSONPath แˆ˜แŒแˆˆแŒซแ‹Žแ‰ฝ

แ‹จแˆ˜แŒˆแˆแŒˆแ‹ซ แˆ˜แˆตแŠฎแ‰ฝแŠ• แˆˆแˆ˜แˆแˆจแŒฅ แˆ˜แŒแˆˆแŒซแ‹Žแ‰ฝ แ‹จแ‰ฐแˆ˜แˆฐแˆจแ‰ฑ แŠ“แ‰ธแ‹ JSONPath.

JSONPath แŠจJSON แˆฐแАแ‹ถแ‰ฝ แ‹แˆ‚แ‰ฅแŠ• แˆˆแˆ›แ‹แŒฃแ‰ต แ‰‹แŠ•แ‰‹ แАแ‹แข แАแŒ แˆ‹ แˆ˜แˆตแŠญ แˆ˜แˆแˆจแŒฅ แˆˆJSONPath แ‰ แŒฃแˆ แ‰€แˆ‹แˆ‰ แ‹จแŠ แŒ แ‰ƒแ‰€แˆ แŒ‰แ‹ณแ‹ญ แАแ‹แข แŠฅแˆฑ แ‰ฅแ‹™ แŠ แˆˆแ‹แข แ‰ฐแŒจแˆ›แˆช แŠฅแ‹ตแˆŽแ‰ฝแˆ˜แˆซแŒฎแ‰ฝแŠ•แฃ แˆ›แŒฃแˆชแ‹ซแ‹Žแ‰ฝแŠ• แŠฅแŠ“ แ‹จแˆ˜แˆณแˆฐแˆ‰แ‰ตแŠ• แŒจแˆแˆฎแข

Kubectl แˆ›แ‰ฅแˆซแˆซแ‰ต แ‹จแ‰ฐแ‹ˆแˆฐแŠ‘ แ‹จJSONPath แ‰ฃแˆ…แˆชแ‹ซแ‰ตแŠ• แ‹ญแ‹ฐแŒแ‹แˆแข แ‹จแŠ แŒ แ‰ƒแ‰€แˆ แ‹•แ‹ตแˆŽแ‰ฝ แŠฅแŠ“ แˆแˆณแˆŒแ‹Žแ‰ฝ แŠจแ‹šแˆ… แ‰ แ‰ณแ‰ฝ แ‰ฐแ‰ฅแˆซแˆญแ‰ฐแ‹‹แˆ-

# ะ’ั‹ะฑั€ะฐั‚ัŒ ะฒัะต ัะปะตะผะตะฝั‚ั‹ ัะฟะธัะบะฐ
$ kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
# ะ’ั‹ะฑั€ะฐั‚ัŒ ัะฟะตั†ะธั„ะธั‡ะตัะบะธะน ัะปะตะผะตะฝั‚ ัะฟะธัะบะฐ
$ kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
# ะ’ั‹ะฑั€ะฐั‚ัŒ ัะปะตะผะตะฝั‚ั‹ ัะฟะธัะบะฐ, ะฟะพะฟะฐะดะฐัŽั‰ะธะต ะฟะพะด ั„ะธะปัŒั‚ั€
$ kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
# ะ’ั‹ะฑั€ะฐั‚ัŒ ะฒัะต ะฟะพะปั ะฟะพ ัƒะบะฐะทะฐะฝะฝะพะผัƒ ะฟัƒั‚ะธ, ะฝะตะทะฐะฒะธัะธะผะพ ะพั‚ ะธั… ะธะผะตะฝะธ
$ kubectl get pods -o custom-columns='DATA:metadata.*'
# ะ’ั‹ะฑั€ะฐั‚ัŒ ะฒัะต ะฟะพะปั ั ัƒะบะฐะทะฐะฝะฝั‹ะผ ะธะผะตะฝะตะผ, ะฒะฝะต ะทะฐะฒะธัะธะผะพัั‚ะธ ะพั‚ ะธั… ั€ะฐัะฟะพะปะพะถะตะฝะธั
$ kubectl get pods -o custom-columns='DATA:..image'

แ‹จ [] แŠฆแ•แˆฌแ‰ฐแˆญ แ‰ แ‰ฐแˆˆแ‹ญ แŠ แˆตแˆแˆ‹แŒŠ แАแ‹แข แ‰ฅแ‹™ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แˆ˜แŒˆแˆแŒˆแ‹ซ แˆ˜แˆตแŠฎแ‰ฝ แ‹แˆญแ‹แˆฎแ‰ฝ แŠ“แ‰ธแ‹แฃ แŠฅแŠ“ แ‹ญแˆ… แŠฆแ•แˆฌแ‰ฐแˆญ แ‹จแŠฅแАแ‹šแ‹ซแŠ• แ‹แˆญแ‹แˆฎแ‰ฝ แŠ แ‰ฃแˆ‹แ‰ต แŠฅแŠ•แ‹ฒแˆ˜แˆญแŒก แ‹ญแˆแ‰…แ‹ตแˆแ‹Žแ‰ณแˆแข แ‹จแ‹แˆญแ‹แˆฉแŠ• แˆแˆ‰แŠ•แˆ แŠญแแˆŽแ‰ฝ แˆˆแˆ˜แˆแˆจแŒฅ แ‰ฅแ‹™แ‹แŠ• แŒŠแ‹œ แŠฅแŠ•แ‹ฐ [*] แŠซแˆˆแ‹ แ‹ฑแˆญ แŠซแˆญแ‹ต แŒ‹แˆญ แŒฅแ‰…แˆ แˆ‹แ‹ญ แ‹ญแ‹แˆ‹แˆแข

แ‹จแˆ˜แ‰ฐแŒแ‰ แˆชแ‹ซ แˆแˆณแˆŒแ‹Žแ‰ฝ

แ‰ แ‹แŒคแ‰ฑ แ‹แˆตแŒฅ แˆ›แŠ•แŠ›แ‹แŠ•แˆ แˆ˜แˆตแŠญ แ‹ˆแ‹ญแˆ แ‹จแˆ˜แˆญแŒƒ แˆ˜แˆตแŠฎแ‰ฝแŠ• แˆŠแ‹ซแˆณแ‹ฉ แˆตแˆˆแˆšแ‰ฝแˆ‰ แ‰ฅแŒ แ‹จแŠ แˆแ‹ต แ‹แ…แ‹“แ‰ต แ‰…แˆญแŒธแ‰ต แ‹จแˆ˜แŒ แ‰€แˆ แŠฅแ‹ตแˆ‰ แˆ›แˆˆแ‰‚แ‹ซ แ‹จแˆˆแ‹แˆแข แŠ แŠ•แ‹ณแŠ•แ‹ต แ‹จแŠ“แˆ™แŠ“ แŠ แ•แˆŠแŠฌแˆฝแŠ–แ‰ฝ แŠฅแАแŠšแˆแŠ“แฃ แАแŒˆแˆญ แŒแŠ• แŠฅแˆซแˆตแ‹Ž แˆˆแˆ›แˆฐแˆต แŠฅแŠ“ แˆˆแŠฅแˆญแˆตแ‹Ž แ‹จแˆšแˆฐแˆฉ แˆ˜แ‰ฐแŒแ‰ แˆชแ‹ซแ‹Žแ‰ฝแŠ• แˆˆแˆ›แŒแŠ˜แ‰ต แАแƒแАแ‰ต แ‹ญแˆฐแˆ›แ‹Žแข

  1. แ‹จแˆ˜แ‹ซแ‹ฃ แˆแˆตแˆŽแ‰ฝแŠ• แˆˆแ–แ‹ต แ‰ แˆ›แˆณแ‹จแ‰ต แˆ‹แ‹ญแก
    $ kubectl get pods 
      -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'
    
    NAME                        IMAGES
    engine-544b6b6467-22qr6     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-lw5t8     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-tvgmg     rabbitmq:3.7.8-management,nginx
    web-ui-6db964458-8pdw4      wordpress

    แ‹ญแˆ… แ‰ตแŠฅแ‹›แ‹ แˆˆแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แ–แ‹ต แ‹จแˆ˜แ‹ซแ‹ฃ แˆแˆตแˆ แˆตแˆžแ‰ฝแŠ• แ‹ซแˆณแ‹ซแˆแข

    แ‹ซแˆตแ‰ณแ‹แˆฑ แŠ แŠ•แ‹ต แ–แ‹ต แ‰ฅแ‹™ แŠฎแŠ•แ‰ดแ‹ญแАแˆฎแ‰ฝแŠ• แˆŠแ‹ญแ‹ แ‹ญแ‰ฝแˆ‹แˆ, แŠจแ‹šแ‹ซแˆ แ‹จแˆแˆตแˆ‰ แˆตแˆžแ‰ฝ แ‰ แŠ แŠ•แ‹ต แˆ˜แˆตแˆ˜แˆญ แˆ‹แ‹ญ แ‹ญแ‰ณแ‹ซแˆ‰, แ‰ แАแŒ แˆ‹ แˆฐแˆจแ‹žแ‰ฝ แ‹ญแˆˆแ‹ซแˆ‰.

  2. แ‹จแˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แ‰ฐแ‹ฐแˆซแˆฝแАแ‰ต แ‹žแŠ–แ‰ฝแŠ• แ‰ แˆ›แˆณแ‹จแ‰ต แˆ‹แ‹ญแก
    $ kubectl get nodes 
      -o 
    custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone'
    
    NAME                          ZONE
    ip-10-0-118-34.ec2.internal   us-east-1b
    ip-10-0-36-80.ec2.internal    us-east-1a
    ip-10-0-80-67.ec2.internal    us-east-1b

    แ‹จแŠฅแˆญแˆตแ‹Ž แŠฅแŒ…แ‰ฅ แ‰ แŠ แ‹ฐแ‰ฃแ‰ฃแ‹ญ แ‹ฐแˆ˜แŠ“ แ‹จแˆšแˆตแ‰ฐแŠ“แŒˆแ‹ต แŠจแˆ†แА แ‹ญแˆ… แ‰ตแ‹•แ‹›แ‹ แŒ แ‰ƒแˆš แАแ‹แข แˆˆแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แ‹จแˆšแŒˆแŠแ‰ แ‰ตแŠ• แ‹žแŠ• แ‹ซแˆณแ‹ซแˆแข

    แ‹จแ‰ฐแŒˆแŠแАแ‰ต แ‹žแŠ• แ‹จแˆ›แ‰ฃแ‹›แ‰ต แ‹žแŠ‘แŠ• แ‹ˆแ‹ฐ แŒ‚แŠฆแŒแˆซแŠแ‹ซแ‹Š แŠญแˆแˆ แ‹จแˆšแŒˆแ‹ตแ‰ฅ แ‹จแ‹ฐแˆ˜แŠ“ แŒฝแŠ•แˆฐ-แˆ€แˆณแ‰ฅ แАแ‹แข

    แˆˆแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แ‹จแˆšแŒˆแŠ™ แ‹žแŠ–แ‰ฝ แ‰ แˆแ‹ฉ แˆ˜แˆˆแ‹ซ แ‰ แŠฉแˆ แ‹ญแŒˆแŠ›แˆ‰ - failure-domain.beta.kubernetes.io/zone. แŠญแˆ‹แˆตแ‰ฐแˆญ แ‰ แ‹ˆแˆ แ‹ฐแˆ˜แŠ“ แ‹แˆตแŒฅ แŠฅแ‹จแˆ„แ‹ฐ แŠจแˆ†แАแฃ แ‹ญแˆ… แˆ˜แˆˆแ‹ซ แ‰ แˆซแˆต-แˆฐแˆญ แ‹จแ‰ฐแˆแŒ แˆจ แŠฅแŠ“ แ‰ แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แˆ˜แˆตแ‰€แˆˆแŠ› แˆ˜แŠ•แŒˆแ‹ต แ‰ แ‰ฐแŒˆแŠ™ แ‹žแŠ–แ‰ฝ แˆตแˆžแ‰ฝ แ‹จแ‰ฐแˆžแˆ‹ แАแ‹แข

    แˆ˜แˆˆแ‹ซแ‹Žแ‰ฝ แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แˆแŠ•แŒญ แ‹แˆญแ‹แˆญ แŠ แŠซแˆ แŠ แ‹ญแ‹ฐแˆ‰แˆแฃ แˆตแˆˆแ‹šแˆ… แˆตแˆˆแŠฅแАแˆฑ แˆ˜แˆจแŒƒ แ‰  แ‹แˆตแŒฅ แŠ แ‹ซแŒˆแŠ™แˆแข API แˆ˜แˆ˜แˆชแ‹ซ. แАแŒˆแˆญ แŒแŠ•แฃ แ‰  YAML แ‹ˆแ‹ญแˆ JSON แ‰…แˆญแŒธแ‰ต แˆตแˆˆ แŠ แŠ•แŒ“แ‹Žแ‰ฝ แˆ˜แˆจแŒƒ แŠจแŒ แ‹จแ‰ (แŠฅแŠ•แ‹ฐแˆŒแˆŽแ‰ฝ แˆ˜แˆˆแ‹ซแ‹Žแ‰ฝ) แˆŠแ‰ณแ‹ฉ แ‹ญแ‰ฝแˆ‹แˆ‰แข

    $ kubectl get nodes -o yaml
    # ะธะปะธ
    $ kubectl get nodes -o json

    แ‹ญแˆ… แ‹จแˆ˜แŒˆแˆแŒˆแ‹ซ แ‹แˆญแ‹แˆฎแ‰ฝแŠ• แŠจแˆ˜แˆ›แˆญ แ‰ แ‰ฐแŒจแˆ›แˆช แˆตแˆˆ แˆ€แ‰ฅแ‰ถแ‰ฝ แ‹จแ‰ แˆˆแŒ  แˆˆแˆ˜แˆ›แˆญ แŒฅแˆฉ แˆ˜แŠ•แŒˆแ‹ต แАแ‹แข

4. แ‰ แ‰€แˆ‹แˆ‰ แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แŠฅแŠ“ แ‰ แˆตแˆ แ‰ฆแ‰ณแ‹Žแ‰ฝ แˆ˜แŠซแŠจแˆ แ‹ญแ‰€แ‹ซแ‹ญแˆฉ

kubectl แˆˆ Kubernetes API แŒฅแ‹ซแ‰„ แˆฒแ‹ซแ‰€แˆญแ‰ฅแฃ แˆˆแŒแŠ•แŠ™แАแ‰ฑ แˆแˆ‰แŠ•แˆ แŠ แˆตแˆแˆ‹แŒŠ แˆ˜แˆˆแŠชแ‹ซแ‹Žแ‰ฝ แˆˆแˆ›แŒแŠ˜แ‰ต แ‰ แˆ˜แŒ€แˆ˜แˆชแ‹ซ แ‹จ kubeconfig แ‹แ‹ญแˆแŠ• แ‹ซแАแ‰ฃแˆแข

แ‰ แАแ‰ฃแˆช แ‹จ kubeconfig แ‹แ‹ญแˆ แАแ‹แข ~/.kube/config. แ‰ แ‰ฐแˆˆแˆแ‹ถ แ‹ญแˆ… แ‹แ‹ญแˆ แ‰ แˆแ‹ฉ แ‰ตแ‹•แ‹›แ‹ แ‹จแ‰ฐแˆแŒ แˆจ แ‹ˆแ‹ญแˆ แ‹จแ‹˜แˆ˜แА แАแ‹แข

แŠจแ‰ แˆญแŠซแ‰ณ แ‹˜แˆˆแˆ‹แ‹Žแ‰ฝ แŒ‹แˆญ แˆตแ‰ตแˆฐแˆซ แ‹จแŠ แŠ•แ‰ฐ แ‹จkubeconfig แ‹แ‹ญแˆ แŠจแŠฅแАแ‹šแˆ… แ‹˜แˆˆแˆ‹แ‹Žแ‰ฝ แŒ‹แˆญ แˆˆแˆ˜แŒˆแŠ“แŠ˜แ‰ต แ‰…แŠ•แŒ…แ‰ถแ‰ฝแŠ• แ‹ญแ‹Ÿแˆแข แŠจแ‹จแ‰ตแŠ›แ‹ แŠญแˆ‹แˆตแ‰ฐแˆญ แŒ‹แˆญ แŠฅแ‹จแˆฐแˆฉ แŠฅแŠ•แ‹ฐแˆ†แА แˆˆkubectl แ‰ตแ‹•แ‹›แ‹ แ‹จแˆšแАแŒแˆฉแ‰ แ‰ต แˆ˜แŠ•แŒˆแ‹ต แ‹ซแˆตแˆแˆแŒˆแ‹Žแ‰ณแˆแข

แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แ‹แˆตแŒฅแฃ แ‰ฅแ‹™ แ‹จแˆตแˆ แ‰ฆแ‰ณแ‹Žแ‰ฝแŠ• แˆ˜แแŒ แˆญ แ‰ตแ‰ฝแˆ‹แˆˆแˆ…โ€”แ‰ แŠ แŠซแˆ‹แ‹Š แ‹˜แˆˆแˆ‹ แ‹แˆตแŒฅ แ‹ซแˆˆ แˆแŠ“แ‰ฃแ‹Š แŠญแˆ‹แˆตแ‰ฐแˆญ แŠ แ‹ญแАแ‰ตแข Kubectl แ‰  kubeconfig แ‹แ‹ญแˆ แˆ‹แ‹ญ แ‰ แˆ˜แˆ˜แˆตแˆจแ‰ต แ‹จแ‰ตแŠ›แ‹แŠ• แ‹จแˆตแˆ แ‰ฆแ‰ณ แŠฅแŠ•แ‹ฐแˆšแŒ แ‰€แˆ แ‹ญแ‹ˆแˆตแŠ“แˆแข แ‹ญแˆ… แˆ›แˆˆแ‰ต แ‹ฐแŒแˆž แŠจแ‹จแ‰ตแŠ›แ‹ แ‹จแˆตแˆ แ‰ฆแ‰ณ แŒ‹แˆญ แŠฅแŠ•แ‹ฐแˆšแˆ แˆซ แˆˆ kubectl แ‰ตแ‹•แ‹›แ‹ แ‹จแˆšแАแŒแˆฉแ‰ แ‰ต แˆ˜แŠ•แŒˆแ‹ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ แˆ›แˆˆแ‰ต แАแ‹แข

แ‰ แ‹šแˆ… แˆแŠฅแˆซแ แ‹แˆตแŒฅ แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแˆฐแˆซ แŠฅแŠ“ แŠฅแŠ•แ‹ดแ‰ต แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ฐแˆšแˆฐแˆซ แŠฅแŠ•แŒˆแˆแƒแˆˆแŠ•.

แ‰  KUBECONFIG แŠ แŠซแ‰ฃแ‰ข แ‰ฐแˆˆแ‹‹แ‹‹แŒญ แ‹แˆตแŒฅ แ‹จแ‰ฐแ‹˜แˆจแ‹˜แˆฉ แ‰ แˆญแŠซแ‰ณ แ‹จ kubeconfig แ‹แ‹ญแˆŽแ‰ฝ แˆŠแŠ–แˆฉแ‹Žแ‰ต แŠฅแŠ•แ‹ฐแˆšแ‰ฝแˆ‰ แˆแ‰ฅ แ‹ญแ‰ แˆ‰แข แ‰ แ‹šแˆ… แŠ แŒ‹แŒฃแˆš แŠฅแАแ‹šแˆ… แˆแˆ‰ แ‹แ‹ญแˆŽแ‰ฝ แ‰ แˆ‚แ‹ฐแ‰ต แŒŠแ‹œ แ‹ˆแ‹ฐ แŠ แŠ•แ‹ต แ‹จแ‰ฐแˆˆแˆ˜แ‹ฐ แ‹แ‰…แˆญ แ‹ญแŒฃแˆ˜แˆซแˆ‰แข แŠฅแŠ•แ‹ฒแˆแˆ kubectl แŠ• แŠจแˆ˜แˆˆแŠชแ‹ซแ‹ แŒ‹แˆญ แ‰ แˆ›แˆ„แ‹ต แАแ‰ฃแˆชแ‹แŠ• kubeconfig แ‹แ‹ญแˆ แˆ˜แ‰€แ‹จแˆญ แ‹ญแ‰ฝแˆ‹แˆ‰แข --kubeconfig. แ‰ฐแˆ˜แˆแŠจแ‰ต แŠฆแŠแˆดแˆ‹แ‹Š แˆฐแАแ‹ถแ‰ฝ.

kubeconfig แ‹แ‹ญแˆŽแ‰ฝ

แ‹จ kubeconfig แ‹แ‹ญแˆ แ‰ แ‰ตแŠญแŠญแˆ แˆแŠ• แŠฅแŠ•แ‹ฐแ‹ซแ‹˜ แŠฅแŠ•แˆ˜แˆแŠจแ‰ตแก-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แŠฅแŠ•แ‹ฐแˆšแˆ˜แˆˆแŠจแ‰ฑแ‰ต, แ‹จ kubeconfig แ‹แ‹ญแˆ แ‹จแŠ แ‹แ‹ถแ‰ฝ แˆตแ‰ฅแˆตแ‰ฅ แ‹ญแ‹Ÿแˆ. แŠ แ‹แ‹ต แˆถแˆตแ‰ต แŠ แŠซแˆ‹แ‰ตแŠ• แ‹ซแ‰€แˆ แАแ‹แก-

  • แŠญแˆ‹แˆตแ‰ฐแˆญ โ€” แ‹จแŠญแˆ‹แˆตแ‰ฐแˆญ แŠ แŒˆแˆแŒ‹แ‹ญ แ‹จแŠคแ’แŠ แ‹ญ แ‹ฉแŠ แˆญแŠคแˆแข
  • แ‰ฐแŒ แ‰ƒแˆš - แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แ‹แˆตแŒฅ แ‹จแ‰ฐแŒ แ‰ƒแˆš แˆ›แˆจแŒ‹แŒˆแŒซ แˆแˆตแŠญแˆญแАแ‰ถแ‰ฝแข
  • แ‹จแˆตแˆ แ‰ฆแ‰ณ - แŠญแˆ‹แˆตแ‰ฐแˆญ แˆฒแ‰€แˆ‹แ‰€แˆ‰ แŒฅแ‰…แˆ แˆ‹แ‹ญ แ‹จแ‹‹แˆˆแ‹ แ‹จแˆตแˆ แ‰ฆแ‰ณแข

แ‰ แ‰ฐแŒแ‰ฃแˆญแฃ แ‰ฅแ‹™ แŒŠแ‹œ แŠ แŠ•แ‹ต แŠ แ‹แ‹ต แ‰ แŠ แŠ•แ‹ต แŠญแˆ‹แˆตแ‰ฐแˆญ แ‰  kubeconfig แ‰ธแ‹ แ‹ญแŒ แ‰€แˆ›แˆ‰แข แАแŒˆแˆญ แŒแŠ•แฃ แ‰ แ‰ฐแŒ แ‰ƒแˆš แ‹ˆแ‹ญแˆ แ‰ แˆตแˆ แ‰ฆแ‰ณ แ‹จแˆšแˆˆแ‹ฉ แ‰ แŒฅแ‰…แˆ แ‰ฅแ‹™ แŠ แ‹แ‹ถแ‰ฝ แˆŠแŠ–แˆฉแ‹Žแ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰แข แАแŒˆแˆญ แŒแŠ•แฃ แ‹ญแˆ… แ‰ฃแˆˆแ‰ฅแ‹™-แŠ แ‹แ‹ต แ‹แ‰…แˆญ แ‹ซแˆแ‰ฐแˆˆแˆ˜แ‹ฐ แАแ‹แฃ แˆตแˆˆแ‹šแˆ… แŠ แ‰ฅแ‹›แŠ›แ‹แŠ• แŒŠแ‹œ แ‰ แŠ แŠ•แ‹ต-แˆˆ-แŠ แŠ•แ‹ต แ‹จแŠซแˆญแ‰ณ แˆตแˆซ แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แŠฅแŠ“ แŠ แ‹แ‹ถแ‰ฝ แˆ˜แŠซแŠจแˆ แŠ แˆˆแข

แ‰ แˆ›แŠ•แŠ›แ‹แˆ แŒŠแ‹œแฃ แŠจแŠ แ‹แ‹ต แˆแŠ”แ‰ณแ‹Žแ‰ฝ แŠ แŠ•แ‹ฑ แ‹ˆแ‰…แ‰ณแ‹Š แАแ‹แก-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
kubectl แ‹จแˆ›แ‹‹แ‰€แˆชแ‹ซ แ‹แ‹ญแˆแŠ• แˆฒแ‹ซแАแ‰ฅ แˆแˆ แŒŠแ‹œ แˆ˜แˆจแŒƒแŠ• แŠ แˆแŠ• แŠซแˆˆแ‹ แŠ แ‹แ‹ต แ‹ญแ‹ˆแˆตแ‹ณแˆแข แŠจแˆ‹แ‹ญ แ‰ฃแˆˆแ‹ แˆแˆณแˆŒ kubectl แŠจHare แŠญแˆ‹แˆตแ‰ฐแˆญ แŒ‹แˆญ แ‹ญแŒˆแŠ“แŠ›แˆแข

แ‰ แ‹šแˆ… แˆ˜แˆ แˆจแ‰ต แ‹ˆแ‹ฐ แˆŒแˆ‹ แ‹˜แˆˆแˆ‹ แˆˆแˆ˜แ‰€แ‹จแˆญ แ‰  kubeconfig แ‹แ‹ญแˆ แ‹แˆตแŒฅ แ‹ซแˆˆแ‹แŠ• แ‹จแŠ แˆแŠ‘แŠ• แŠ แ‹แ‹ต แˆ˜แˆˆแ‹ˆแŒฅ แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆแก

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แŠ แˆแŠ• kubectl แŠจแŽแŠญแˆต แŠญแˆ‹แˆตแ‰ฐแˆญ แŒ‹แˆญ แ‹ญแŒˆแŠ“แŠ›แˆแข

แ‰ แ‰ฐแˆ˜แˆณแˆณแ‹ฉ แ‹˜แˆˆแˆ‹ แ‹แˆตแŒฅ แ‹ˆแ‹ฐแ‰ฐแˆˆแ‹จ แ‹จแˆตแˆ แ‰ฆแ‰ณ แˆˆแˆ˜แ‰€แ‹จแˆญ แ‹จแˆตแˆ แ‰ฆแ‰ณ แŠคแˆˆแˆ˜แŠ•แ‰ต แˆˆแŠ แˆแŠ‘ แŠ แ‹แ‹ต แ‹‹แŒ‹ แˆ˜แ‰€แ‹จแˆญ แŠ แˆˆแ‰ฅแˆ…แก

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แŠจแˆ‹แ‹ญ แ‰ฃแˆˆแ‹ แˆแˆณแˆŒ, kubectl แ‹จ Fox cluster's Prod แˆตแˆ แ‰ฆแ‰ณแŠ• แ‹ญแŒ แ‰€แˆ›แˆ (แŠจแ‹šแˆ… แ‰€แ‹ฐแˆ แ‹จแˆ™แŠจแˆซ แˆตแˆ แ‰ฆแ‰ณ แ‰ฐแ‰€แŠ“แ‰ฅแˆฏแˆ)แข

kubectl แŠ แˆ›แˆซแŒฎแ‰ฝแŠ• แŠฅแŠ•แ‹ฐแˆšแˆฐแŒฅ แˆแ‰ฅ แ‹ญแ‰ แˆ‰ --cluster, --user, --namespace ะธ --context, แ‹ญแˆ…แˆ แ‰  kubeconfig แ‹แˆตแŒฅ แ‹จแ‰ฐแ‰€แˆ˜แŒ แ‹ แˆแŠ•แˆ แ‹ญแˆแŠ• แˆแŠ• แ‹จแАแŒ แˆ‹ แŠคแˆˆแˆ˜แŠ•แ‰ถแ‰ฝแŠ• แŠฅแŠ“ แ‹จแŠ แˆแŠ‘แŠ• แŠ แ‹แ‹ต แŠฅแˆซแˆฑแŠ• แŠฅแŠ•แ‹ฒแŒฝแ‰ แ‹ซแˆตแ‰ฝแˆแ‹Žแ‰ณแˆ. แ‰ฐแˆ˜แˆแŠจแ‰ต kubectl options.

แ‰ แŠ•แ‹ตแˆ แˆ€แˆณแ‰ฅ, แ‰  kubeconfig แ‹แˆตแŒฅ แ‰…แŠ•แ‰ฅแˆฎแ‰นแŠ• แŠฅแˆซแˆตแ‹Ž แˆ˜แ‰€แ‹จแˆญ แ‹ญแ‰ฝแˆ‹แˆ‰. แŒแŠ• แ‹จแˆ›แ‹ญแˆ˜แ‰ฝ แАแ‹แข แŠฅแАแ‹šแˆ…แŠ• แˆตแˆซแ‹Žแ‰ฝ แˆˆแˆ›แ‰ƒแˆˆแˆ, แˆ˜แˆˆแŠชแ‹ซแ‹Žแ‰ฝแŠ• แ‰ แˆซแˆต-แˆฐแˆญ แŠฅแŠ•แ‹ฒแ‰€แ‹ญแˆฉ แ‹จแˆšแ‹ซแˆตแ‰ฝแˆ‰แ‹Ž แ‹จแ‰ฐแˆˆแ‹ซแ‹ฉ แˆ˜แŒˆแˆแŒˆแ‹ซแ‹Žแ‰ฝ แŠ แˆ‰.

kubectx แ‹ญแŒ แ‰€แˆ™

แ‰ แŠญแˆ‹แˆตแ‰ฐแˆญ แŠฅแŠ“ แ‰ แˆตแˆ แ‰ฆแ‰ณแ‹Žแ‰ฝ แˆ˜แŠซแŠจแˆ แˆˆแˆ˜แ‰€แ‹ซแ‹จแˆญ แ‰ แŒฃแˆ แ‰ณแ‹‹แ‰‚ แˆ˜แŒˆแˆแŒˆแ‹ซแข

แˆ˜แŒˆแˆแŒˆแ‹ซแ‹ แ‰ตแ‹•แ‹›แ‹žแ‰ฝแŠ• แ‹ญแˆฐแŒฃแˆ kubectx ะธ kubens แ‹จแŠ แˆแŠ‘แŠ• แŠ แ‹แ‹ต แŠฅแŠ“ แ‹จแˆตแˆ แ‰ฆแ‰ณแŠ• แ‰ แ‰…แ‹ฐแˆ แ‰ฐแŠจแ‰ฐแˆ แˆˆแˆ˜แ‰€แ‹จแˆญแข

แŠฅแŠ•แ‹ฐแ‰ฐแŒ แ‰€แˆฐแ‹แฃ แ‹จแŠ แˆแŠ‘แŠ• แŠ แ‹แ‹ต แˆ˜แ‰€แ‹จแˆญ แˆ›แˆˆแ‰ต แ‰ แŠ แŠ•แ‹ต แŠญแˆ‹แˆตแ‰ฐแˆญ แŠ แŠ•แ‹ต แŠ แ‹แ‹ต แ‰ฅแ‰ป แŠซแˆˆแˆ… แŠญแˆ‹แˆตแ‰ฐแˆญ แˆ˜แ‰€แ‹จแˆญ แˆ›แˆˆแ‰ต แАแ‹แข

แŠฅแАแ‹šแˆ…แŠ• แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‹จแˆ›แˆตแŠฌแ‹ต แˆแˆณแˆŒ แŠฅแ‹šแˆ… แŠ แˆˆแก-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แ‰ แˆ˜แˆ แˆจแ‰ฑ, แŠฅแАแ‹šแˆ… แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แŠจแˆ‹แ‹ญ แŠฅแŠ•แ‹ฐแ‰ฐแŒˆแˆˆแ€แ‹ แ‹จ kubeconfig แ‹แ‹ญแˆแŠ• แ‰ แ‰€แˆ‹แˆ‰ แ‹ซแˆญแ‰ตแ‹‘.

แˆˆแˆ˜แŒซแŠ• kubectx, แˆ‹แ‹ญ แ‹ซแˆ‰แ‰ตแŠ• แˆ˜แˆ˜แˆชแ‹ซแ‹Žแ‰ฝ แ‹ญแŠจแ‰ฐแˆ‰ Github.

แˆแˆˆแ‰ฑแˆ แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‹จแŠ แ‹แ‹ต แŠฅแŠ“ แ‹จแˆตแˆ แ‰ฆแ‰ณ แˆตแˆžแ‰ฝแŠ• แ‰ แˆซแˆต แˆฐแˆญ แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แ‹ญแ‹ฐแŒแ‹แˆ‰แฃ แ‹ญแˆ…แˆ แˆ™แˆ‰ แˆˆแˆ™แˆ‰ แ‹จแˆ˜แ‰ฐแ‹จแ‰ฅ แŠ แˆตแˆแˆ‹แŒŠแАแ‰ตแŠ• แ‹ซแˆตแ‹ˆแŒแ‹ณแˆแข แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แˆˆแˆ›แ‹˜แŒ‹แŒ€แ‰ต แˆ˜แˆ˜แˆชแ‹ซแ‹Žแ‰ฝ แŠฅแ‹šแˆ….

แˆŒแˆ‹ แŒ แ‰ƒแˆš แ‰ฃแˆ…แˆช kubectx แАแ‹ แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠ แˆแАแ‰ณ. แŠจแˆ˜แŒˆแˆแŒˆแ‹ซแ‹ แŒ‹แˆญ แŠ แ‰ฅแˆฎ แ‹ญแˆฐแˆซแˆ fzf, แ‰ แ‰ฐแŠ“แŒ แˆ แˆ˜แŒซแŠ• แ‹ซแˆˆแ‰ แ‰ต. fzf แŠ• แˆ˜แŒซแŠ• แ‰ แˆซแˆต-แˆฐแˆญ แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠ แˆแАแ‰ณ แŠฅแŠ•แ‹ฒแŒˆแŠ แ‹ซแ‹ฐแˆญแŒ‹แˆ kubectx. แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠแฃ แ‰ fzf แ‰ แ‰€แˆจแ‰ แ‹ แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠ แАแƒ แ‹จแแˆˆแŒ‹ แ‰ แ‹ญแАแŒˆแŒฝ แ‰ แŠฉแˆ แŠ แ‹แ‹ต แŠฅแŠ“ แ‹จแˆตแˆ แ‰ฆแ‰ณ แˆ˜แˆแˆจแŒฅ แ‹ญแ‰ฝแˆ‹แˆ‰แข

แ‹จแˆผแˆ แˆตแˆžแ‰ฝแŠ• แ‰ แˆ˜แŒ แ‰€แˆ

แ‹จแŠ แˆแŠ‘แŠ• แŠ แ‹แ‹ต แŠฅแŠ“ แ‹จแˆตแˆ แ‰ฆแ‰ณ แˆˆแˆ˜แ‰€แ‹จแˆญ แ‹จแ‰ฐแˆˆแ‹จ แˆ˜แˆณแˆชแ‹ซแ‹Žแ‰ฝ แŠ แ‹ซแˆตแˆแˆแŒ‰แ‹Žแ‰ตแˆ แˆแŠญแŠ•แ‹ซแ‰ฑแˆ kubectl แˆˆแ‹šแˆ… แ‰ตแ‹•แ‹›แ‹žแ‰ฝแŠ• แ‹ญแˆฐแŒฃแˆแข แŠ แ‹Ž แ‰กแ‹ตแŠ• kubectl config แ‹จ kubeconfig แ‹แ‹ญแˆŽแ‰ฝแŠ• แˆˆแˆ›แˆญแ‰ตแ‹• แŠ•แ‹‘แˆต แ‰ตแ‹•แ‹›แ‹žแ‰ฝแŠ• แ‹ญแˆฐแŒฃแˆแข

แŠฅแАแŠšแˆ… แŠ แŠ•แ‹ณแŠ•แ‹ถแ‰น แŠ“แ‰ธแ‹-

  • kubectl config get-contextsแˆแˆ‰แŠ•แˆ แŠ แ‹แ‹ถแ‰ฝ แŠ แˆณแ‹ญ;
  • kubectl config current-contextแ‹จแŠ แˆแŠ‘แŠ• แŠ แ‹แ‹ต แ‹ซแŒแŠ™;
  • kubectl config use-contextแ‹จแŠ แˆแŠ‘แŠ• แŠ แ‹แ‹ต แˆ˜แˆˆแ‹ˆแŒฅ;
  • kubectl config set-contextแ‹จแŠ แ‹แ‹ต แŠคแˆˆแˆ˜แŠ•แ‰ต แˆˆแ‹แŒฅแข

แ‹ญแˆแŠ• แŠฅแŠ•แŒ‚ แŠฅแАแ‹šแˆ…แŠ• แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‰ แ‰€แŒฅแ‰ณ แˆ˜แŒ แ‰€แˆ แ‰ แŒฃแˆ แˆแ‰น แŠ แ‹ญแ‹ฐแˆˆแˆ แˆแŠญแŠ•แ‹ซแ‰ฑแˆ แˆจแŒ…แˆ แŠ“แ‰ธแ‹. แˆˆแˆ˜แˆแŒธแˆ แ‰€แˆ‹แˆ แ‹จแˆ†แŠ‘ แ‹จแˆผแˆ แˆตแˆžแ‰ฝแŠ• แˆˆแŠฅแАแˆฑ แˆ›แ‹ตแˆจแŒ แ‹ญแ‰ฝแˆ‹แˆ‰.

แŠจ kubectx แŒ‹แˆญ แ‹จแˆšแˆ˜แˆณแˆฐแˆ แ‰ฐแŒแ‰ฃแˆญ แ‹จแˆšแˆฐแŒก แ‰ แŠฅแАแ‹šแˆ… แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แˆ‹แ‹ญ แ‰ แˆ˜แˆ˜แˆตแˆจแ‰ต แ‹จแ‰…แŒฝแˆ แˆตแˆ แŠ แ‹˜แŒ‹แŒ…แ‰ปแˆˆแˆแข แŠฅแ‹šแˆ… แŠฅแАแˆฑแŠ• แ‰ แ‰ฐแŒแ‰ฃแˆญ แˆ›แ‹จแ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠ แАแƒ แแˆˆแŒ‹ แ‰ แ‹ญแАแŒˆแŒฝ (แŠฅแŠ•แ‹ฐ kubectx แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠ แˆแАแ‰ณ) แˆˆแˆ›แ‰…แˆจแ‰ฅ fzf แŠฅแŠ•แ‹ฐแˆšแŒ แ‰€แˆ™ แˆแ‰ฅ แ‹ญแ‰ แˆ‰แข แ‹ญแˆ… แˆ›แˆˆแ‰ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ fzf แŠ• แŒซแŠ•แŠฅแАแ‹šแˆ…แŠ• แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆˆแˆ˜แŒ แ‰€แˆแข

แ‹จแˆซแˆณแ‰ธแ‹ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แแ‰บแ‹Žแ‰ฝ แŠฅแ‹šแˆ… แŠ แˆ‰แข

# ะŸะพะปัƒั‡ะธั‚ัŒ ั‚ะตะบัƒั‰ะธะน ะบะพะฝั‚ะตะบัั‚
alias krc='kubectl config current-context'
# ะกะฟะธัะพะบ ะฒัะตั… ะบะพะฝั‚ะตะบัั‚ะพะฒ
alias klc='kubectl config get-contexts -o name | sed "s/^/  /;|^  $(krc)$|s/ /*/"'
# ะ˜ะทะผะตะฝะธั‚ัŒ ั‚ะตะบัƒั‰ะธะน ะบะพะฝั‚ะตะบัั‚
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'

# ะŸะพะปัƒั‡ะธั‚ัŒ ั‚ะตะบัƒั‰ะตะต ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะพ ะธะผะตะฝ
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# ะกะฟะธัะพะบ ะฒัะตั… ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒ ะธะผะตะฝ
alias kln='kubectl get -o name ns | sed "s|^.*/|  |;|^  $(krn)$|s/ /*/"'
# ะ˜ะทะผะตะฝะธั‚ัŒ ั‚ะตะบัƒั‰ะตะต ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะพ ะธะผะตะฝ
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'

แŠฅแАแ‹šแˆ…แŠ• แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆˆแˆ›แ‹˜แŒ‹แŒ€แ‰ต แŠจแˆ‹แ‹ญ แ‹ซแˆ‰แ‰ตแŠ• แ‰ตแˆญแŒ“แˆœแ‹Žแ‰ฝ แ‹ˆแ‹ฐ แ‹แ‹ญแˆแ‹Ž แˆ›แŠจแˆ แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ ~/.bashrc แ‹ˆแ‹ญแˆ ~/.zshrc แŠฅแŠ“ แˆผแˆแ‹ŽแŠ• แŠฅแŠ•แ‹ฐแŒˆแŠ“ แ‹ซแˆตแАแˆฑ.

แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แˆ˜แŒ แ‰€แˆ

Kubectl แŠฅแŠ•แ‹ฐ แˆ˜แˆฐแˆจแ‰ณแ‹Š แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‰ แ‰ฐแˆ˜แˆณแˆณแ‹ญ แˆ˜แŠ•แŒˆแ‹ต แ‹จแˆšแŠจแŠ“แ‹ˆแŠ‘ แ•แˆˆแŒŠแŠ–แ‰ฝแŠ• แŠฅแŠ•แ‹ฒแŒญแŠ‘ แ‹ญแˆแ‰…แ‹ตแˆแ‹Žแ‰ณแˆ. แˆˆแˆแˆณแˆŒ แ‹จ kubectl-foo แ•แˆˆแŒŠแŠ• แˆ˜แŒซแŠ• แŠฅแŠ“ แ‰ตแ‹•แ‹›แ‹™แŠ• แ‰ แˆ˜แˆแŒธแˆ แˆ›แˆตแŠฌแ‹ต แ‹ญแ‰ฝแˆ‹แˆ‰แข kubectl foo.

แ‰ แ‹šแˆ… แˆ˜แŠ•แŒˆแ‹ต แ‹จแŠ แ‹แ‹ต แŠฅแŠ“ แ‹จแˆตแˆ แ‰ฆแ‰ณแŠ• แˆˆแˆ˜แˆˆแ‹ˆแŒฅ แŠ แˆ˜แ‰บ แ‹ญแˆ†แŠ“แˆ, แˆˆแˆแˆณแˆŒ แ‰ แˆ˜แˆฎแŒฅ kubectl ctx แŠ แ‹แ‹ต แˆˆแˆ˜แˆˆแ‹ˆแŒฅ แŠฅแŠ“ kubectl ns แ‹จแˆตแˆ แ‰ฆแ‰ณแŠ• แˆˆแˆ˜แ‰€แ‹จแˆญ.

แ‹ญแˆ…แŠ•แŠ• แ‹จแˆšแ‹ซแ‹ฐแˆญแŒ‰ แˆแˆˆแ‰ต แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แŒฝแŒแ‹ซแˆˆแˆแก-

แ‹จแ•แˆˆแŒŠแŠ–แ‰ฝ แˆฅแˆซ แŠจแ‰€แ‹ณแˆšแ‹ แŠญแแˆ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆ‹แ‹ญ แ‹จแ‰ฐแˆ˜แˆ แˆจแ‰ฐ แАแ‹แข

แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแˆ แˆฉ แŠฅแАแˆ†แก-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แ•แˆˆแŒŠแŠ–แ‰น แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠ แАแƒ แ‹จแแˆˆแŒ‹ แ‰ แ‹ญแАแŒˆแŒฝ แˆˆแˆ›แ‰…แˆจแ‰ฅ fzf แŠฅแŠ•แ‹ฐแˆšแŒ แ‰€แˆ™ (แŠฅแŠ•แ‹ฐ kubectx แ‰ แ‹ญแАแ‰ฐแŒˆแŠ“แŠ แˆแАแ‰ณ) แŠฅแŠ•แ‹ฐแˆšแŒ แ‰€แˆ™ แˆแ‰ฅ แ‹ญแ‰ แˆ‰แข แ‹ญแˆ… แˆ›แˆˆแ‰ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ fzf แŠ• แŒซแŠ•แŠฅแАแ‹šแˆ…แŠ• แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆˆแˆ˜แŒ แ‰€แˆแข

แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แˆˆแˆ˜แŒซแŠ•แฃ แ‹จแ‰ฐแˆฐแ‹จแˆ™ แ‹จแˆผแˆ แˆตแŠญแˆชแ•แ‰ถแ‰ฝแŠ• แˆ›แ‹แˆจแ‹ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ kubectl-ctx ะธ kubectl-ns แ‰ แŠฅแˆญแˆตแ‹Ž PATH แ‰ฐแˆˆแ‹‹แ‹‹แŒญ แ‹แˆตแŒฅ แ‹ˆแ‹ณแˆˆแ‹ แˆ›แŠ•แŠ›แ‹แˆ แˆ›แ‹แŒซ แŠฅแŠ“ แ‰ แˆแˆณแˆŒ แŠฅแŠ•แ‹ฒแ‰ฐแŒˆแ‰ แˆฉ แ‹ซแ‹ตแˆญแŒ“แ‰ธแ‹แข chmod +x. แŠจแ‹šแˆ… แ‰ แŠ‹แˆ‹ แ‹ˆแ‹ฒแ‹ซแ‹แŠ‘ แˆ˜แŒ แ‰€แˆ แ‹ญแ‰ฝแˆ‹แˆ‰ kubectl ctx ะธ kubectl ns.

5. แ‰  autoaliases แŒแ‰คแ‰ตแŠ• แ‹ญแ‰€แŠ•แˆฑ

แ‹จแˆผแˆ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆ˜แ‰ฐแ‹จแ‰ฅ แˆˆแˆ›แ‹แŒ แŠ• แŒฅแˆฉ แˆ˜แŠ•แŒˆแ‹ต แŠ“แ‰ธแ‹แข แ•แˆฎแŒ€แŠญแ‰ต kubectl-แ‰ฐแˆˆแ‹‹แ‹‹แŒฎแ‰ฝ แˆˆแˆ˜แˆ แˆจแ‰ณแ‹Š แ‹จ kubectl แ‰ตแ‹•แ‹›แ‹žแ‰ฝ 800 แŠ แ‰‹แˆซแŒฎแ‰ฝแŠ• แ‹ญแ‹Ÿแˆแข

แˆแŠ“แˆแ‰ฃแ‰ต แ‰ตแŒˆแˆจแˆ แ‹ญแˆ†แŠ“แˆ - 800 แ‰…แŒฝแˆ แˆตแˆžแ‰ฝแŠ• แŠฅแŠ•แ‹ดแ‰ต แ‰ณแˆตแ‰ณแ‹แˆณแˆˆแˆ…? แŒแŠ• แˆแˆ‰แŠ•แˆ แˆ›แˆตแ‰ณแ‹ˆแˆต แŠ แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ตแˆ แฃ แˆแŠญแŠ•แ‹ซแ‰ฑแˆ แŠฅแАแˆฑ แ‰ แ‰€แˆ‹แˆ แˆ˜แˆญแˆƒแŒแ‰ฅแˆญ แˆ˜แˆ แˆจแ‰ต แ‹จแ‰ฐแŒˆแАแ‰ก แŠ“แ‰ธแ‹ แฃ แŠฅแˆฑแˆ แŠจแ‹šแˆ… แ‰ แ‰ณแ‰ฝ แ‰ฐแˆฐแŒฅแ‰ทแˆ-

Kubectl แŠ• แ‹จแ‰ แˆˆแŒ  แ‹แŒคแ‰ณแˆ› แ‰ แˆ†แА แˆ˜แŠ•แŒˆแ‹ต แŠฅแŠ•แ‹ดแ‰ต แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ: แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซ
แˆˆแˆแˆณแˆŒ:

  1. kgpooyaml - kubectl pods oyaml แ‹ซแŒแŠ™
  2. ksysgsvcw โ€” kubectl -n kube-system svc w แ‹ซแŒแŠ™
  3. ksysrmcm -kubectl -n kube-system rm แˆดแˆœ
  4. kgdepallsl - kubectl แˆ›แŒแŠ˜แ‰ต แˆ›แˆฐแˆ›แˆซแ‰ต แˆแˆ‰แŠ•แˆ sl

แŠฅแŠ•แ‹ฐแˆšแˆ˜แˆˆแŠจแ‰ฑแ‰ต แฃ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แŠจแŠญแแˆŽแ‰ฝ แ‹จแ‰ฐแˆ แˆฉ แŠ“แ‰ธแ‹ แฃ แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑแˆ แ‹จ kubectl แ‰ตแ‹•แ‹›แ‹ แ‹จแ‰ฐแ‹ˆแˆฐแА แŠ แŠซแˆแŠ• แ‹ญแ‹ˆแŠญแˆ‹แˆแข แŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ฑ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆˆแˆ˜แˆ แˆจแ‰ณแ‹Š แ‰ตแ‹•แ‹›แ‹ แฃ แŠฆแ•แˆฌแˆฝแŠ• แŠฅแŠ“ แŒแ‰ฅแ‹“แ‰ต แŠ แŠ•แ‹ต แŠ แŠซแˆ แŠฅแŠ“ แˆˆแŒแ‰คแ‰ถแ‰ฝ แ‰ฅแ‹™ แŠ แŠซแˆ‹แ‰ต แˆŠแŠ–แˆจแ‹ แ‹ญแ‰ฝแˆ‹แˆแข แŠจแˆ‹แ‹ญ แ‰ฃแˆˆแ‹ แˆตแŠฅแˆ แˆ˜แˆฐแˆจแ‰ต แ‰ แ‰€แˆ‹แˆ‰ แŠฅแАแ‹šแˆ…แŠ• แŠญแแˆŽแ‰ฝ แŠจแŒแˆซ แ‹ˆแ‹ฐ แ‰€แŠ "แ‰ตแˆžแˆ‹แ‰ธแ‹‹แˆ"แข

แ‹จแŠ แˆแŠ‘ แ‹แˆญแ‹แˆญ แ‹ฒแ‹ซแŒแˆซแˆ แ‰  แ‹จแŠแˆแˆ™. แŠฅแ‹šแ‹ซแˆ แˆ›แŒแŠ˜แ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰ แˆ™แˆ‰ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แ‹แˆญแ‹แˆญ.

แˆˆแˆแˆณแˆŒแฃ kgpooyamlall แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แŠจแ‰ตแŠฅแ‹›แ‹™ แŒ‹แˆญ แŠฅแŠฉแˆ แАแ‹แข kubectl get pods -o yaml --all-namespaces.

แ‹จแŠ แˆ›แˆซแŒฎแ‰ฝ แŠ แŠ•แŒปแˆซแ‹Š แ‰…แ‹ฐแˆ แ‰ฐแŠจแ‰ฐแˆ แŠ แˆตแˆแˆ‹แŒŠ แŠ แ‹ญแ‹ฐแˆˆแˆ: แ‰ตแ‹•แ‹›แ‹ kgpooyamlall แŠจแ‰ตแŠฅแ‹›แ‹™ แŒ‹แˆญ แŠฅแŠฉแˆ แАแ‹ kgpoalloyaml.

แˆแˆ‰แŠ•แˆ แŠ แŠซแˆ‹แ‰ต แŠฅแŠ•แ‹ฐ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆ˜แŒ แ‰€แˆ แ‹จแˆˆแ‰ฅแ‹Žแ‰ตแˆแข แˆˆแˆแˆณแˆŒ k, kg, klo, ksys, kgpo แŠฅแŠ•แ‹ฒแˆแˆ แˆ˜แŒ แ‰€แˆ แ‹ญแ‰ปแˆ‹แˆ. แ‰ แ‰ฐแŒจแˆ›แˆชแˆ แฃ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝแŠ• แŠฅแŠ“ แˆ˜แ‹ฐแ‰ แŠ› แ‰ตแ‹•แ‹›แ‹žแ‰ฝแŠ• แ‹ˆแ‹ญแˆ แŠ แˆ›แˆซแŒฎแ‰ฝแŠ• แ‰ แ‰ตแŠฅแ‹›แ‹ แˆ˜แˆตแˆ˜แˆญ แˆ‹แ‹ญ แˆ›แ‹‹แˆƒแ‹ต แ‹ญแ‰ฝแˆ‹แˆ‰-

แˆˆแˆแˆณแˆŒ:

  1. แ‹ญแˆแ‰แŠ• แกแก kubectl proxy แˆ˜แŒปแ แ‰ตแ‰ฝแˆ‹แˆˆแˆ… k proxy.
  2. แ‹ญแˆแ‰แŠ• แกแก kubectl get roles แˆ˜แŒปแ แ‰ตแ‰ฝแˆ‹แˆˆแˆ… kg roles (แ‰ แŠ แˆแŠ‘ แŒŠแ‹œ แˆˆแˆฎแˆแˆต แˆแŠ•แŒญ แˆแŠ•แˆ แ‰…แŒฝแˆ แˆตแˆ แ‹จแˆˆแˆ)แข
  3. แˆˆแŠ แŠ•แ‹ต แ‹จแ‰ฐแ‹ˆแˆฐแА แ–แ‹ต แ‹แˆ‚แ‰ฅ แˆˆแˆ›แŒแŠ˜แ‰ต แ‰ตแ‹•แ‹›แ‹™แŠ• แˆ˜แŒ แ‰€แˆ แ‹ญแ‰ฝแˆ‹แˆ‰แข kgpo my-pod โ€” kubectl get pod my-pod.

แŠฅแ‰ฃแŠญแ‹Ž แŠ แŠ•แ‹ณแŠ•แ‹ต แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แ‹จแ‰ตแ‹•แ‹›แ‹ แˆ˜แˆตแˆ˜แˆญ แˆ˜แŠจแˆซแŠจแˆชแ‹ซ แ‹ซแˆตแˆแˆแŒ‹แ‰ธแ‹‹แˆแข แˆˆแˆแˆณแˆŒ, แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ kgpol แˆ˜แŠ•แŒˆแ‹ถแ‰ฝแŠ• kubectl get pods -l. แŠ แˆ›แˆซแŒญ -l แŠญแˆญแŠญแˆญ แ‹ญแŒ แ‹ญแ‰ƒแˆ - แ‹จแˆ˜แˆˆแ‹ซ แ‹แˆญแ‹แˆญแข แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แŠจแ‰ฐแŒ แ‰€แˆ™ แ‹ญแˆ˜แˆตแˆ‹แˆ kgpol app=ui.

แŠ แŠ•แ‹ณแŠ•แ‹ต แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆ˜แŠจแˆซแŠจแˆชแ‹ซ แˆตแˆˆแˆšแ‹ซแˆตแˆแˆแŒ‹แ‰ธแ‹แฃ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ aแฃ f แŠฅแŠ“ l แ‰ แˆ˜แŒจแˆจแˆป แŒฅแ‰…แˆ แˆ‹แ‹ญ แˆ˜แ‹‹แˆ แŠ แˆˆแ‰ฃแ‰ธแ‹แข

แ‰ แŠ แŒ แ‰ƒแˆ‹แ‹ญแฃ แŠ แŠ•แ‹ด แ‹จแ‹šแˆ… แŠฅแ‰…แ‹ต แ‰ฐแŠ•แŒ แˆแŒฅแˆŽ แŠจแ‰ฐแŒˆแŠ˜แฃ แˆŠแˆแŒฝแˆ™แ‰ต แŠจแˆšแˆแˆแŒ‰แ‰ต แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แˆ‹แ‹ญ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝแŠ• แ‰ แˆ›แˆตแ‰ฐแ‹‹แˆ แˆ›แŒแŠ˜แ‰ต แŠฅแŠ“ แ‰ฅแ‹™ แ‹จแˆ˜แ‰ฐแ‹จแ‰ฅ แŒŠแ‹œแŠ• แˆ˜แ‰†แŒ แ‰ฅ แ‹ญแ‰ฝแˆ‹แˆ‰แข

แˆ˜แŒซแŠ•

kubectl-aliases แŠ• แˆˆแˆ˜แŒซแŠ• แ‹แ‹ญแˆ‰แŠ• แˆ›แ‹แˆจแ‹ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ .kubectl_aliases แŠจ GitHub แŠฅแŠ“ แ‰ แ‹แ‹ญแˆ‰ แ‹แˆตแŒฅ แ‹ซแŠซแ‰ตแ‰ฑ ~/.bashrc แ‹ˆแ‹ญแˆ ~/.zshrc:

source ~/.kubectl_aliases

แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰…

แ‰€แ‹ฐแˆ แ‰ฅแˆˆแŠ• แŠฅแŠ•แ‹ฐแ‰ฐแŠ“แŒˆแˆญแАแ‹ แ‰ แ‰ตแŠฅแ‹›แ‹ แˆ˜แˆตแˆ˜แˆญ แˆ‹แ‹ญ แ‰ฐแŒจแˆ›แˆช แ‰ƒแˆ‹แ‰ตแŠ• แ‹ˆแ‹ฐ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แ‰ตแŒจแˆแˆซแˆˆแˆ…แข แˆˆแˆแˆณแˆŒ:

$ kgpooyaml test-pod-d4b77b989

แ‹จ kubectl แ‰ตแ‹•แ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซแŠ• แŠจแ‰ฐแŒ แ‰€แˆ™แฃ แŠฅแŠ•แ‹ฐ แ‹จแŠ•แ‰ฅแˆจแ‰ต แˆตแˆžแ‰ฝ แˆ‹แˆ‰ แАแŒˆแˆฎแ‰ฝ แˆซแˆต-แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซแŠ• แ‰ฐแŒ แ‰…แˆ˜แˆ… แ‹ญแˆ†แŠ“แˆแข แŒแŠ• แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆฒแŒ แ‰€แˆ™ แ‹ญแˆ…แŠ•แŠ• แˆ›แ‹ตแˆจแŒ แ‹ญแ‰ปแˆ‹แˆ?

แ‹ญแˆ… แ‰ แŒฃแˆ แŠ แˆตแˆแˆ‹แŒŠ แŒฅแ‹ซแ‰„ แАแ‹ แˆแŠญแŠ•แ‹ซแ‰ฑแˆ แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰… แŠซแˆแˆฐแˆซ, แŠ แŠ•แ‹ณแŠ•แ‹ต แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝแŠ• แŒฅแ‰…แˆžแ‰ฝ แ‹ซแŒฃแˆ‰.

แˆ˜แˆแˆฑ แ‹จแ‰ตแŠ›แ‹แŠ• แˆผแˆ แŠฅแŠ•แ‹ฐแˆšแŒ แ‰€แˆ™ แ‹ญแ‹ˆแˆฐแŠ“แˆแก-

  1. แˆˆ Zshแฃ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆ›แŒ แŠ“แ‰€แ‰… แŠจแˆณแŒฅแŠ‘ แ‹แŒญ แ‹ญแˆฐแˆซแˆแข
  2. แˆˆ Bashแฃ แ‰ แˆšแ‹ซแˆณแ‹แŠ• แˆแŠ”แ‰ณแฃ แ‹ˆแ‹ฐ แˆฅแˆซ แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆˆแˆ›แŒแŠ˜แ‰ต แŠ แŠ•แ‹ณแŠ•แ‹ต แˆฅแˆซ แ‹ซแˆตแˆแˆแŒ‹แˆแข

แ‰ แ‰ฃแˆฝ แ‹แˆตแŒฅ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝแŠ• แ‰ แˆซแˆต แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แˆ›แŠ•แ‰ƒแ‰ต

แ‹จแ‰ฃแˆฝ แ‰ฝแŒแˆญ แŒแŠ• แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ (Tb แŠ• แ‰ แ‰ฐแŒซแŠ‘ แ‰แŒฅแˆญ) แˆˆแˆ›แŒ แŠ“แ‰€แ‰… แˆ˜แˆžแŠจแˆฉ แАแ‹ แŠฅแŠ•แŒ‚ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แ‹จแˆšแ‹ซแˆ˜แˆˆแŠญแ‰ฐแ‹แŠ• แ‰ตแ‹•แ‹›แ‹ แŠ แ‹ญแ‹ฐแˆˆแˆ (แˆˆแˆแˆณแˆŒ Zsh แŠฅแŠ•แ‹ฐแˆšแ‹ซแ‹ฐแˆญแŒˆแ‹)แข แˆˆแˆแˆ‰แˆ 800 แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แ‹จแˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆตแŠญแˆชแ•แ‰ถแ‰ฝ แˆตแˆˆแˆŒแˆ‰แฃ แˆซแˆต-แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แŠ แ‹ญแˆฐแˆซแˆแข

แ•แˆฎแŒ€แŠญแ‰ฑ แˆ™แˆ‰-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆˆแ‹šแˆ… แ‰ฝแŒแˆญ แŠ แŒ แ‰ƒแˆ‹แ‹ญ แˆ˜แแ‰ตแˆ„ แ‹ญแˆฐแŒฃแˆ. แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝแŠ• แŠจแˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แ‹˜แ‹ด แŒ‹แˆญ แ‹ญแŒˆแŠ“แŠ›แˆแฃ แ‰ แ‹แˆตแŒฅ แ‰ แŠฉแˆ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆแŠ• แ‹ˆแ‹ฐ แ‰ตแ‹•แ‹›แ‹ แ‹ซแˆฐแ‹แˆ แŠฅแŠ“ แˆˆแ‰ฐแŒ แŠ“แ‰€แ‰€แ‹ แ‰ตแ‹•แ‹›แ‹ แ‹จแˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แŠ แˆ›แˆซแŒฎแ‰ฝแŠ• แ‹ญแˆ˜แˆแˆณแˆแข แ‹ญแˆ… แˆ›แˆˆแ‰ต แˆˆแ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แ‹ซแˆˆแ‹ แŠ•แŒฃแ แˆแŠญ แŠฅแŠ•แ‹ฐ แˆ™แˆ‰ แ‰ตแ‹•แ‹›แ‹ แ‰ฐแˆ˜แˆณแˆณแ‹ญ แАแ‹ แˆ›แˆˆแ‰ต แАแ‹แข

แ‰ แˆšแŠจแ‰ฐแˆˆแ‹ แ‹แˆตแŒฅ แ‰ แˆ˜แŒ€แˆ˜แˆชแ‹ซ แแแˆ-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแŒญแŠ• แŠฅแŠ“ แ‰ แˆ˜แ‰€แŒ แˆ แŠฅแŠ•แ‹ดแ‰ต แˆ›แ‹‹แ‰€แˆญ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ แˆˆแˆแˆ‰แˆ แ‹จ kubectl แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แŠฅแŒˆแˆแŒปแˆˆแˆแข

แˆ™แˆ‰-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆ˜แŒซแŠ•

แ‰ แˆ˜แŒ€แˆ˜แˆชแ‹ซ แ‹ฐแˆจแŒƒ, แˆ™แˆ‰-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แ‹ญแ‹ˆแˆฐแŠ“แˆ แ‰ฃแˆฝ แˆ›แŒ แŠ“แ‰€แ‰…แˆตแˆˆแ‹šแˆ…แฃ แˆ™แˆ‰ แ‰…แŒฝแˆ แˆตแˆžแ‰ฝแŠ• แŠจแˆ˜แŒซแŠ•แ‹Ž แ‰ แŠแ‰ตแฃ แ‹จ bash-completion แˆ˜แŒซแŠ‘แŠ• แˆ›แˆจแŒ‹แŒˆแŒฅ แŠ แˆˆแ‰ฅแ‹Žแ‰ตแข แ‹จแˆ˜แŒซแŠ› แˆ˜แˆ˜แˆชแ‹ซแ‹Žแ‰ฝ แ‰€แ‹ฐแˆ แ‰ฅแˆˆแ‹ แˆˆ Linux แŠฅแŠ“ แˆ›แŠญแŠฆแŠคแˆตแข

แŒ แ‰ƒแˆš แˆ›แˆตแ‰ณแ‹ˆแˆป แˆˆ MacOS แ‰ฐแŒ แ‰ƒแˆšแ‹Žแ‰ฝ: แˆแŠญ แŠฅแŠ•แ‹ฐ kubectl แˆซแˆต-แˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แˆตแŠญแˆชแ•แ‰ต แฃ แˆ™แˆ‰-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แŠจ Bash 3.2 แŒ‹แˆญ แŠ แ‹ญแˆฐแˆซแˆ แฃ แ‹ญแˆ…แˆ แ‰  MacOS แˆ‹แ‹ญ แ‹ซแˆˆแ‹ แАแ‰ฃแˆช แАแ‹แข แ‰ แ‰ฐแˆˆแ‹ญแˆ แˆ™แˆ‰-แ‰ฐแˆˆแ‹‹แ‹‹แŒญ แ‰  bash-completion v2 แˆ‹แ‹ญ แ‹ญแ‹ˆแˆฐแŠ“แˆ (brew install bash-completion@2) แ‰ขแ‹ซแŠ•แˆต แ‰ฃแˆฝ 4.1 แ‹ซแˆตแˆแˆแŒˆแ‹‹แˆแข แ‹ญแˆ… แˆ›แˆˆแ‰ต แ‰  MacOS แˆ‹แ‹ญ แˆ™แˆ‰-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆˆแˆ˜แŒ แ‰€แˆ แŠ แ‹ฒแˆต แ‹จแ‰ฃแˆฝ แˆตแˆชแ‰ต แˆ˜แŒซแŠ• แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆแข

แˆตแŠญแˆชแ•แ‰ฑแŠ• แˆ›แ‹แˆจแ‹ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ แ‰ฃแˆฝ_แˆ›แŒ แŠ“แ‰€แ‰….sh แŠจ GitHub แˆ›แŠจแˆ›แ‰ป แŠฅแŠ“ แ‰ แ‹แ‹ญแˆแ‹Ž แ‹แˆตแŒฅ แ‹ซแŠซแ‰ตแ‰ฑแ‰ต ~/.bashrc:

source ~/bash_completion.sh

แ‰…แˆญแŠแ‰ฑแŠ• แŠฅแŠ•แ‹ฐแŒˆแŠ“ แŠซแˆตแАแˆณ แ‰ แŠ‹แˆ‹, แˆ™แˆ‰-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆ™แˆ‰ แ‰ แˆ™แˆ‰ แ‹ญแŒซแŠ“แˆ.

แˆˆ kubectl แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แˆซแˆต-แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แˆ›แŠ•แ‰ƒแ‰ต

แ‰ แ‰ดแŠญแŠ’แŠซแˆ แ‹จแ‰ฐแˆŸแˆ‹-แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แ‹จแˆ˜แŒ แ‰…แˆˆแ‹ซ แ‰ฐแŒแ‰ฃแˆญแŠ• แ‹ญแˆฐแŒฃแˆ _complete_alias. แ‹ญแˆ… แ‰ฐแŒแ‰ฃแˆญ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆแŠ• แ‹ญแˆแ‰ตแˆปแˆ แŠฅแŠ“ แˆˆแ‰ฐแˆˆแ‹‹แŒญ แ‰ตแ‹•แ‹›แ‹ แ‹จแˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แแŠ•แŒฎแ‰ฝแŠ• แ‹ญแˆ˜แˆแˆณแˆแข

แŠ แŠ•แ‹ตแŠ• แ‰ฐแŒแ‰ฃแˆญ แŠจแŠ แŠ•แ‹ต แ‹จแ‰ฐแ‹ˆแˆฐแА แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แŒ‹แˆญ แˆˆแˆ›แ‹ซแ‹ซแ‹ แŠ แ‰ฅแˆฎ แ‹จแ‰ฐแˆฐแˆซแ‹แŠ• แ‹จ Bash แ‹˜แ‹ดแŠ• แˆ˜แŒ แ‰€แˆ แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ แ‰ฐแŒ แŠ“แ‰€แ‰€, แˆˆแˆ˜แŒซแŠ• _complete_alias แŠฅแŠ•แ‹ฐ แ‰ฐแˆˆแ‹‹แŒญ แˆ›แŒ แŠ“แ‰€แ‰… แ‰ฐแŒแ‰ฃแˆญ.

แŠฅแŠ•แ‹ฐ แˆแˆณแˆŒแฃ แ‹จ kubectl แ‰ตแ‹•แ‹›แ‹แŠ• แ‹จแˆšแ‹ซแˆ˜แˆˆแŠญแ‰ฐแ‹แŠ• แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แŠฅแŠ•แ‹แˆฐแ‹ตแข แˆˆแˆ˜แŒซแŠ• _complete_alias แˆˆแ‹šแˆ… แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆ›แˆŸแ‹ซ แ‰ฐแŒแ‰ฃแˆญแฃ แ‹จแˆšแŠจแ‰ฐแˆˆแ‹แŠ• แ‰ตแ‹•แ‹›แ‹ แˆ›แˆตแŠฌแ‹ต แŠ แˆˆแ‰ฆแ‰ตแข

$ complete -F _complete_alias k

แ‹จแ‹šแˆ… แ‹แŒคแ‰ต แ‹ฐแŒแˆž แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ k แ‰ แˆซแˆต-แˆฐแˆญ แˆฒแ‹ซแŒ แŠ“แ‰…แ‰ แ‰ฐแŒแ‰ฃแˆฉ แ‹ญแ‰ฃแˆ‹แˆ _complete_alias, แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แ‹จแˆšแˆแ‰ตแˆฝ แŠฅแŠ“ แˆˆแ‰ตแŠฅแ‹›แ‹™ แ‹จแˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แแŠ•แŒฎแ‰ฝแŠ• แ‹ญแˆ˜แˆแˆณแˆ kubectl.

แŠฅแŠ•แ‹ฐ แˆแˆˆแ‰ฐแŠ› แˆแˆณแˆŒแฃ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แŠฅแŠ•แ‹แˆฐแ‹ต kgแ‹จแˆšแ‹ซแˆ˜แˆˆแŠญแ‰ฐแ‹ kubectl get:

$ complete -F _complete_alias kg

แˆแŠญ แ‰ฃแˆˆแˆแ‹ แˆแˆณแˆŒ แˆ‹แ‹ญแฃ แŠชแˆŽ แŒแˆซแˆ แ‰ แˆซแˆต-แˆฐแˆญ แˆฒแ‹ซแŒ แŠ“แ‰…แ‰แฃ แŠฅแˆญแˆตแ‹Ž แ‹จแˆšแ‹ซแŒˆแŠ™แ‰ตแŠ• แ‰ฐแˆ˜แˆณแˆณแ‹ญ แ‹จแˆ›แŒ แŠ“แ‰€แ‰‚แ‹ซ แแŠ•แŒญ แ‹ซแŒˆแŠ›แˆ‰แข kubectl get.

แ‰ แˆตแˆญแ‹“แ‰ตแ‹Ž แˆ‹แ‹ญ แˆ‹แˆˆ แˆˆแˆ›แŠ•แŠ›แ‹แˆ แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆ แˆ™แˆ‰ แˆตแˆ แˆ˜แŒ แ‰€แˆ แŠฅแŠ•แ‹ฐแˆšแ‰ฝแˆ‰ แˆแ‰ฅ แ‹ญแ‰ แˆ‰แข

แˆตแˆˆแ‹šแˆ… แˆˆแˆแˆ‰แˆ แ‹จ kubectl แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แˆˆแˆ›แŠ•แ‰ƒแ‰ต แˆˆแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ณแ‰ธแ‹ แŠจแˆ‹แ‹ญ แ‹ซแˆˆแ‹แŠ• แ‰ตแ‹•แ‹›แ‹ แˆ›แˆตแŠฌแ‹ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆแข แ‹จ kubectl-aliases แŠฅแˆตแŠซแ‹˜แŒ‹แŒ แ‹ตแˆจแˆต แ‹จแˆšแŠจแ‰ฐแˆˆแ‹ แ‰…แŠ•แŒฃแ‰ข แ‰ แ‰ตแŠญแŠญแˆ แ‹ญแˆฐแˆซแˆ ~/.kubectl-aliases:

for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases); 
do
  complete -F _complete_alias "$_a"
done

แ‹ญแˆ… แŠฎแ‹ต แ‰ แŠฅแˆญแˆตแ‹Ž แ‹แˆตแŒฅ แˆ˜แ‰€แˆ˜แŒฅ แŠ แˆˆแ‰ แ‰ตแข ~/.bashrc, แ‰ตแ‹•แ‹›แ‹™แŠ• แŠฅแŠ•แ‹ฐแŒˆแŠ“ แ‹ซแˆตแŒ€แˆแˆฉแ‰ต แˆผแˆ แŠฅแŠ“ แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แˆ›แŒ แŠ“แ‰€แ‰… แˆˆแˆแˆ‰แˆ 800 kubectl แ‰ฐแˆˆแ‹‹แŒญ แˆตแˆžแ‰ฝ แ‹จแˆšแŒˆแŠ แ‹ญแˆ†แŠ“แˆแข

6. kubectl แŠจแ•แˆˆแŒŠแŠ–แ‰ฝ แŒ‹แˆญ แˆ›แˆซแ‹˜แˆ

แ‰ แˆ˜แŒ€แˆ˜แˆญ แˆ‹แ‹ญ แˆตแˆชแ‰ต 1.12, kubectl แ‹ญแ‹ฐแŒแ‹แˆ แ‰ฐแˆฐแŠช แ‹˜แ‹ด, แ‹ญแˆ…แˆ แ‰ฐแŒแ‰ฃแˆฉแŠ• แŠจแ‰ฐแŒจแˆ›แˆช แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แŒ‹แˆญ แˆˆแˆ›แˆตแ‹แ‰ต แ‹ซแˆตแ‰ฝแˆแ‹Žแ‰ณแˆ.

แŠฅแˆญแˆตแ‹Ž แ‹จแˆšแ‹ซแ‹แ‰แ‰ต แŠจแˆ†แА แ‹จแŒ‚แ‰ต แ‰ฐแˆฐแŠช แˆตแˆแ‰ถแ‰ฝ, แŠจแ‹šแ‹ซ แ‹จ kubectl แ•แˆˆแŒŠแŠ–แ‰ฝ แ‰ แ‰ฐแˆ˜แˆณแˆณแ‹ญ แˆ˜แˆญแˆ… แˆ‹แ‹ญ แ‹จแ‰ฐแŒˆแАแ‰ก แŠ“แ‰ธแ‹.

แ‰ แ‹šแˆ… แˆแŠฅแˆซแ แ‹แˆตแŒฅ แ•แˆˆแŒŠแŠ• แŠฅแŠ•แ‹ดแ‰ต แŠฅแŠ•แ‹ฐแˆšแŒซแŠ‘แฃ แ‹จแ‰ต แŠฅแŠ•แ‹ฐแˆšแŒˆแŠ™ แŠฅแŠ“ แ‹จแŠฅแˆซแˆตแ‹ŽแŠ• แ•แˆˆแŒŠแŠ• แŠฅแŠ•แ‹ดแ‰ต แˆ˜แแŒ แˆญ แŠฅแŠ•แ‹ฐแˆšแ‰ฝแˆ‰ แŠฅแŠ•แŒˆแˆแƒแˆˆแŠ•แข

แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แ‰ แˆ˜แŒซแŠ• แˆ‹แ‹ญ

แ‹จ Kubectl แ•แˆˆแŒŠแŠ–แ‰ฝ แŠจแˆตแˆ™ แŒ‹แˆญ แŠฅแŠ•แ‹ฐ แ‰€แˆ‹แˆ แˆŠแ‰ฐแŒˆแ‰ แˆฉ แ‹จแˆšแ‰ฝแˆ‰ แ‹แ‹ญแˆŽแ‰ฝ แ‹ญแˆฐแˆซแŒซแˆ‰แข kubectl-x. แ‰…แ‹ตแˆ˜ แ‰…แŒฅแ‹ซ kubectl- แ‹ซแˆตแˆแˆแŒ‹แˆแฃ แŠจแ‹šแ‹ซ แ‰ แŠ‹แˆ‹ แ‰ฐแˆฐแŠชแ‹แŠ• แŠฅแŠ•แ‹ฒแ‹ฐแ‹แˆ‰ แ‹จแˆšแ‹ซแˆตแ‰ฝแˆแ‹Ž แŠ แ‹ฒแˆต แ‹จ kubectl แŠ•แ‹‘แˆต แ‰ตแ‹•แ‹›แ‹แข

แˆˆแˆแˆณแˆŒ แ‹จแˆ„แˆŽ แ•แˆˆแŒŠแŠ• แ‰ แ‰ฐแŒ แˆซ แ‹แ‹ญแˆ แ‹ญแˆฐแˆซแŒซแˆแข kubectl-hello.

แ‰ฐแˆฐแŠชแ‹แŠ• แˆˆแˆ˜แŒซแŠ•, แ‹แ‹ญแˆ‰แŠ• แˆ˜แ‰…แ‹ณแ‰ต แ‹ซแˆตแˆแˆแŒแ‹Žแ‰ณแˆ kubectl-x แ‰ แŠฅแˆญแˆตแ‹Ž PATH แ‹แˆตแŒฅ แ‹ˆแ‹ณแˆˆแ‹ แˆ›แŠ•แŠ›แ‹แˆ แˆ›แ‹แŒซ แŠฅแŠ“ แ‰ฐแˆแŒปแˆš แŠฅแŠ•แ‹ฒแˆ†แŠ• แ‹ซแ‹ตแˆญแŒ‰แ‰ตแฃ แˆˆแˆแˆณแˆŒ แ‰  chmod +x. แŠจแ‹šแˆ… แ‰ แŠ‹แˆ‹ แ‹ˆแ‹ฒแ‹ซแ‹แŠ‘ แ‹ˆแ‹ฐ แ•แˆˆแŒŠแŠ‘ แˆ˜แ‹ฐแ‹ˆแˆ แ‹ญแ‰ฝแˆ‹แˆ‰ kubectl x.

แŠ แˆแŠ• แ‰ แˆตแˆญแ‹“แ‰ตแ‹Ž แˆ‹แ‹ญ แ‹จแ‰ฐแŒซแŠ‘แ‰ตแŠ• แˆแˆ‰แŠ•แˆ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝ แˆˆแˆ˜แ‹˜แˆญแ‹˜แˆญ แ‹จแˆšแŠจแ‰ฐแˆˆแ‹แŠ• แ‰ตแ‹•แ‹›แ‹ แˆ˜แŒ แ‰€แˆ แ‹ญแ‰ฝแˆ‹แˆ‰แข

$ kubectl plugin list

แ‰ฐแˆ˜แˆณแˆณแ‹ญ แˆตแˆ แ‹ซแˆ‹แ‰ธแ‹ แ‰ฅแ‹™ แ•แˆˆแŒŠแŠ–แ‰ฝ แŠซแˆ‰แ‹Žแ‰ต แ‹ˆแ‹ญแˆ แˆŠแ‰ฐแŒˆแ‰ แˆญ แ‹จแˆ›แ‹ญแ‰ฝแˆ แ‹จแ•แˆˆแŒŠแŠ• แ‹แ‹ญแˆ แŠซแˆˆ แ‹ญแˆ… แ‰ตแŠฅแ‹›แ‹ แˆ›แˆตแŒ แŠ•แ‰€แ‰‚แ‹ซแ‹Žแ‰ฝแŠ• แ‹ซแˆณแ‹ซแˆแข

Krew แ‰ แˆ˜แŒ แ‰€แˆ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แˆ˜แˆแˆˆแŒ แŠฅแŠ“ แˆ˜แŒซแŠ•

Kubectl แ•แˆˆแŒŠแŠ–แ‰ฝ แŠฅแŠ•แ‹ฐ แˆถแแ‰ตแ‹Œแˆญ แ“แŠฌแŒ†แ‰ฝ แˆŠแŒ‹แˆฉ แ‹ˆแ‹ญแˆ แŠฅแŠ•แ‹ฐแŒˆแŠ“ แŒฅแ‰…แˆ แˆ‹แ‹ญ แˆŠแ‹แˆ‰ แ‹ญแ‰ฝแˆ‹แˆ‰แข แŒแŠ• แˆŒแˆŽแ‰ฝ แ‹ซแŒ‹แˆฏแ‰ธแ‹แŠ• แ‰ฐแˆฐแŠชแ‹Žแ‰ฝ แ‹จแ‰ต แˆ›แŒแŠ˜แ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰?

แ•แˆฎแŒ€แŠญแ‰ต Krew แ‹จ kubectl แ•แˆˆแŒŠแŠ–แ‰ฝแŠ• แˆˆแˆ›แŒ‹แˆซแ‰ตแฃ แˆˆแˆ˜แˆแˆˆแŒแฃ แˆˆแˆ˜แŒซแŠ• แŠฅแŠ“ แˆˆแˆ›แˆตแ‰ฐแ‹ณแ‹ฐแˆญ แŠ แŠ•แ‹ต แ‹ˆแŒฅ แˆ˜แแ‰ตแˆ„ แˆˆแˆ˜แˆตแŒ แ‰ต แ‹ซแˆˆแˆ˜ แАแ‹แข แ•แˆฎแŒ€แŠญแ‰ฑ แŠฅแˆซแˆฑแŠ• "แ‹จแ“แŠฌแŒ… แŠ แˆตแ‰ฐแ‹ณแ‹ณแˆช แˆˆ kubectl แ•แˆˆแŒŠแŠ–แ‰ฝ" แ‰ฅแˆŽ แ‹ญแŒ แˆซแˆ (Krew แ‰ฐแˆ˜แˆณแˆณแ‹ญ แАแ‹ แˆ˜แŒฅแˆ˜แ‰…).

Krew แŠฅแˆญแˆตแ‹Ž แˆ˜แˆแˆจแŒฅ แŠฅแŠ“ แˆ˜แŒซแŠ• แ‹จแˆšแ‰ฝแˆ‰แ‰ต แ‹จ kubectl แ‰ฐแˆฐแŠชแ‹Žแ‰ฝ แ‹แˆญแ‹แˆญ แАแ‹แข แ‰ แ‰ฐแˆ˜แˆณแˆณแ‹ญ แŒŠแ‹œ Krew แ‹จ kubectl แ‰ฐแˆฐแŠช แАแ‹แข

แ‹ญแˆ… แˆ›แˆˆแ‰ต Krew แŠ• แˆ˜แŒซแŠ• แŠฅแŠ•แ‹ฐ แˆ›แŠ•แŠ›แ‹แˆ แˆŒแˆ‹ แ‹จ kubectl แ•แˆˆแŒŠแŠ• แˆ˜แŒซแŠ• แ‹ญแˆฐแˆซแˆ แˆ›แˆˆแ‰ต แАแ‹แข แ‹แˆญแ‹แˆญ แˆ˜แˆ˜แˆชแ‹ซแ‹Žแ‰ฝแŠ• แ‰  แˆ‹แ‹ญ แˆ›แŒแŠ˜แ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰แข GitHub แŒˆแŒฝ.

แ‰ แŒฃแˆ แŠ แˆตแˆแˆ‹แŒŠแ‹Žแ‰น แ‹จ Krew แ‰ตแ‹•แ‹›แ‹žแ‰ฝ แ‹จแˆšแŠจแ‰ฐแˆ‰แ‰ต แŠ“แ‰ธแ‹

# ะŸะพะธัะบ ะฒ ัะฟะธัะบะต ะฟะปะฐะณะธะฝะพะฒ
$ kubectl krew search [<query>]
# ะŸะพัะผะพั‚ั€ะตั‚ัŒ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ ะฟะปะฐะณะธะฝะต
$ kubectl krew info <plugin>
# ะฃัั‚ะฐะฝะพะฒะธั‚ัŒ ะฟะปะฐะณะธะฝ
$ kubectl krew install <plugin>
# ะžะฑะฝะพะฒะธั‚ัŒ ะฒัะต ะฟะปะฐะณะธะฝั‹ ะดะพ ะฟะพัะปะตะดะฝะตะน ะฒะตั€ัะธะธ
$ kubectl krew upgrade
# ะŸะพัะผะพั‚ั€ะตั‚ัŒ ะฒัะต ะฟะปะฐะณะธะฝั‹, ัƒัั‚ะฐะฝะพะฒะปะตะฝะฝั‹ะต ั‡ะตั€ะตะท Krew
$ kubectl krew list
# ะ”ะตะธะฝัั‚ะฐะปะปะธั€ะพะฒะฐั‚ัŒ ะฟะปะฐะณะธะฝ
$ kubectl krew remove <plugin>

แŠฅแ‰ฃแŠญแ‹ŽแŠ• Krew แŠ• แ‰ แˆ˜แŒ แ‰€แˆ แ•แˆˆแŒŠแŠ–แ‰ฝแŠ• แˆ˜แŒซแŠ• แŠจแˆ‹แ‹ญ แ‹จแ‰ฐแŒˆแˆˆแŒธแ‹แŠ• แˆ˜แ‹ฐแ‰ แŠ› แ‹˜แ‹ด แ‰ แˆ˜แŒ แ‰€แˆ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แˆ˜แŒซแŠ• แˆ‹แ‹ญ แŒฃแˆแ‰ƒ แŠฅแŠ•แ‹ฐแˆ›แ‹ญแŒˆแ‰ฃ แˆแ‰ฅ แ‹ญแ‰ แˆ‰แข

แŠฅแ‰ฃแŠญแ‹ŽแŠ• แ‰ตแ‹•แ‹›แ‹™แŠ• แ‹ซแˆตแ‰ฐแ‹แˆ‰ kubectl krew list Krew แŠ• แ‰ แˆ˜แŒ แ‰€แˆ แ‹จแ‰ฐแŒซแŠ‘ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แ‰ฅแ‰ป แ‹ซแˆณแ‹ซแˆ แฃ แŒแŠ• แ‰ตแ‹•แ‹›แ‹™ kubectl plugin list แˆแˆ‰แŠ•แˆ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝ แ‹ญแ‹˜แˆจแ‹แˆซแˆแฃ แˆ›แˆˆแ‰ตแˆแฃ Krew แ‰ แˆ˜แŒ แ‰€แˆ แ‹จแ‰ฐแŒซแŠ‘ แŠฅแŠ“ แ‰ แˆŒแˆŽแ‰ฝ แ‹˜แ‹ดแ‹Žแ‰ฝ แ‹จแ‰ฐแŒซแŠ‘แ‰ตแข

แ‰ แˆŒแˆ‹ แ‰ฆแ‰ณ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แ‰ แˆ›แŒแŠ˜แ‰ต แˆ‹แ‹ญ

Krew แ‹ˆแŒฃแ‰ต แ•แˆฎแŒ€แŠญแ‰ต แАแ‹, แ‰ แŠ แˆแŠ‘ แŒŠแ‹œ แ‰ แ‹แˆตแŒก แ‹แˆญแ‹แˆญ แ‹ˆแ‹ฐ 30 แ•แˆˆแŒŠแŠ–แ‰ฝ แ‰ฅแ‰ปแข แ‹จแˆšแˆแˆแŒ‰แ‰ตแŠ• แˆ›แŒแŠ˜แ‰ต แŠซแˆแ‰ปแˆ‰ แŠฅแŠ•แ‹ฐ GitHub แ‹ซแˆ‰ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แˆŒแˆ‹ แ‰ฆแ‰ณ แˆ›แŒแŠ˜แ‰ต แ‹ญแ‰ฝแˆ‹แˆ‰แข

แ‹จ GitHub แŠญแแˆแŠ• แŠฅแŠ•แ‹ฒแˆ˜แˆˆแŠจแ‰ฑ แŠฅแˆ˜แŠญแˆซแˆˆแˆ kubectl-plugins. แŠฅแ‹šแ‹ซ แˆŠแˆ˜แˆจแˆ˜แˆฉ แ‹จแˆšแŒˆแ‰ฃแ‰ธแ‹ แ‰ แ‹ฐแˆญแ‹˜แŠ• แ‹จแˆšแ‰†แŒ แˆฉ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แ‹ซแŒˆแŠ›แˆ‰แข

แ‹จแˆซแˆตแ‹ŽแŠ• แ‰ฐแˆฐแŠชแ‹Žแ‰ฝ แ‰ แˆ˜แŒปแ แˆ‹แ‹ญ

แŠ แŠ•แ‰ฐ แˆซแˆตแˆ… แ‰ตแ‰ฝแˆ‹แˆˆแˆ… แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แ‹ญแแŒ แˆฉ - แŠจแ‰ฃแ‹ต แŠ แ‹ญแ‹ฐแˆˆแˆ. แ‹จแˆšแ‹ซแˆตแˆแˆแŒˆแ‹Žแ‰ตแŠ• แ‹จแˆšแˆแŒฝแˆ แŠ แˆตแˆแƒแˆš แˆ˜แแŒ แˆญ แŠ แˆˆแ‰ฆแ‰ต, แŠฅแŠ•แ‹ฐ แˆตแˆ™ kubectl-x แŠฅแŠ“ แŠจแˆ‹แ‹ญ แŠฅแŠ•แ‹ฐแ‰ฐแŒˆแˆˆแ€แ‹ แ‹ญแŒซแŠ‘.

แ‹แ‹ญแˆ‰ แ‹จแ‰ฃแˆฝ แˆตแŠญแˆชแ•แ‰ตแฃ แ‹จแ“แ‹ญแ‰ถแŠ• แˆตแŠญแˆชแ•แ‰ต แ‹ˆแ‹ญแˆ แ‹จแ‰ฐแŒ แŠ“แ‰€แˆจ แ‹จGO แˆ˜แ‰ฐแŒแ‰ แˆชแ‹ซ แˆŠแˆ†แŠ• แ‹ญแ‰ฝแˆ‹แˆ - แˆแŠ•แˆ แŠ แ‹ญแ‹ฐแˆˆแˆแข แ‰ฅแ‰ธแŠ›แ‹ แˆแŠ”แ‰ณ แ‰ แˆตแˆญแ‹“แ‰ฐ แŠญแ‹ˆแŠ“แ‹ แ‹แˆตแŒฅ แ‰ แ‰€แŒฅแ‰ณ แˆŠแ‰ฐแŒˆแ‰ แˆญ แ‹ญแ‰ฝแˆ‹แˆ.

แŠ แˆแŠ• แŠ แŠ•แ‹ต แˆแˆณแˆŒ แ‰ฐแˆฐแŠช แŠฅแŠ•แแŒ แˆญแข แ‰ แ‰€แ‹ฐแˆ˜แ‹ แŠญแแˆ แ‹จ kubectl แ‰ตแŠฅแ‹›แ‹แŠ• แ‰ฐแŒ แ‰…แˆ˜แˆ… แ‹จแŠฅแ‹ซแŠ•แ‹ณแŠ•แ‹ณแ‰ธแ‹แŠ• แ‹จแ–แ‹ต แŠฅแ‰ƒแ‹Žแ‰ฝ แˆˆแˆ˜แ‹˜แˆญแ‹˜แˆญ แАแ‹แข แ‹ญแˆ…แŠ•แŠ• แ‰ตแŠฅแ‹›แ‹ แ‹ˆแ‹ฐ แ‰ฐแˆฐแŠช แˆ˜แ‰€แ‹จแˆญ แ‰€แˆ‹แˆ แАแ‹ แˆˆแˆแˆณแˆŒแก kubectl img.

แ‹แ‹ญแˆ แ‹ญแแŒ แˆฉ kubectl-img แ‹จแˆšแŠจแ‰ฐแˆˆแ‹ แ‹ญแ‹˜แ‰ตแก-

#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'

แŠ แˆแŠ• แ‹แ‹ญแˆ‰แŠ• แ‰  แŒ‹แˆญ แŠฅแŠ•แ‹ฒแ‰ฐแŒˆแ‰ แˆญ แ‹ซแ‹ตแˆญแŒ‰แ‰ต chmod +x kubectl-img แŠฅแŠ“ แ‰ แŠฅแˆญแˆตแ‹Ž PATH แ‹แˆตแŒฅ แ‹ˆแ‹ณแˆˆแ‹ แˆ›แŠ•แŠ›แ‹แˆ แˆ›แ‹แŒซ แ‹ญแ‹แˆฐแ‹ฑแ‰ตแข แŠจแ‹šแˆ… แ‰ แŠ‹แˆ‹ แ‹ˆแ‹ฒแ‹ซแ‹แŠ‘ แ‰ฐแˆฐแŠชแ‹แŠ• แˆ˜แŒ แ‰€แˆ แ‹ญแ‰ฝแˆ‹แˆ‰ kubectl img.

แŠฅแŠ•แ‹ฐแ‰ฐแŒ แ‰€แˆฐแ‹ แ‹จ kubectl แ•แˆˆแŒŠแŠ–แ‰ฝ แ‰ แˆ›แŠ•แŠ›แ‹แˆ แ•แˆฎแŒแˆซแˆšแŠ•แŒ แ‹ˆแ‹ญแˆ แˆตแŠญแˆชแ•แ‰ต แ‰‹แŠ•แ‰‹ แˆŠแŒปแ‰ แ‹ญแ‰ฝแˆ‹แˆ‰แข แ‹จแˆผแˆ แˆตแŠญแˆชแ•แ‰ถแ‰ฝแŠ• แŠฅแ‹จแ‰ฐแŒ แ‰€แˆ™ แŠจแˆ†แА แŠจแ•แˆˆแŒŠแŠ‘ แ‹แˆตแŒฅ แ‹ˆแ‹ฐ kubectl แ‰ แ‰€แˆ‹แˆ‰ แˆ˜แ‹ฐแ‹ˆแˆ แˆ˜แ‰ปแˆ แ‹ซแˆˆแ‹ แŒฅแ‰…แˆแข แАแŒˆแˆญ แŒแŠ•แฃ แ‰ แˆ˜แŒ แ‰€แˆ แ‰ แŠฅแ‹แАแ‰ฐแŠ› แ•แˆฎแŒแˆซแˆšแŠ•แŒ แ‰‹แŠ•แ‰‹แ‹Žแ‰ฝ แ‹จแ‰ แˆˆแŒ  แ‹แˆตแ‰ฅแˆตแ‰ฅ แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแŠ• แˆ˜แƒแ แ‹ญแ‰ฝแˆ‹แˆ‰แข แ‹จแŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‹ฐแŠ•แ‰ แŠ› แ‰คแ‰ฐ-แˆ˜แŒฝแˆแแ‰ตแข. Go แŠฅแ‹จแ‰ฐแŒ แ‰€แˆ™ แŠจแˆ†แАแฃ แˆ˜แŒ แ‰€แˆแˆ แ‹ญแ‰ฝแˆ‹แˆ‰แข cli-แŠ แˆ‚แ‹ต แ‰คแ‰ฐ-แˆ˜แŒฝแˆแแ‰ตแ‰ แ‰ฐแˆˆแ‹ญ แ‹จ kubectl แ•แˆˆแŒŠแŠ–แ‰ฝแŠ• แˆˆแˆ˜แŒปแ แ‹จแˆšแŒˆแŠแข

แ‰ฐแˆฐแŠชแ‹Žแ‰ฝแ‹ŽแŠ• แŠฅแŠ•แ‹ดแ‰ต แˆ›แŒ‹แˆซแ‰ต แŠฅแŠ•แ‹ฐแˆšแ‰ฝแˆ‰

แ‹จแŠฅแˆญแˆตแ‹Ž แ‰ฐแˆฐแŠชแ‹Žแ‰ฝ แˆˆแˆŒแˆŽแ‰ฝ แŒ แ‰ƒแˆš แˆŠแˆ†แŠ‘ แ‹ญแ‰ฝแˆ‹แˆ‰ แ‰ฅแˆˆแ‹ แŠซแˆฐแ‰ก แ‰  GitHub แˆ‹แ‹ญ แˆˆแˆ›แŒ‹แˆซแ‰ต แАแƒแАแ‰ต แ‹ญแˆฐแˆ›แ‹Žแข แ‹ˆแ‹ฐ แˆญแ‹•แˆฑ แˆ›แŠจแˆแ‹ŽแŠ• แŠฅแˆญแŒแŒ แŠ› แ‹ญแˆแŠ‘ kubectl-plugins.

แŠฅแŠ•แ‹ฒแˆแˆ แ‰ฐแˆฐแŠชแ‹Ž แŠฅแŠ•แ‹ฒแ‰ณแŠจแˆ แˆ˜แŒ แ‹จแ‰… แ‹ญแ‰ฝแˆ‹แˆ‰แข Krew แ‹แˆญแ‹แˆญ. แ‹ญแˆ…แŠ•แŠ• แŠฅแŠ•แ‹ดแ‰ต แˆ›แ‹ตแˆจแŒ แŠฅแŠ•แ‹ฐแˆšแ‰ปแˆ แˆ˜แˆ˜แˆชแ‹ซแ‹Žแ‰ฝ แ‰  แ‹แˆตแŒฅ แŠ“แ‰ธแ‹แข GitHub แˆ›แŠจแˆ›แ‰ปแ‹Žแ‰ฝ.

แ‹จแ‰ตแŠฅแ‹›แ‹ แˆ›แŒ แŠ“แ‰€แ‰…

แ•แˆˆแŒŠแŠ–แ‰ฝ แ‰ แŠ แˆแŠ‘ แŒŠแ‹œ แˆซแˆต-แˆ›แŒ แŠ“แ‰€แ‰…แŠ• แŠ แ‹ญแ‹ฐแŒแ‰แˆแข แˆ›แˆˆแ‰ตแˆ แ‹จแ•แˆˆแŒŠแŠ‘แŠ• แˆ™แˆ‰ แˆตแˆ แŠฅแŠ“ แ‹จแŠญแˆญแŠญแˆฉแŠ• แˆ™แˆ‰ แˆตแˆ แˆ›แˆตแŒˆแ‰ฃแ‰ต แŠ แˆˆแ‰ฆแ‰ตแข

แ‹จแ‹šแˆ… แ‰ฐแŒแ‰ฃแˆญ GitHub kubectl แˆ›แŠจแˆ›แ‰ป แŠ แˆˆแ‹แข แŠญแแ‰ต แŒฅแ‹ซแ‰„. แˆตแˆˆแ‹šแˆ… แ‹ญแˆ… แ‰ฃแˆ…แˆช แ‹ˆแ‹ฐแŠแ‰ต แŠจแ‰ฐแ‹ˆแˆฐแА แŒŠแ‹œ แ‰ แŠ‹แˆ‹ แ‰ฐแŒแ‰ฃแˆซแ‹Š แˆŠแˆ†แŠ• แ‹ญแ‰ฝแˆ‹แˆแข

แˆ˜แˆแŠซแˆ แˆแŠžแ‰ต!!!

แ‰ แˆญแ‹•แˆฑ แˆ‹แ‹ญ แˆŒแˆ‹ แˆแŠ• แˆ›แŠ•แ‰ แ‰ฅ:

  1. แ‰  Kubernetes แ‹แˆตแŒฅ แˆถแˆตแ‰ต แ‹ฐแˆจแŒƒแ‹Žแ‰ฝ แŠ แ‹แ‰ถแˆ›แ‰ฒแŠญ แŠฅแŠ“ แŠฅแŠ•แ‹ดแ‰ต แŠฅแАแˆฑแŠ• แ‰ แ‰ฅแ‰ƒแ‰ต แŠฅแŠ•แ‹ฐแˆšแŒ แ‰€แˆ™แ‰ฃแ‰ธแ‹.
  2. แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‰ แˆตแˆญแ‰†แ‰ต แˆ˜แŠ•แˆแˆต แˆˆแ‰ตแŒแ‰ แˆซ แŠ แ‰ฅแАแ‰ต.
  3. แ‰ แ‰ดแˆŒแŒแˆซแˆ แŠฉแ‰ แˆญแŠ”แ‰ตแˆต แ‹™แˆชแ‹ซ แ‹จแŠ› แ‰ปแŠ“แˆ.

แˆแŠ•แŒญ: hab.com

แ‰ DDoS แŒฅแ‰ แ‰ƒแฃ VPS VDS แŠ แŒˆแˆแŒ‹แ‹ฎแ‰ฝ แˆˆแŒฃแ‰ขแ‹ซแ‹Žแ‰ฝ แŠ แˆตแ‰ฐแˆ›แˆ›แŠ แˆ›แˆตแ‰ฐแŠ“แŒˆแŒƒ แ‹ญแŒแ‹™ ๐Ÿ”ฅ แŠ แˆตแ‰ฐแˆ›แˆ›แŠ แ‹จแ‹ตแˆญ แŒฃแ‰ขแ‹ซ แˆ›แˆตแ‰ฐแŠ“แŒˆแŒƒ แ‰ แ‹ฒแ‹ถแŠคแˆต แŒฅแ‰ แ‰ƒแฃ แ‰ แ‰ชแ’แŠคแˆต แ‰ชแ‹ฒแŠคแˆต แŠ แŒˆแˆแŒ‹แ‹ฎแ‰ฝ แ‹ญแŒแ‹™ | ProHoster