āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ kubectl āϏāĻŽā§āĻ­āĻŦāϤ āφāĻĒāύāĻžāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦ⧇āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋāĨ¤ āφāϰ āϝāĻ–āύāχ āφāĻĒāύāĻŋ āϕ⧋āύ⧋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϟ⧁āϞ āύāĻŋāϝāĻŧ⧇ āĻ…āύ⧇āĻ• āϏāĻŽāϝāĻŧ āĻ•āĻžāϜ āĻ•āϰ⧇āύ, āϤāĻ–āύ āϏ⧇āϟāĻŋ āĻĒ⧁āĻ™ā§āĻ–āĻžāύ⧁āĻĒ⧁āĻ™ā§āĻ–āĻ­āĻžāĻŦ⧇ āĻļ⧇āĻ–āĻž āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻļ⧇āĻ–āĻžāϟāĻž āϜāϰ⧁āϰāĻŋāĨ¤

āĻŸā§€āĻŽ Mail.ru āĻĨ⧇āϕ⧇ Kubernetes aaS āφāĻŽāĻŋ āĻĄā§āϝāĻžāύāĻŋāϝāĻŧ⧇āϞ āĻ“āϝāĻŧ⧇āχāĻŦ⧇āϞ⧇āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŦāĻ¨ā§āϧ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰ⧇āĻ›āĻŋ, āϝ⧇āĻ–āĻžāύ⧇ kubectl-āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ āĻ•ā§ŒāĻļāϞ āĻ“ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āĻ—āĻ­ā§€āϰ āϧāĻžāϰāĻŖāĻž āĻĒ⧇āϤ⧇āĻ“ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻŦ⧇āĨ¤

āϞ⧇āĻ–āϕ⧇āϰ āĻŽāϤ⧇, āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧāϟāĻŋāϰ āϞāĻ•ā§āĻˇā§āϝ āĻšāϞ⧋ Kubernetes-āĻāϰ āϏāĻžāĻĨ⧇ āφāĻĒāύāĻžāϰ āĻĻ⧈āύāĻ¨ā§āĻĻāĻŋāύ āĻ•āĻžāϜāϕ⧇ āĻļ⧁āϧ⧁ āφāϰāĻ“ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāχ āύāϝāĻŧ, āĻŦāϰāĻ‚ āφāϰāĻ“ āφāύāĻ¨ā§āĻĻāĻĻāĻžāϝāĻŧāĻ• āĻ•āϰ⧇ āϤ⧋āϞāĻž!

āĻ­ā§‚āĻŽāĻŋāĻ•āĻž: kubectl āϕ⧀?

kubectl āφāϰāĻ“ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻļ⧇āĻ–āĻžāϰ āφāϗ⧇, āĻāϟāĻŋ āϕ⧀ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāĻĒāύāĻžāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āϧāĻžāϰāĻŖāĻž āĻĨāĻžāĻ•āĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤

āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĻ⧃āĻˇā§āϟāĻŋāϕ⧋āĻŖ āĻĨ⧇āϕ⧇, kubectl āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻĒā§āϝāĻžāύ⧇āϞ āϝāĻž āφāĻĒāύāĻžāϕ⧇ Kubernetes āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤

āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇ āĻŦāϞāϤ⧇ āϗ⧇āϞ⧇, kubectl āĻšāϞ⧋ āĻāĻ•āϟāĻŋ Kubernetes API āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĨ¤

āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻāĻĒāĻŋāφāχ āĻšāϞ⧋ āĻāĻ•āϟāĻŋ HTTP REST āĻāĻĒāĻŋāφāχāĨ¤ āĻāχ āĻāĻĒāĻŋāφāχ-āϟāĻŋāχ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ⧇āϰ āĻĒā§āϰāĻ•ā§ƒāϤ āχāωāϜāĻžāϰ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ, āϝāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāϟāĻŋāϕ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ⧋, āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ⧇āϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻāĻ•āϟāĻŋ āĻāĻĒāĻŋāφāχ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻāχ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āĻāĻ•āϟāĻŋ HTTP āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻĒāĻžāĻ āĻžāύ⧋āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϤāĻž āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤

āϏ⧁āϤāϰāĻžāĻ‚, kubectl-āĻāϰ āĻĒā§āϰāϧāĻžāύ āĻ•āĻžāϜ āĻšāϞ⧋ Kubernetes API-āϤ⧇ HTTP āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāύ⧋:

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϰāĻŋāϏ⧋āĻ°ā§āϏ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋, āĻāϟāĻŋ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻŦāϜāĻžāϝāĻŧ āϰāĻžāϖ⧇ āĻāĻŦāĻ‚ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻ…āĻĒāĻžāϰ⧇āĻļāύāχ CRUD āĻ…āĻĒāĻžāϰ⧇āĻļāύāĨ¤

āĻāχ āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻĒāύāĻŋ Kubernetes-āĻāϰ āωāĻĒāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āϰāĻžāϖ⧇āύ āĻāĻŦāĻ‚ āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞāĻŋāϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ Kubernetes āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇ āϝ⧇ āϕ⧀ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāχ āĻ•āĻžāϰāϪ⧇, Kubernetes API-āϕ⧇ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϟāĻžāχāĻĒ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āϏāĻžāϜāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āϚāϞ⧁āύ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āĻŋ.

āϧāϰāĻž āϝāĻžāĻ•, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ ReplicaSet āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϚāĻžāύāĨ¤ āĻāϟāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ⧇ ReplicaSet-āϟāĻŋāϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϰ āύāĻžāĻŽ replicaset.yaml, āϤāĻžāϰāĻĒāϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ:

$ kubectl create -f replicaset.yaml

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻž āϏ⧇āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āύ⧇āĻĒāĻĨā§āϝ⧇ āϕ⧀ āϘāϟāϛ⧇?

Kubernetes-āĻ āĻāĻ•āϟāĻŋ ReplicaSet āϤ⧈āϰāĻŋāϰ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ…āĻ¨ā§āϝ āϝ⧇āϕ⧋āύ⧋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāϤ⧋āχ, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ API āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āωāĻĒāϞāĻŦā§āϧāĨ¤ āĻāχ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ API āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟāϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻāχāϰāĻ•āĻŽ:

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

āϏāĻŽāĻ¸ā§āϤ Kubernetes āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ API āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟāϗ⧁āϞāĻŋ āĻāĻ–āĻžāύ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇ āĻāĻĒāĻŋāφāχ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ (āϏāĻš) āωāĻĒāϰ⧇āϰ āĻļ⧇āώ āĻŦāĻŋāĻ¨ā§āĻĻ⧁āϕ⧋āύ⧋ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āĻĒā§āϰāĻ•ā§ƒāϤ āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāϞ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāĻĒāĻŋāφāχ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒāĻžāĻĨāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻāĻĒāĻŋāφāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āχāωāφāϰāĻāϞ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϏ⧁āϤāϰāĻžāĻ‚, āϝāĻ–āύ āφāĻĒāύāĻŋ āωāĻĒāϰ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ, kubectl āωāĻĒāϰ⧇āϰ API āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āĻāĻ•āϟāĻŋ HTTP POST āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āĻĢāĻžāχāϞ⧇ āφāĻĒāύāĻŋ āϝ⧇ ReplicaSet āϏāĻ‚āĻœā§āĻžāĻžāϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇āϛ⧇āύ replicaset.yamlāĻ…āύ⧁āϰ⧋āϧ⧇āϰ āĻŽā§‚āϞ āĻ…āĻ‚āĻļ⧇ āĻāϟāĻŋ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧāĨ¤

āϝ⧇āϏāĻŦ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧇, āϏ⧇āϗ⧁āϞ⧋āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ kubectl āĻāĻ­āĻžāĻŦ⧇āχ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āĻāχ āϏāĻŦ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, kubectl āϕ⧇āĻŦāϞ āωāĻĒāϝ⧁āĻ•ā§āϤ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻāĻĒāĻŋāφāχ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋āϤ⧇ HTTP āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤

āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Kubernetes āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϝ⧇āĻŽāύ curlāĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ Kubernetes API-āϤ⧇ HTTP āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻĒāĻžāĻ āĻžāύ⧋āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇, Kubectl āϕ⧇āĻŦāϞ Kubernetes API-āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāϕ⧇ āϏāĻšāϜ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤

kubectl āϕ⧀ āĻāĻŦāĻ‚ āĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, āĻāϗ⧁āϞ⧋āχ āϤāĻžāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āϧāĻžāϰāĻŖāĻžāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Kubernetes API āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āφāϛ⧇ āϝāĻž āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ• kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āϜāĻžāύāĻž āωāϚāĻŋāϤāĨ¤ āϚāϞ⧁āύ Kubernetes-āĻāϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻ•āĻžāĻ°ā§āϝāĻĒā§āϰāĻŖāĻžāϞ⧀ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϏāĻ‚āĻ•ā§āώ⧇āĻĒ⧇ āĻœā§‡āύ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•āĨ¤

āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ⧇āϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āϜāĻ—ā§Ž

āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻāĻ•āϗ⧁āĻšā§āĻ› āĻ¸ā§āĻŦāĻžāϧ⧀āύ āωāĻĒāĻžāĻĻāĻžāύ āύāĻŋāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤ, āϝ⧇āϗ⧁āϞ⧋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄāϗ⧁āϞ⧋āϤ⧇ āĻĒ⧃āĻĨāĻ• āĻĒā§āϰāϏ⧇āϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāϞ⧇āĨ¤ āĻ•āĻŋāϛ⧁ āωāĻĒāĻžāĻĻāĻžāύ āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄā§‡ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāϗ⧁āϞ⧋ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄā§‡ āϚāϞ⧇, āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻžāϜ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰ⧇āĨ¤

āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄāϗ⧁āϞ⧋āϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞ⧋ āĻšāϞ⧋:

  1. āĻ–āĻŋāϞāĻžāύ — āϰāĻŋāϏ⧋āĻ°ā§āϏ āϏāĻ‚āĻœā§āĻžāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇ (āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāϟāĻž etcd).
  2. āĻāĻĒāĻŋāφāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻĒāĻŋāφāχ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇āĨ¤
  3. āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āϝ⧇āύ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻŽā§‡āύ⧇ āϚāϞ⧇, āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤
  4. āϏāĻŽāϝāĻŧāϏ⧂āĻšā§€ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄāϗ⧁āϞāĻŋāϤ⧇ āĻĒāĻĄāϗ⧁āϞāĻŋāϰ āϏāĻŽāϝāĻŧāϏ⧂āĻšā§€ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤

āφāϰ āĻāĻ–āĻžāύ⧇ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄāϗ⧁āϞ⧋āϰ āĻ…āĻ¨ā§āϝāϤāĻŽ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻāĻ•āϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ āϰāϝāĻŧ⧇āϛ⧇:

  1. āϕ⧁āĻŦ⧇āϞ⧇āϟ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄā§‡ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇āĨ¤

āĻāχ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞ⧋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāĻ•āϏāĻ™ā§āϗ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āϤāĻž āĻŦā§‹āĻāĻžāϰ āϜāĻ¨ā§āϝ, āϚāϞ⧁āύ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āĻŋāĨ¤

āϧāϰāĻž āϝāĻžāĻ• āφāĻĒāύāĻŋ āĻāχāĻŽāĻžāĻ¤ā§āϰ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰ⧇āϛ⧇āύ kubectl create -f replicaset.yamlāϝāĻžāϰ āĻĒāϰ⧇ kubectl āĻāĻ•āϟāĻŋ HTTP POST āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻŋāϝāĻŧ⧇āĻ›āĻŋāϞ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻāĻĒāĻŋāφāχ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ (ReplicaSet āϰāĻŋāϏ⧋āĻ°ā§āϏ āϏāĻ‚āĻœā§āĻžāĻžāϟāĻŋ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇)āĨ¤

āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āϕ⧀ āϘāϟāϛ⧇?

  1. āĻ•āϰāĻžāϰ āĻĒāϰ kubectl create -f replicaset.yaml āĻāĻĒāĻŋāφāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻĒāύāĻžāϰ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻž āϏ⧇āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āϏāĻ‚āĻœā§āĻžāĻž āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇:

    āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

  2. āĻāϰāĻĒāϰ⧇, āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ⧇ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰāϟāĻŋ āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻž āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞ⧋āϰ āϤ⧈āϰāĻŋ, āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻāĻŦāĻ‚ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻžāϰ āĻ•āĻžāϜ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇:

    āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

  3. āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰāϟāĻŋ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϰ āϜāĻ¨ā§āϝ (āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ⧇ āĻĨāĻžāĻ•āĻž āĻĒāĻĄ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€) āĻāĻ•āϟāĻŋ āĻĒāĻĄ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āĻ¸ā§āĻŸā§‹āϰ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇:

    āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

  4. āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰāϟāĻŋ āϚāĻžāϞ⧁ āĻšāϝāĻŧ⧇ āϏ⧇āχāϏāĻŦ āĻĒāĻĄāϗ⧁āϞ⧋āϕ⧇ āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇, āϝ⧇āϗ⧁āϞ⧋āϕ⧇ āĻāĻ–āύ⧋ āϕ⧋āύ⧋ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄā§‡ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ:

    āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

  5. āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāχ āϤāĻĨā§āϝāϟāĻŋ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āĻĨāĻžāĻ•āĻž āĻĒāĻĄ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ⧇ āϝ⧋āĻ— āĻ•āϰ⧇:

    āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

  6. āϝ⧇ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄā§‡ āĻĒāĻĄāϟāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻž āĻĨāĻžāϕ⧇, āϏ⧇āĻ–āĻžāύ⧇ āĻ•āĻŋāωāĻŦāϞ⧇āϟ āϚāĻžāϞ⧁ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϏ⧇āχ āύ⧋āĻĄā§‡ āĻŦāϰāĻžāĻĻā§āĻĻāĻ•ā§ƒāϤ āĻĒāĻĄāϗ⧁āϞ⧋āϕ⧇ āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇:

    āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

  7. āĻ•āĻŋāωāĻŦāϞ⧇āϟ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āĻĨ⧇āϕ⧇ āĻĒāĻĄ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ āĻĒāĻĄāĻŧ⧇ āĻāĻŦāĻ‚ āύ⧋āĻĄā§‡ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĄāĻ•āĻžāϰ⧇āϰ āĻŽāϤ⧋ āϕ⧋āύ⧋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰāĻžāύāϟāĻžāχāĻŽāϕ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻ⧇āϝāĻŧ:

    āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž

āύāĻŋāĻŽā§āύ⧇ āĻāχ āĻŦāĻŋāĻŦāϰāĻŖāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ–āĻŋāϤ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧋āĨ¤

āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻž āϏ⧇āϟ āϤ⧈āϰāĻŋāϰ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āĻĒāĻžāĻ āĻžāύ⧋ āĻāĻĒāĻŋāφāχ āĻ…āύ⧁āϰ⧋āϧāϟāĻŋ āĻāĻĒāĻŋāφāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻĒāĻŋāφāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ…āύ⧁āϰ⧋āϧāϟāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻž āϏ⧇āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύāϟāĻŋ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤

āĻāχ āχāϭ⧇āĻ¨ā§āϟāϟāĻŋ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āϚāĻžāϞ⧁ āĻ•āϰ⧇, āϝāĻž āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻžāĻŦāĻĒā§āϰāϏ⧇āϏāĨ¤ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āĻĨāĻžāĻ•āĻž āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞ⧋āϰ āϤ⧈āϰāĻŋ, āφāĻĒāĻĄā§‡āϟ āĻāĻŦāĻ‚ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāχ āϘāϟāύāĻžāϗ⧁āϞ⧋ āϘāϟāϞ⧇ āχāϭ⧇āĻ¨ā§āϟ āύ⧋āϟāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤

āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ⧇āϰ āĻ•āĻžāϜ āĻšāϞ⧋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϏāĻ‚āĻ–ā§āϝāĻ• āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻĒāĻĄ-āĻāϰ āĻ…āĻ¸ā§āϤāĻŋāĻ¤ā§āĻŦ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻžāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇, āĻāĻ–āύāĻ“ āϕ⧋āύ⧋ āĻĒāĻĄ āύ⧇āχ, āϤāĻžāχ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻāχ āĻĒāĻĄ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύāϗ⧁āϞ⧋ (āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĨāĻžāĻ•āĻž āĻĒāĻĄ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€) āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤

āύāϤ⧁āύ āĻĒāĻĄ āϤ⧈āϰāĻŋ āĻšāϞ⧇ āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻšāϝāĻŧ, āϝāĻž āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄā§‡ āĻāĻ–āύ⧋ āĻļāĻŋāĻĄāĻŋāωāϞ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ āĻāĻŽāύ āĻĒāĻĄ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύāϗ⧁āϞ⧋ āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤ āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻž āĻĒāĻĄ āĻĄā§‡āĻĢāĻŋāύāĻŋāĻļāύāϗ⧁āϞ⧋ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧇āĨ¤

āωāĻ˛ā§āϞ⧇āĻ–ā§āϝ āϝ⧇, āĻāχ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϕ⧋āĻĨāĻžāĻ“ āϕ⧋āύ⧋ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϞ⧋āĻĄ āϕ⧋āĻĄ āϚāĻžāϞāĻžāύ⧋ āĻšāϝāĻŧāύāĻŋāĨ¤ āĻāĻ–āύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϝāĻž āĻ•āĻŋāϛ⧁ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, - āĻāϟāĻŋ āĻšāϞ⧋ āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄā§‡āϰ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻāĻŦāĻ‚ āĻšāĻžāϞāύāĻžāĻ—āĻžāĻĻ āĻ•āϰāĻžāĨ¤

āϏāĻ°ā§āĻŦāĻļ⧇āώ āχāϭ⧇āĻ¨ā§āϟāϟāĻŋ āĻ•āĻŋāωāĻŦāϞ⧇āϟāϕ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧇, āϝāĻž āϤāĻžāĻĻ⧇āϰ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ āĻĒāĻĄāϗ⧁āϞ⧋āϕ⧇ āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤ āϝ⧇ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄā§‡ āφāĻĒāύāĻžāϰ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻĒāĻĄāϗ⧁āϞ⧋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āφāϛ⧇, āϏ⧇āχ āύ⧋āĻĄā§‡āϰ āĻ•āĻŋāωāĻŦāϞ⧇āϟāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āĻĄāĻ•āĻžāϰ⧇āϰ āĻŽāϤ⧋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰāĻžāύāϟāĻžāχāĻŽāϕ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āχāĻŽā§‡āϜāϗ⧁āϞ⧋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧇ āϚāĻžāϞāĻžāύ⧋āϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻāχ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇, āφāĻĒāύāĻžāϰ ReplicaSet āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻ…āĻŦāĻļ⧇āώ⧇ āϚāĻžāϞ⧁ āĻšāϝāĻŧ⧇āϛ⧇!

āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻāĻĒāĻŋāφāχ-āĻāϰ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āφāĻĒāύāĻŋ āφāϗ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇ āϝ⧇āĻŽāύ āĻĻ⧇āϖ⧇āϛ⧇āύ, Kubernetes-āĻāϰ āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟāϗ⧁āϞ⧋ (API āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻ›āĻžāĻĄāĻŧāĻž) āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āĻĨāĻžāĻ•āĻž āϰāĻŋāϏ⧋āĻ°ā§āϏāϗ⧁āϞ⧋āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻ“āĻĒāϰ āύāϜāϰ āϰāĻžāϖ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡āϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϤāĻĨā§āϝ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āĨ¤

āĻ…āĻŦāĻļā§āϝāχ, āĻāχ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞ⧋ āϏāϰāĻžāϏāϰāĻŋ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧇ āύāĻž, āĻŦāϰāĻ‚ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ Kubernetes API-āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡āχ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧇āĨ¤

āφāϏ⧁āύ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āωāĻĻāĻžāĻšāϰāĻŖāϗ⧁āϞ⧋ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻŋāĨ¤:

  1. āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻāĻĒāĻŋāφāχ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟāϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϏāĻš watch āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻž āϏ⧇āϟ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύāĻŋāϰ⧀āĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇
  2. āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻžāϏ⧇āϟ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻāĻĒāĻŋāφāχ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻĒāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ (create pod) āϚāĻžāĻĒ⧁āύāĨ¤
  3. āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰ āĻāĻ•āϟāĻŋ āĻāĻĒāĻŋāφāχ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻĒā§āϝāĻžāϚ āĻĒāĻĄ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻžāϰ āύ⧋āĻĄ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϤāĻĨā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒāĻĄāϗ⧁āϞ⧋ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāϤ⧇ (āĻšā§‡āĻžā§āϜ āĻĒāĻĄ) āϚāĻžāĻĒ⧁āύāĨ¤

āφāĻĒāύāĻŋ āĻĻ⧇āĻ–āϤ⧇āχ āĻĒāĻžāĻšā§āϛ⧇āύ, āĻāϟāĻŋ āϏ⧇āχ āĻāĻ•āχ āĻāĻĒāĻŋāφāχ āϝāĻž kubectl āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧇āĨ¤ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻŦāĻžāĻšā§āϝāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āχ āĻāĻĒāĻŋāφāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ⧇āϰ āĻāĻ•āϟāĻŋ āĻŽā§ŒāϞāĻŋāĻ• āĻĄāĻŋāϜāĻžāχāύ āϧāĻžāϰāĻŖāĻžāĨ¤

āĻāĻ–āύ āφāĻŽāϰāĻž āϏāĻ‚āĻ•ā§āώ⧇āĻĒ⧇ āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŋ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇:

  1. āĻ¸ā§āĻŸā§‹āϰ⧇āϜāϟāĻŋ āĻ¸ā§āĻŸā§‡āϟ āĻ…āĻ°ā§āĻĨāĻžā§Ž āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āϰāĻŋāϏ⧋āĻ°ā§āϏāϏāĻŽā§‚āĻš āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤
  2. āĻāĻĒāĻŋāφāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻāĻĒāĻŋāφāχ-āĻāϰ āφāĻ•āĻžāϰ⧇ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤
  3. āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϏāĻ•āϞ Kubernetes āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰāĻž API-āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ Kubernetes-āĻāϰ āĻ¸ā§āĻŸā§‡āϟ (āϰāĻŋāϏ⧋āĻ°ā§āϏ) āĻĒāĻĄāĻŧ⧇, āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āĨ¤

āĻāχ āϧāĻžāϰāĻŖāĻžāϗ⧁āϞ⧋ āϜāĻžāύāĻž āĻĨāĻžāĻ•āϞ⧇ āφāĻĒāύāĻŋ kubectl āφāϰāĻ“ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āĻāĻŦāĻ‚ āĻāϰ āĻĨ⧇āϕ⧇ āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ āϏ⧁āĻŦāĻŋāϧāĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤

āĻāĻŦāĻžāϰ āϚāϞ⧁āύ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻ•āĻ°ā§āĻŽāĻĻāĻ•ā§āώāϤāĻž āĻŦāĻžāĻĄāĻŧāĻžāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻŦ⧇ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•ā§ŒāĻļāϞ āĻ“ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻ⧇āϖ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•āĨ¤

ā§§. āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āϟāĻžāχāĻĒāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻ—āϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύāĨ¤

kubectl-āĻāϰ āĻ•āĻ°ā§āĻŽāĻĻāĻ•ā§āώāϤāĻž āĻŦāĻžāĻĄāĻŧāĻžāύ⧋āϰ āĻ…āĻ¨ā§āϝāϤāĻŽ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻ…āĻĨāϚ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āωāĻĒ⧇āĻ•ā§āώāĻŋāϤ āĻāĻ•āϟāĻŋ āĻ•ā§ŒāĻļāϞ āĻšāϞ⧋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύāĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āφāĻĒāύāĻžāϕ⧇ āĻŸā§āϝāĻžāĻŦ āϕ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻ…āĻ‚āĻļāϗ⧁āϞ⧋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤ āĻāϟāĻŋ āϏāĻžāĻŦāĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āĻ…āĻĒāĻļāύ āĻāĻŦāĻ‚ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϰāĻŋāϏ⧋āĻ°ā§āϏ āύāĻžāĻŽā§‡āϰ āĻŽāϤ⧋ āϜāϟāĻŋāϞ āĻŦāĻŋāώāϝāĻŧāϗ⧁āϞ⧋āĻ“ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĨ¤

āĻĻ⧇āϖ⧁āύ kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇:

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
Bash āĻāĻŦāĻ‚ Zsh āĻļ⧇āϞ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻ—āĻžāχāĻĄ āĻāϤ⧇ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ āϰāϝāĻŧ⧇āϛ⧇, āϤāĻŦ⧇ āύāĻŋāĻšā§‡ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ…āĻ‚āĻļ āϤ⧁āϞ⧇ āϧāϰāĻ›āĻŋāĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻšāϞ⧋ āĻļ⧇āϞ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϝāĻž āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻšāϞ⧋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻļ⧇āϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϝāĻž āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āφāϚāϰāĻŖ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤

Kubectl āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ Bash āĻāĻŦāĻ‚ Zsh-āĻāϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϤ⧈āϰāĻŋ āĻ“ āφāωāϟāĻĒ⧁āϟ āĻ•āϰ⧇:

$ kubectl completion bash

āĻŦāĻž:

$ kubectl completion zsh

āϤāĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇, āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞ⧋āϰ āφāωāϟāĻĒ⧁āϟ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻļ⧇āϞ⧇ āĻĒāĻžāχāĻĒ āĻ•āϰ⧇ āĻĻāĻŋāϞ⧇āχ āϝāĻĨ⧇āĻˇā§āϟ, āϝāĻžāϤ⧇ kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞ⧋ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇, Bash (Linux āĻāĻŦāĻ‚ MacOS-āĻāϰ āĻŽāĻ§ā§āϝāĻ•āĻžāϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϏāĻš) āĻāĻŦāĻ‚ Zsh-āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻ‚āϝ⧋āĻ— āĻĒāĻĻā§āϧāϤāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻšāϝāĻŧāĨ¤ āφāĻŽāϰāĻž āύāĻŋāĻšā§‡ āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āύāĻŋāϝāĻŧ⧇ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻŦāĨ¤

āϞāĻŋāύāĻžāĻ•ā§āϏ⧇ āĻŦā§āϝāĻžāĻļ

āĻŦā§āϝāĻžāĻļ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ bash-completion āĻĒā§āϝāĻžāϕ⧇āĻœā§‡āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰāĻļā§€āϞ, āϤāĻžāχ āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāϟāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇:

$ sudo apt-get install bash-completion

āĻŦāĻž:

$ yum install bash-completion

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝ⧇ āĻĒā§āϝāĻžāϕ⧇āϜāϟāĻŋ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āχāύāĻ¸ā§āϟāϞ āĻšāϝāĻŧ⧇āϛ⧇ āĻ•āĻŋāύāĻž:

$ type _init_completion

āϝāĻĻāĻŋ āĻāϟāĻŋ āĻļ⧇āϞ āĻĢāĻžāĻ‚āĻļāύ āϕ⧋āĻĄ āφāωāϟāĻĒ⧁āϟ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ bash-completion āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āφāϛ⧇āĨ¤ āϝāĻĻāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ "Not found" āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āĻžāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻžāϕ⧇ āφāĻĒāύāĻžāϰ āĻĢāĻžāχāϞ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϞāĻžāχāύāϟāĻŋ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ ~ / .bashrc:

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

āĻĢāĻžāχāϞ⧇ āĻāχ āϞāĻžāχāύāϟāĻŋ āϝ⧋āĻ— āĻ•āϰāĻž āĻ•āĻŋ āφāĻŦāĻļā§āϝāĻ•? ~ / .bashrc āĻāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•āĻŋāύāĻž āϤāĻž āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āφāĻĒāύāĻŋ bash-completion āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āϕ⧋āύ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āϛ⧇āύ āϤāĻžāϰ āωāĻĒāϰāĨ¤ āĻāϟāĻŋ APT-āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ YUM-āĻāϰ āϜāĻ¨ā§āϝ āύāϝāĻŧāĨ¤

āĻāĻ•āĻŦāĻžāϰ bash-completion āχāύāĻ¸ā§āϟāϞ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇, āφāĻĒāύāĻžāϕ⧇ āĻāĻŽāύāĻ­āĻžāĻŦ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āϏāĻŽāĻ¸ā§āϤ āĻļ⧇āϞ āϏ⧇āĻļāύ⧇ kubectl completion script-āϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĨāĻžāϕ⧇āĨ¤

āĻāϟāĻŋ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āωāĻĒāĻžāϝāĻŧ āĻšāϞ⧋ āĻĢāĻžāχāϞāϟāĻŋāϤ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϞāĻžāχāύāϟāĻŋ āϝ⧋āĻ— āĻ•āϰāĻžāĨ¤ ~ / .bashrc:

source <(kubectl completion bash)

āφāϰ⧇āĻ•āϟāĻŋ āωāĻĒāĻžāϝāĻŧ āĻšāϞ⧋ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ kubectl āĻ…ā§āϝāĻžāĻĄāĻ…āύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ āϝ⧋āĻ— āĻ•āϰāĻžāĨ¤ /etc/bash_completion.d (āϝāĻĻāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āύāĻž āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ):

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

āĻ•ā§āϝāĻžāϟāĻžāϞāϗ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻ…ā§āϝāĻžāĻĄ-āĻ…āύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ /etc/bash_completion.d āĻŦā§āϝāĻžāĻļ-āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻšāϝāĻŧāĨ¤

āωāĻ­āϝāĻŧ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāχ āϏāĻŽāĻžāύāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϝ⧋āĻœā§āϝāĨ¤

āĻļ⧇āϞāϟāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻĒāϰ, kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšāĻŦ⧇āĨ¤

āĻŽā§āϝāĻžāĻ•āĻ“āĻāϏ-āĻ āĻŦā§āϝāĻžāĻļ

macOS-āĻ āϏ⧇āϟāφāĻĒāϟāĻŋ āĻ•āĻŋāϛ⧁āϟāĻž āĻŦ⧇āĻļāĻŋ āϜāϟāĻŋāϞāĨ¤ āĻāϰ āĻ•āĻžāϰāĻŖ āĻšāϞ⧋, macOS āĻĄāĻŋāĻĢāĻ˛ā§āϟāĻ­āĻžāĻŦ⧇ Bash 3.2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻāĻŦāĻ‚ kubectl āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋāϰ āϜāĻ¨ā§āϝ Bash 4.1 āĻŦāĻž āϤāĻžāϰ āωāĻšā§āϚāϤāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āϝāĻž Bash 3.2-āĻ āĻ•āĻžāϜ āĻ•āϰ⧇ āύāĻžāĨ¤

āĻŽā§āϝāĻžāĻ•āĻ“āĻāϏ-āĻ āĻŦā§āϝāĻžāĻļ⧇āϰ āĻāĻ•āϟāĻŋ āĻĒ⧁āϰ⧋āύ⧋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•āĻžāϰāĻŖ āĻšāϞ⧋ āϞāĻžāχāϏ⧇āĻ¨ā§āϏ āϏāĻ‚āĻ•ā§āϰāĻžāĻ¨ā§āϤ āϏāĻŽāĻ¸ā§āϝāĻžāĨ¤ āĻŦā§āϝāĻžāĻļ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ ā§Ē-āĻāϰ āϞāĻžāχāϏ⧇āĻ¨ā§āϏ GPLv3-āĻāϰ āĻ…āϧ⧀āύ⧇, āϝāĻž āĻ…ā§āϝāĻžāĻĒāϞ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āύāĻžāĨ¤

macOS-āĻ kubectl āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϕ⧇ Bash-āĻāϰ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āφāĻĒāύāĻŋ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž Bash-āϕ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻļ⧇āϞ āĻšāĻŋāϏ⧇āĻŦ⧇āĻ“ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϝāĻž āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇ āφāĻĒāύāĻžāϰ āĻ…āύ⧇āĻ• āĻāĻžāĻŽā§‡āϞāĻž āĻ•āĻŽāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇āĨ¤ āĻāϟāĻŋ āϏāĻšāϜ; āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻŦāĻŋāĻŦāϰāĻŖ "MacOS-āĻ Bash āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžÂģ.

āĻāĻ—āĻŋāϝāĻŧ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇, āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ āϝ⧇ āφāĻĒāύāĻŋ āĻŦā§āϝāĻžāĻļ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻ• āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇āύ (āφāωāϟāĻĒ⧁āϟ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ)āĨ¤ bash --version).

āĻŦā§āϝāĻžāĻļ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟāĨ¤ bash-āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϤāĻžāϏ⧁āϤāϰāĻžāĻ‚ āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāϟāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āφāĻĒāύāĻŋ bash-completion āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ Homebrew:

$ brew install bash-completion@2

āĻāϟāĻž āĻšāϞ @2 āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋ āĻŦā§āϝāĻžāĻļ-āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ­āĻžāĻ°ā§āϏāύ ⧍āĨ¤ kubectl completion-āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāĻļ-āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ­āĻŋ⧍ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāĻļ-āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ­āĻŋ⧍-āĻāϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ āĻŦā§āϝāĻžāĻļ āĻ­āĻžāĻ°ā§āϏāύ ā§Ē.ā§§ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āφāωāϟāĻĒ⧁āϟ 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 āĻāχ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āϏāĻŽāĻ¸ā§āϤ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϞ⧋āĻĄ āĻ•āϰ⧇āĨ¤

āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ āĻšā§‹āĻŽāĻŦā§āϰ⧁ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ kubectlāϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻžāϰ āφāϗ⧇āϰ āϧāĻžāĻĒāϟāĻŋ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ, āĻ•āĻžāϰāĻŖ āĻ…āĻŸā§‹-āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āϝ⧁āĻ•ā§āϤ āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇āĨ¤ /usr/local/etc/bash_completion.d āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ⧇āϰ āϏāĻŽāϝāĻŧāĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻĒāύāĻŋ bash-completion āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇āχ kubectl autocompletion āĻ•āĻžāϜ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻŦ⧇āĨ¤

āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ, āĻāχ āϏāĻŦ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāχ āϏāĻŽāϤ⧁āĻ˛ā§āϝāĨ¤

Zsh

Zsh-āĻāϰ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϗ⧁āϞ⧋āϰ āϕ⧋āύ⧋ āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻžāĨ¤ āĻļ⧇āϞāϟāĻŋ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āφāĻĒāύāĻžāϕ⧇ āĻļ⧁āϧ⧁ āĻāϗ⧁āϞ⧋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āϞāĻžāχāύ⧇ āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āϝ⧋āĻ— āĻ•āϰ⧇ āĻāϟāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ ~/.zshrc āĻĢāĻžāχāϞ:

source <(kubectl completion zsh)

āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĒāĻžāύ not found: compdef āφāĻĒāύāĻžāϰ āĻļ⧇āϞ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āφāĻĒāύāĻžāϕ⧇ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ compdefāφāĻĒāύāĻžāϰ āĻĢāĻžāχāϞ⧇āϰ āĻļ⧁āϰ⧁āϤ⧇ āĻāϟāĻŋ āϝ⧋āĻ— āĻ•āϰ⧇ āφāĻĒāύāĻŋ āĻāϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ ~/.zshrc āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ:

autoload -Uz compinit
compinit

⧍. āϏāĻŽā§āĻĒāĻĻ⧇āϰ āĻŦāĻŋāĻŦāϰāĻŖ āĻĻā§āϰ⧁āϤ āĻĻ⧇āϖ⧁āύ

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

ā§Š. āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ•āϞāĻžāĻŽ āφāωāϟāĻĒ⧁āϟ āĻĢāϰāĻŽā§āϝāĻžāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āφāωāϟāĻĒ⧁āϟ āĻĢāϰāĻŽā§āϝāĻžāϟ āĻšāϞ 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 āĻĒāĻĄā§‡āϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŦāĻŋāĻŦāϰāϪ⧇āĨ¤ āφāϰāĻ“ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϤāĻĨā§āϝ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇ āĻāĻ–āĻžāύ⧇āĨ¤ āĻāĻĒāĻŋāφāχ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ āĻ…āĻĨāĻŦāĻž āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϟāĻžāχāĻĒ āĻ•āϰ⧁āύ 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 āĻĒāĻĄ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύāĨ¤ āφāϰāĻ“ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϤāĻĨā§āϝ āφāωāϟāĻĒ⧁āĻŸā§‡ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇āĨ¤ kubectl explain pod.spec.nodeName.

āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ Kubernetes āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞ⧋ āϕ⧇āϏ-āϏ⧇āύāϏāĻŋāϟāĻŋāĻ­āĨ¤

āφāĻĒāύāĻŋ āϝ⧇āϕ⧋āύ⧋ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĢāĻŋāĻ˛ā§āĻĄāϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āϞāĻžāĻŽ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻļ⧁āϧ⧁ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻĒāĻ°ā§āϝāĻžāϞ⧋āϚāύāĻž āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ āĻĒāĻ›āĻ¨ā§āĻĻ⧇āϰ āϝ⧇āϕ⧋āύ⧋ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĻāĻŋāϝāĻŧ⧇ āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āĻĻ⧇āϖ⧁āύāĨ¤

āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§āϰāĻĨāĻŽā§‡, āϚāϞ⧁āύ āĻĢāĻŋāĻ˛ā§āĻĄ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύāϗ⧁āϞ⧋ āφāϰāĻ“ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻĻ⧇āϖ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•āĨ¤

JSONPath āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ

āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĢāĻŋāĻ˛ā§āĻĄ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύāϗ⧁āϞ⧋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŦāĻŋāώāϝāĻŧ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϤ⧈āϰāĻŋ: JSONPath.

JSONPath āĻšāϞ⧋ JSON āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āĻ­āĻžāώāĻžāĨ¤ āĻāĻ•āϟāĻŋāĻŽāĻžāĻ¤ā§āϰ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāĻžāχ āĻšāϞ⧋ JSONPath-āĻāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ āĻŦā§āϝāĻŦāĻšāĻžāϰāĨ¤ āĻāϰ āĻ…āύ⧇āĻ•... āφāϰāĻ“ āϏ⧁āϝ⧋āĻ—, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻŋāϞ⧇āĻ•ā§āϟāϰ, āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĨ¤

Kubectl explain āϏ⧀āĻŽāĻŋāϤ āϏāĻ‚āĻ–ā§āϝāĻ• 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'

[] āĻ…āĻĒāĻžāϰ⧇āϟāϰāϟāĻŋ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ Kubernetes-āĻāϰ āĻ…āύ⧇āĻ• āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĢāĻŋāĻ˛ā§āĻĄ āĻšāϞ⧋ āϞāĻŋāĻ¸ā§āϟ, āĻāĻŦāĻ‚ āĻāχ āĻ…āĻĒāĻžāϰ⧇āϟāϰāϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āϏ⧇āχ āϞāĻŋāĻ¸ā§āϟāϗ⧁āϞ⧋ āĻĨ⧇āϕ⧇ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϏāĻŽāĻ¸ā§āϤ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ [*]-āĻāϰ āĻŽāϤ⧋ āĻ“āϝāĻŧāĻžāχāĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻ•ā§āϝāĻžāϰ⧇āĻ•ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤

āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āωāĻĻāĻžāĻšāϰāĻŖ

āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ•āϞāĻžāĻŽ āφāωāϟāĻĒ⧁āϟ āĻĢāϰāĻŽā§āϝāĻžāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻ…āĻĢ⧁āϰāĻ¨ā§āϤ, āĻ•āĻžāϰāĻŖ āφāĻĒāύāĻŋ āφāωāϟāĻĒ⧁āĻŸā§‡ āϝ⧇āϕ⧋āύ⧋ āĻĢāĻŋāĻ˛ā§āĻĄ āĻŦāĻž āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāĻŖ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāĻ–āĻžāύ⧇ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧋, āϤāĻŦ⧇ āφāĻĒāύāĻŋ āύāĻŋāĻœā§‡ āĻĨ⧇āϕ⧇āχ āĻāϗ⧁āϞ⧋ āĻ…āĻ¨ā§āĻŦ⧇āώāĻŖ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻĻāϰāĻ•āĻžāϰāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āϖ⧁āρāĻœā§‡ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

  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āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰāϟāĻŋ āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ•ā§āϞāĻžāωāĻĄā§‡ āϚāϞ⧇, āϤāĻžāĻšāϞ⧇ āĻāχ āϞ⧇āĻŦ⧇āϞāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύ⧋āĻĄā§‡āϰ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻœā§‹āύ⧇āϰ āύāĻžāĻŽ āĻĻāĻŋāϝāĻŧ⧇ āĻĒā§‚āϰāĻŖ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

    āϞ⧇āĻŦ⧇āϞāϗ⧁āϞāĻŋ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ⧇āϰ āĻ…āĻ‚āĻļ āύāϝāĻŧ, āϤāĻžāχ āφāĻĒāύāĻŋ āĻ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϕ⧋āύ⧋ āϤāĻĨā§āϝ āĻĒāĻžāĻŦ⧇āύ āύāĻžāĨ¤ āĻāĻĒāĻŋāφāχ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāϤāĻŦ⧇, YAML āĻŦāĻž JSON āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āύ⧋āĻĄā§‡āϰ āϤāĻĨā§āϝ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāϗ⧁āϞāĻŋ (āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϞ⧇āĻŦ⧇āϞ⧇āϰ āĻŽāϤ⧋āχ) āĻĻ⧇āĻ–āĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇:

    $ kubectl get nodes -o yaml
    # иĐģи
    $ kubectl get nodes -o json

    āϏāĻŽā§āĻĒāĻĻ⧇āϰ āĻŦāĻŋāĻŦāϰāĻŖ āĻ…āĻ§ā§āϝāϝāĻŧāύ⧇āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āϏāĻŽā§āĻĒāĻĻ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āϜāĻžāύāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϚāĻŽā§ŽāĻ•āĻžāϰ āωāĻĒāĻžāϝāĻŧāĨ¤

ā§Ē. āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻāĻŦāĻ‚ āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻšāĻœā§‡ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž

āϝāĻ–āύ kubectl āϕ⧁āĻŦāĻžāϰāύ⧇āϟāĻŋāϏ āĻāĻĒāĻŋāφāχ-āϤ⧇ āϕ⧋āύ⧋ āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāϝāĻŧ, āϤāĻ–āύ āĻāϟāĻŋ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāϤ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ kubeconfig āĻĢāĻžāχāϞāϟāĻŋ āĻĒāĻĄāĻŧ⧇āĨ¤

āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, kubeconfig āĻĢāĻžāχāϞāϟāĻŋ āĻšāϞ⧋ ~/.kube/configāĻāχ āĻĢāĻžāχāϞāϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϤ⧈āϰāĻŋ āĻŦāĻž āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āϝāĻ–āύ āφāĻĒāύāĻŋ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āύ, āϤāĻ–āύ āφāĻĒāύāĻžāϰ kubeconfig āĻĢāĻžāχāϞ⧇ āϏ⧇āϗ⧁āϞ⧋āϰ āϏāĻŦāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝāχ āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻĨāĻžāϕ⧇āĨ¤ āφāĻĒāύāĻŋ āϕ⧋āύ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰāϛ⧇āύ, āϤāĻž kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϕ⧇ āϜāĻžāύāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āĻāĻ•āϟāĻŋ āωāĻĒāĻžāϝāĻŧ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤

āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āφāĻĒāύāĻŋ āĻāĻ•āĻžāϧāĻŋāĻ• āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĻ¨â€”āϝāĻž āĻāĻ•āϟāĻŋ āĻĢāĻŋāϜāĻŋāĻ•ā§āϝāĻžāϞ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ• āϧāϰāύ⧇āϰ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰāĨ¤ Kubectl, kubeconfig āĻĢāĻžāχāϞ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϕ⧋āύ āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ āϤāĻžāχ, kubectl-āϕ⧇ āϕ⧋āύ āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āϜāĻžāύāĻžāύ⧋āϰ āϜāĻ¨ā§āϝāĻ“ āφāĻĒāύāĻžāϰ āĻāĻ•āϟāĻŋ āωāĻĒāĻžāϝāĻŧ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤

āĻāχ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇ āφāĻŽāϰāĻž āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻŦ āĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻ•āĻžāϜ āĻ…āĻ°ā§āϜāύ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤

āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇, āφāĻĒāύāĻŋ KUBECONFIG āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• kubeconfig āĻĢāĻžāχāϞ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϰāĻžāύāϟāĻžāχāĻŽā§‡ āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻĢāĻžāχāϞ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻšāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻļ⧇āϝāĻŧāĻžāĻ°ā§āĻĄ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āφāĻĒāύāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϏāĻš kubectl āϚāĻžāϞāĻŋāϝāĻŧ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟ kubeconfig āĻĢāĻžāχāϞāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ --kubeconfigāĻĻ⧇āĻ–ā§‹āĨ¤ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ.

āĻ•āĻŋāωāĻŦāĻ•āύāĻĢāĻŋāĻ— āĻĢāĻžāχāϞ

āϚāϞ⧁āύ āĻĻ⧇āϖ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ• kubeconfig āĻĢāĻžāχāϞāϟāĻŋāϤ⧇ āĻ āĻŋāĻ• āϕ⧀ āϕ⧀ āĻĨāĻžāϕ⧇:

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
āϝ⧇āĻŽāύāϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āϛ⧇āύ, kubeconfig āĻĢāĻžāχāϞāϟāĻŋāϤ⧇ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āϤāĻŋāύāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ āύāĻŋāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤ:

  • āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ — āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻĒāĻŋāφāχ āχāωāφāϰāĻāϞāĨ¤
  • āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ — āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϤāĻĨā§āϝāĨ¤
  • āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏ - āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āϝ⧋āĻ—āĻĻāĻžāύ⧇āϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏāĨ¤

āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇, āφāĻĒāύāĻžāϰ kubeconfig āĻĢāĻžāχāϞ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•āϰ⧇ āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāχ āĻĒā§āϰāϚāϞāĻŋāϤāĨ¤ āϤāĻŦ⧇, āφāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻŦāĻž āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏ āĻĻā§āĻŦāĻžāϰāĻž āĻĒ⧃āĻĨāĻ• āĻ•āϰ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁, āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āϏāĻš āĻāχ āϧāϰāύ⧇āϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϖ⧁āĻŦ āĻāĻ•āϟāĻž āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ āύāĻž, āϤāĻžāχ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻāĻŦāĻ‚ āĻ•āύāĻŸā§‡āĻ•ā§āϏāĻŸā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•-āĻāĻ• āϏāĻŽā§āĻĒāĻ°ā§āĻ• āĻĨāĻžāϕ⧇āĨ¤

āϝ⧇āϕ⧋āύ⧋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŽāϝāĻŧ⧇, āĻĒā§āϰ⧇āĻ•ā§āώāĻžāĻĒāϟāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĨāĻžāϕ⧇:

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
kubectl āϝāĻ–āύ āϕ⧋āύ⧋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āĻĒāĻĄāĻŧ⧇, āϤāĻ–āύ āĻāϟāĻŋ āϏāĻ°ā§āĻŦāĻĻāĻž āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āĻĨ⧇āϕ⧇ āϤāĻĨā§āϝ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤ āωāĻĒāϰ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇, kubectl āĻšā§‡āϝāĻŧāĻžāϰ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŦ⧇āĨ¤

āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€, āĻ…āĻ¨ā§āϝ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻšāϤ⧇ āĻšāϞ⧇, āφāĻĒāύāĻžāϕ⧇ kubeconfig āĻĢāĻžāχāϞ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇:

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
āĻāĻ–āύ kubectl āĻĢāĻ•ā§āϏ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻšāĻŦ⧇āĨ¤

āĻāĻ•āχ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ…āĻ¨ā§āϝ āϕ⧋āύ⧋ āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏ⧇ āϝ⧇āϤ⧇ āĻšāϞ⧇, āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ•āύāĻŸā§‡āĻ•ā§āϏāĻŸā§‡āϰ āϜāĻ¨ā§āϝ āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇:

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
āωāĻĒāϰ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇, kubectl āĻĢāĻ•ā§āϏ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ Prod āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇ (āĻĒā§‚āĻ°ā§āĻŦ⧇ Test āύ⧇āĻŽāĻ¸ā§āĻĒ⧇āϏāϟāĻŋ āϏ⧇āϟ āĻ•āϰāĻž āĻ›āĻŋāϞ)āĨ¤

āωāĻ˛ā§āϞ⧇āĻ–ā§āϝ āϝ⧇ 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 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­, āĻ…āĻŦāĻžāϧ-āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ (kubectx-āĻāϰ āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­ āĻŽā§‹āĻĄā§‡āϰ āĻŽāϤ⧋) āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϤ⧇ fzf āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ fzf āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύāĻāχ āĻ›āĻĻā§āĻŽāύāĻžāĻŽāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇āĨ¤

āĻĒā§āϞāĻžāĻ—āχāύ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻžāϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āύāĻžāĻŽā§‡āϰ āĻļ⧇āϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ kubectl-ctx и kubectl-ns āφāĻĒāύāĻžāϰ PATH āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āϝ⧇āϕ⧋āύ⧋ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻ•āϰ⧁āύ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ chmod +xāĻāϰ āĻ āĻŋāĻ• āĻĒāϰ⧇āχ āφāĻĒāύāĻŋ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ kubectl ctx и kubectl ns.

ā§Ģ. āĻ…āĻŸā§‹āĻāϞāĻŋāϝāĻŧāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāύāĻĒ⧁āϟ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ•āϰ⧁āύ

āĻļ⧇āϞ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ āϟāĻžāχāĻĒāĻŋāĻ‚ āĻĻā§āϰ⧁āϤ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āĻĻāĻžāϰ⧁āĻŖ āωāĻĒāĻžāϝāĻŧāĨ¤ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ kubectl- āωāĻĒāύāĻžāĻŽ āĻāϤ⧇ āĻŽā§ŒāϞāĻŋāĻ• kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻĒā§āϰāĻžāϝāĻŧ ā§Žā§Ļā§ĻāϟāĻŋ āĻļāĻ°ā§āϟāĻ•āĻžāϟ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āφāĻĒāύāĻŋ āĻšāϝāĻŧāϤ⧋ āĻ­āĻžāĻŦāϛ⧇āύ ā§Žā§Ļā§ĻāϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āύāĻžāĻŽ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻžāϕ⧇ āϏāĻŦāϗ⧁āϞ⧋ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ āύāĻž, āĻ•āĻžāϰāĻŖ āϏ⧇āϗ⧁āϞ⧋ āĻāĻ•āϟāĻŋ āϏāĻšāϜ āϏ⧂āĻ¤ā§āϰ āĻŽā§‡āύ⧇ āϚāϞ⧇, āϝāĻž āύāĻŋāĻšā§‡ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧋:

āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāϰ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ kubectl āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ: āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž
āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ:

  1. kgpooyaml - kubectl get pods oyaml
  2. ksysgsvcw — kubectl -n kube-āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒ⧇āϤ⧇ svc w
  3. ksysrmcm -kubectl -n kube-āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ rm cm
  4. kgdepallsl - kubectl get deployment all sl

āϝ⧇āĻŽāύāϟāĻŋ āφāĻĒāύāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āϛ⧇āύ, āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏāϗ⧁āϞ⧋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āωāĻĒāĻžāĻĻāĻžāύ āĻĻāĻŋāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤ, āϝāĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ…āĻ‚āĻļāϕ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇ āĻŽā§‚āϞ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻāĻŦāĻ‚ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•āϰ⧇ āωāĻĒāĻžāĻĻāĻžāύ āĻāĻŦāĻ‚ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ• āωāĻĒāĻžāĻĻāĻžāύ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āωāĻĒāϰ⧇āϰ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€, āφāĻĒāύāĻžāϕ⧇ āϕ⧇āĻŦāϞ āĻŦāĻžāĻŽ āĻĨ⧇āϕ⧇ āĻĄāĻžāύ⧇ āĻāχ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞ⧋ "āĻĒā§‚āϰāĻŖ" āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽāϟāĻŋ āĻāĻ–āĻžāύ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāϤāĨ¤ GitHubāϏ⧇āĻ–āĻžāύ⧇ āφāĻĒāύāĻŋ āφāϰāĻ“ āϖ⧁āρāĻœā§‡ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ āĻĄāĻžāĻ•āύāĻžāĻŽā§‡āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϤāĻžāϞāĻŋāĻ•āĻž.

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, 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 āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ 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 āĻ—āĻŋāϟāĻšāĻžāĻŦ āĻĨ⧇āϕ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻĢāĻžāχāϞ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤ ~/.bashrc āĻŦāĻž ~/.zshrc:

source ~/.kubectl_aliases

āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āϏāĻŽāĻžāĻĒā§āϤāĻŋ

āϝ⧇āĻŽāύāϟāĻž āφāĻŽāϰāĻž āφāϗ⧇āχ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰ⧇āĻ›āĻŋ, āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϞāĻžāχāύ⧇ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āϕ⧋āύ⧋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻļāĻŦā§āĻĻ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ:

$ kgpooyaml test-pod-d4b77b989

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ, āϤāĻžāĻšāϞ⧇ āϏāĻŽā§āĻ­āĻŦāϤ āϰāĻŋāϏ⧋āĻ°ā§āϏ āύāĻžāĻŽā§‡āϰ āĻŽāϤ⧋ āĻŦāĻŋāώāϝāĻŧāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āϛ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āĻ“ āĻ•āĻŋ āĻāĻ•āχ āĻ•āĻžāϜ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ?

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āϰāĻļā§āύ, āĻ•āĻžāϰāĻŖ āϝāĻĻāĻŋ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ•āĻžāϜ āύāĻž āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āĻ•āĻŋāϛ⧁ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāĻžāϰāĻžāĻŦ⧇āύāĨ¤

āωāĻ¤ā§āϤāϰāϟāĻŋ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āφāĻĒāύāĻŋ āϕ⧋āύ āĻļ⧇āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇āύ āϤāĻžāϰ āωāĻĒāϰ:

  1. Zsh-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟāĻ­āĻžāĻŦ⧇āχ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤
  2. āĻĻ⧁āĻ°ā§āĻ­āĻžāĻ—ā§āϝāĻŦāĻļāϤ, āĻŦā§āϝāĻžāĻļ⧇ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āĻ•āĻŋāϛ⧁ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻšāϝāĻŧāĨ¤

āĻŦā§āϝāĻžāĻļ⧇ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž

Bash-āĻāϰ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϞ⧋, āĻāϟāĻŋ (āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ Tab āϚāĻžāĻĒāϞ⧇) āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏāϟāĻŋāϕ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇, āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏāϟāĻŋ āϝ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϏ⧇āϟāĻŋāϕ⧇ āύāϝāĻŧ (āϝ⧇āĻŽāύ, Zsh)āĨ¤ āϝ⧇āĻšā§‡āϤ⧁ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āϏāĻŦ ā§Žā§Ļā§ĻāϟāĻŋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āύ⧇āχ, āϤāĻžāχ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ•āĻžāϜ āĻ•āϰ⧇ āύāĻžāĨ¤

āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ-āωāĻĒāύāĻžāĻŽ āĻāϟāĻŋ āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏāĻŽāĻžāϧāĻžāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻŽā§‡āĻ•āĻžāύāĻŋāϜāĻŽā§‡āϰ āϏāĻžāĻĨ⧇ āϝ⧁āĻ•ā§āϤ āĻšāϝāĻŧ⧇, āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖāĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏāϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋāϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ…āĻĒāĻļāύāϗ⧁āϞ⧋ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋, āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻŽāϤ⧋āχ āĻšā§āĻŦāĻšā§ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

āĻāϰāĻĒāϰ⧇, āφāĻŽāĻŋ āĻĒā§āϰāĻĨāĻŽā§‡ complete-alias āϕ⧀āĻ­āĻžāĻŦ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āϤāĻž āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻŦ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āϏāĻŽāĻ¸ā§āϤ kubectl āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϏāĻ•ā§āώāĻŽ āĻ•āϰāϤ⧇ āĻāϟāĻŋāϕ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āϤāĻž āĻĻ⧇āĻ–āĻžāĻŦāĨ¤

āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ-āωāĻĒāύāĻžāĻŽ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

āĻĒā§āϰāĻĨāĻŽāϤ, āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ-āωāĻĒāύāĻžāĻŽ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ bash-āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϤāĻžāϏ⧁āϤāϰāĻžāĻ‚, complete-alias āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āφāϗ⧇, āφāĻĒāύāĻžāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ bash-completion āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āφāϛ⧇āĨ¤ Linux āĻāĻŦāĻ‚ macOS-āĻāϰ āϜāĻ¨ā§āϝ āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ⧇āϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ āĻĒā§‚āĻ°ā§āĻŦ⧇ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

MacOS āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āϜāĻ¨ā§āϝ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāĻœā§āĻžāĻĒā§āϤāĻŋkubectl āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻŽāϤ⧋āχ, complete-alias āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ Bash 3.2-āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āύāĻž, āϝāĻž MacOS-āĻāϰ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāĨ¤ āĻŦāĻŋāĻļ⧇āώāϤ, complete-alias āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ bash-completion v2-āĻāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰāĻļā§€āϞāĨ¤brew install bash-completion@2), āϝāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻ¨ā§āϤāϤ āĻŦā§āϝāĻžāĻļ ā§Ē.ā§§ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋, āĻŽā§āϝāĻžāĻ•āĻ“āĻāϏ-āĻ āĻ•āĻŽāĻĒā§āϞāĻŋāϟ-āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāϞ⧇ āφāĻĒāύāĻžāϕ⧇ āĻŦā§āϝāĻžāĻļ⧇āϰ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āφāĻĒāύāĻžāϕ⧇ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ bash_completion.sh āĻĨ⧇āϕ⧇ āĻ—āĻŋāϟāĻšāĻžāĻŦ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āĻāĻŦāĻ‚ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āĻĢāĻžāχāϞ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύ ~/.bashrc:

source ~/bash_completion.sh

āĻļ⧇āϞāϟāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻĒāϰ, complete-alias āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āχāύāĻ¸ā§āϟāϞ āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇āĨ¤

kubectl āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϤāĻž āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž

āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇, complete-alias āĻāĻ•āϟāĻŋ āĻļ⧇āϞ āĻĢāĻžāĻ‚āĻļāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ _complete_aliasāĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ āϝāĻžāϚāĻžāχ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻžāĻĒā§āϤāĻŋ āχāĻ™ā§āĻ—āĻŋāϤ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

āϕ⧋āύ⧋ āĻĢāĻžāĻ‚āĻļāύāϕ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āωāĻĒāύāĻžāĻŽā§‡āϰ āϏāĻžāĻĨ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϕ⧇ āĻŦā§āϝāĻžāĻļ⧇āϰ āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ _complete_alias āωāĻĒāύāĻžāĻŽ āĻĒāϰāĻŋāĻĒā§‚āϰāϕ⧇āϰ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻšāĻŋāϏāĻžāĻŦ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, k āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏāϟāĻŋ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•, āϝāĻž kubectl āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϕ⧇ āĻŦā§‹āĻāĻžāϝāĻŧāĨ¤ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ _complete_alias āĻāχ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āĻĒāϰāĻŋāĻĒā§‚āϰāĻ• āĻĢāĻžāĻ‚āĻļāύ āĻšāĻŋāϏ⧇āĻŦ⧇, āφāĻĒāύāĻžāϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāϤ⧇ āĻšāĻŦ⧇:

$ complete -F _complete_alias k

āĻāϰ āĻĢāϞ⧇ āϝāĻž āĻšāϝāĻŧ āϤāĻž āĻšāϞ⧋, āϝāĻ–āύāχ āφāĻĒāύāĻŋ k āωāĻĒāύāĻžāĻŽāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĒā§‚āϰāĻŖ āĻ•āϰ⧇āύ, āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ _complete_aliasāϝāĻž āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏāϟāĻŋ āϝāĻžāϚāĻžāχ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻžāĻĒā§āϤāĻŋāϰ āχāĻ™ā§āĻ—āĻŋāϤ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ kubectl.

āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇, āĻāĻ•āϟāĻŋ āωāĻĒāύāĻžāĻŽ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•āĨ¤ kgāϝāĻžāϰ āĻŽāĻžāύ⧇ kubectl get:

$ complete -F _complete_alias kg

āφāϗ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇āϰ āĻŽāϤ⧋āχ, āϝāĻ–āύ āφāĻĒāύāĻŋ kg āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāϟ āĻ•āϰāĻŦ⧇āύ, āϤāĻ–āύ āφāĻĒāύāĻŋ āĻāĻ•āχ āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϏāĻžāĻœā§‡āĻļāύ āĻĒāĻžāĻŦ⧇āύ āϝāĻž āφāĻĒāύāĻŋ āĻāϰ āϜāĻ¨ā§āϝ āĻĒ⧇āϤ⧇āύāĨ¤ kubectl get.

āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇, āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϝ⧇āϕ⧋āύ⧋ āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāχāĻ­āĻžāĻŦ⧇ complete-alias āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āϏ⧁āϤāϰāĻžāĻ‚, āϏāĻŽāĻ¸ā§āϤ kubectl āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋāϰ āϜāĻ¨ā§āϝ āωāĻĒāϰ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϕ⧋āĻĄ āĻ¸ā§āύāĻŋāĻĒ⧇āϟāϟāĻŋ āĻ āĻŋāĻ• āϤāĻžāχ āĻ•āϰ⧇, āĻāχ āϧāϰ⧇ āύāĻŋāϝāĻŧ⧇ āϝ⧇ āφāĻĒāύāĻŋ kubectl-aliases āϏ⧇āϟ āĻ•āϰ⧇āϛ⧇āύāĨ¤ ~/.kubectl-aliases:

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

āĻāχ āϕ⧋āĻĄāϟāĻŋ āφāĻĒāύāĻžāϰ āĻāĻ–āĻžāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ ~/.bashrcāĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻļ⧇āϞāϟāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰ⧁āύ, āĻāĻŦāĻ‚ āϏāĻŽāĻ¸ā§āϤ ā§Žā§Ļā§ĻāϟāĻŋ kubectl āĻ…ā§āϝāĻžāϞāĻŋāϝāĻŧāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āωāĻĒāϞāĻŦā§āϧ āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇āĨ¤

ā§Ŧ. āĻĒā§āϞāĻžāĻ—āχāύ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ kubectl-āĻāϰ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ

āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ 1.12, kubectl āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻĒā§āϞāĻžāĻ—āχāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻāϰ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤

āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻĒāϰāĻŋāϚāĻŋāϤ āĻšāύ āĻ—āĻŋāϟ āĻĒā§āϞāĻžāĻ—āχāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϤāĻžāĻšāϞ⧇ kubectl āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞ⧋āĻ“ āĻāĻ•āχ āύ⧀āϤāĻŋāϰ āĻ“āĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϤ⧈āϰāĻŋāĨ¤

āĻāχ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇ āφāĻŽāϰāĻž āφāϞ⧋āϚāύāĻž āĻ•āϰāĻŦ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĒā§āϞāĻžāĻ—āχāύ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ, āϏ⧇āϗ⧁āϞ⧋ āϕ⧋āĻĨāĻžāϝāĻŧ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āύāĻŋāĻœā§‡āϰ āĻĒā§āϞāĻžāĻ—āχāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāϝāĻŧāĨ¤

āĻĒā§āϞāĻžāĻ—āχāύ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

Kubectl āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ, āϝ⧇āϗ⧁āϞāĻŋāϰ āύāĻžāĻŽ āĻĻ⧇āĻ–āϤ⧇ āĻāχāϰāĻ•āĻŽ āĻšāϝāĻŧ kubectl-x. āωāĻĒāϏāĻ°ā§āĻ— kubectl- āĻāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻāĻŦāĻ‚ āĻāϰ āĻĒāϰ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ kubectl āϏāĻžāĻŦāĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϞāĻžāĻ—āχāύāϟāĻŋ āĻ•āϞ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āĻŦ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻšā§āϝāĻžāϞ⧋ āĻĒā§āϞāĻžāĻ—āχāύāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāĻŦ⧇ āϝāĻžāϰ āύāĻžāĻŽ kubectl-hello.

āĻĒā§āϞāĻžāĻ—āχāύāϟāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĢāĻžāχāϞāϟāĻŋ āĻ•āĻĒāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ kubectl-x āφāĻĒāύāĻžāϰ PATH āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āϝ⧇āϕ⧋āύ⧋ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻ•āϰ⧁āύ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ chmod +xāĻāϰ āĻ āĻŋāĻ• āĻĒāϰ⧇āχ āφāĻĒāύāĻŋ āĻĒā§āϞāĻžāĻ—āχāύāϟāĻŋ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻ­āĻžāĻŦ⧇: kubectl x.

āφāĻĒāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϞāĻžāĻ—āχāύ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āφāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

$ kubectl plugin list

āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϏāϤāĻ°ā§āĻ•āĻŦāĻžāĻ°ā§āϤāĻžāĻ“ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇, āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻāĻ•āχ āύāĻžāĻŽā§‡āϰ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϞāĻžāĻ—āχāύ āĻĨāĻžāϕ⧇, āĻ…āĻĨāĻŦāĻž āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϞāĻžāĻ—āχāύ āĻĢāĻžāχāϞāϟāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āύāĻž āĻšāϝāĻŧāĨ¤

Krew āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§āϞāĻžāĻ—āχāύ āĻ–ā§‹āρāϜāĻž āĻāĻŦāĻ‚ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž

āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĒā§āϝāĻžāϕ⧇āĻœā§‡āϰ āĻŽāϤ⧋āχ Kubectl āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞ⧋ āϏāĻšāĻœā§‡ āĻļ⧇āϝāĻŧāĻžāϰ āĻ“ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āĻ¨ā§āϝāϰāĻž āϝ⧇ āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞ⧋ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧇āϛ⧇, āϏ⧇āϗ⧁āϞ⧋ āϕ⧋āĻĨāĻžāϝāĻŧ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇?

āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻ•ā§āϰ⧁ āĻāϰ āϞāĻ•ā§āĻˇā§āϝ āĻšāϞ⧋ kubectl āĻĒā§āϞāĻžāĻ—āχāύ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž, āĻ–ā§‹āρāϜāĻž, āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻŽāĻ¨ā§āĻŦāĻŋāϤ āϏāĻŽāĻžāϧāĻžāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻžāĨ¤ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ āύāĻŋāĻœā§‡āϕ⧇ "kubectl āĻĒā§āϞāĻžāĻ—āχāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ" āĻŦāϞ⧇ āĻ…āĻ­āĻŋāĻšāĻŋāϤ āĻ•āϰ⧇ (Krew āĻāϰ āĻ…āύ⧁āϰ⧂āĻĒ)āĨ¤ āĻĢāĻ¨ā§āĻĻāĻŋ āφāρāϟāĻž).

Krew āĻšāϞ⧋ kubectl āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āϝāĻž āφāĻĒāύāĻŋ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ“ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ Krew āύāĻŋāĻœā§‡āĻ“ āĻāĻ•āϟāĻŋ kubectl āĻĒā§āϞāĻžāĻ—āχāύāĨ¤

āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋, Krew āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āĻŽā§‚āϞāϤ āĻ…āĻ¨ā§āϝ āϝ⧇āϕ⧋āύ⧋ kubectl āĻĒā§āϞāĻžāĻ—āχāύ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āĻŽāϤ⧋āχāĨ¤ āφāĻĒāύāĻŋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ āĻāĻ–āĻžāύ⧇ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻ—āĻŋāϟāĻšāĻžāĻŦ āĻĒ⧃āĻˇā§āĻ āĻž.

āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ•ā§āϰ⧁ āĻĻāϞāϗ⧁āϞ⧋:

# ĐŸĐžĐ¸ŅĐē в ҁĐŋĐ¸ŅĐēĐĩ ĐŋĐģĐ°ĐŗĐ¸ĐŊОв
$ 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 āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ, āϝāĻž āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āϤāĻžāϰ āϤāĻžāϞāĻŋāĻ•āĻž āϏāĻŦ āĻŽāĻŋāϞāĻŋāϝāĻŧ⧇ āĻĒā§āϰāĻžāϝāĻŧ ā§Šā§ĻāϟāĻŋāϰ āĻŽāϤ⧋ āĻĒā§āϞāĻžāĻ—āχāύ āφāϛ⧇āĨ¤ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϟāĻŋ āϖ⧁āρāĻœā§‡ āύāĻž āĻĒ⧇āϞ⧇, āφāĻĒāύāĻŋ āĻ—āĻŋāϟāĻšāĻžāĻŦ⧇āϰ āĻŽāϤ⧋ āĻ…āĻ¨ā§āϝ āϕ⧋āĻĨāĻžāĻ“ āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞ⧋ āϖ⧁āρāĻœā§‡ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āφāĻŽāĻŋ āĻ—āĻŋāϟāĻšāĻžāĻŦ āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āĻĻ⧇āĻ–āĻžāϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤ kubectl-pluginsāϏ⧇āĻ–āĻžāύ⧇ āφāĻĒāύāĻŋ āϝāĻžāϚāĻžāχ āĻ•āϰ⧇ āĻĻ⧇āĻ–āĻžāϰ āĻŽāϤ⧋ āĻ•āϝāĻŧ⧇āĻ• āĻĄāϜāύ āĻĒā§āϞāĻžāĻ—āχāύ āϖ⧁āρāĻœā§‡ āĻĒāĻžāĻŦ⧇āύāĨ¤

āφāĻĒāύāĻžāϰ āύāĻŋāĻœā§‡āϰ āĻĒā§āϞāĻžāĻ—āχāύ āϞ⧇āĻ–āĻž

āφāĻĒāύāĻŋ āύāĻŋāĻœā§‡āχ āĻĒāĻžāϰ⧇āύ āĻĒā§āϞāĻžāĻ—āχāύ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻāϟāĻž āĻ•āĻ āĻŋāύ āύāĻžāĨ¤ āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻž āφāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•āĻžāϜāϟāĻŋ āĻ•āϰāĻŦ⧇, āĻāϟāĻŋāϰ āύāĻžāĻŽ āĻĻāĻŋāύ āϝ⧇āĻŽāύ kubectl-x āĻāĻŦāĻ‚ āωāĻĒāϰ⧇ āĻŦāĻ°ā§āĻŖāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύāĨ¤

āĻĢāĻžāχāϞāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāĻļ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ, āĻāĻ•āϟāĻŋ āĻĒāĻžāχāĻĨāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ, āĻŦāĻž āĻāĻ•āϟāĻŋ āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰāĻž āĻ—ā§‹ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻšāϤ⧇ āĻĒāĻžāĻ°ā§‡â€”āϤāĻžāϤ⧇ āĻ•āĻŋāϛ⧁ āϝāĻžāϝāĻŧ āφāϏ⧇ āύāĻžāĨ¤ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āĻļāĻ°ā§āϤ āĻšāϞ⧋, āĻāϟāĻŋ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĻā§āĻŦāĻžāϰāĻž āϏāϰāĻžāϏāϰāĻŋ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāĻŦ⧇āĨ¤

āϚāϞ⧁āύ āĻāĻ–āύ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĒā§āϞāĻžāĻ—āχāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋāĨ¤ āφāϗ⧇āϰ āĻ…āĻ‚āĻļ⧇, āφāĻĒāύāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāĻĄā§‡āϰ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϗ⧁āϞ⧋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ 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 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ āϤāĻŦ⧇ āφāĻĒāύāĻŋāĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϏāĻŋāĻāϞāφāχ-āϰāĻžāύāϟāĻžāχāĻŽ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ, āϝāĻž āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ kubectl āĻĒā§āϞāĻžāĻ—āχāύ āϞ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύāĨ¤

āφāĻĒāύāĻžāϰ āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻŦ⧇āύ

āφāĻĒāύāĻžāϰ āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞ⧋ āϝāĻĻāĻŋ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ āĻ•āĻžāĻœā§‡ āϞāĻžāĻ—āϤ⧇ āĻĒāĻžāϰ⧇ āĻŦāϞ⧇ āĻŽāύ⧇ āĻ•āϰ⧇āύ, āϤāĻŦ⧇ āύāĻŋāĻ°ā§āĻĻā§āĻŦāĻŋāϧāĻžāϝāĻŧ āϏ⧇āϗ⧁āϞ⧋ āĻ—āĻŋāϟāĻšāĻžāĻŦ⧇ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧁āύāĨ¤ āϟāĻĒāĻŋāϕ⧇ āϏ⧇āϗ⧁āϞ⧋ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āϭ⧁āϞāĻŦ⧇āύ āύāĻžāĨ¤ kubectl-plugins.

āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϞāĻžāĻ—āχāύ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āύ⧁āϰ⧋āϧāĻ“ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻ•ā§āϰ⧁ āϤāĻžāϞāĻŋāĻ•āĻžāĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻžāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ āϰāϝāĻŧ⧇āϛ⧇ GitHub āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ.

āφāĻĻ⧇āĻļ āϏāĻŽāĻžāĻĒā§āϤāĻŋ

āĻĒā§āϞāĻžāĻ—āχāύāϗ⧁āϞ⧋āϤ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āĻ…āĻŸā§‹āĻ•āĻŽāĻĒā§āϞāĻŋāĻļāύ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇ āύāĻžāĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋, āφāĻĒāύāĻžāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āϞāĻžāĻ—āχāύ⧇āϰ āύāĻžāĻŽ āĻāĻŦāĻ‚ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āύāĻžāĻŽāϗ⧁āϞ⧋ āϞāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻ—āĻŋāϟāĻšāĻžāĻŦ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϤ⧇ āĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ kubectl āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ–ā§‹āϞāĻž āĻ…āύ⧁āϰ⧋āϧāϏ⧁āϤāϰāĻžāĻ‚, āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇ āϕ⧋āύ⧋ āĻāĻ• āϏāĻŽāϝāĻŧ⧇ āĻāχ āĻĢāĻŋāϚāĻžāϰāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻļ⧁āĻ­āĻ•āĻžāĻŽāύāĻž!!!

āϟāĻĒāĻŋāĻ• āφāϰ āĻ•āĻŋ āĻĒāĻĄāĻŧāĻž:

  1. āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ⧇ āĻ…āĻŸā§‹āĻ¸ā§āϕ⧇āϞāĻŋāĻ‚āϝāĻŧ⧇āϰ āϤāĻŋāύāϟāĻŋ āĻ¸ā§āϤāϰ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āϏ⧇āϗ⧁āϞāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧ.
  2. āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āϏāĻš āϜāϞāĻĻāĻ¸ā§āϝ⧁āϤāĻžāϰ āĻšā§‡āϤāύāĻžāϝāĻŧ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ.
  3. āĻŸā§‡āϞāĻŋāĻ—ā§āϰāĻžāĻŽā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āĻšā§āϝāĻžāύ⧇āϞ āφāϰāĻžāωāĻ¨ā§āĻĄ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ.

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster