Kubernetes - คำสั่ง Kubectl

Kubectlควบคุมคลัสเตอร์ Kubernetes เป็นหนึ่งในองค์ประกอบหลักของ Kubernetes ซึ่งทำงานบนเวิร์กสเตชันบนเครื่องใดก็ได้เมื่อการตั้งค่าเสร็จสิ้น มีความสามารถในการจัดการโหนดในคลัสเตอร์

Kubectlคำสั่งใช้เพื่อโต้ตอบและจัดการออบเจ็กต์ Kubernetes และคลัสเตอร์ ในบทนี้เราจะพูดถึงคำสั่งบางคำที่ใช้ใน Kubernetes ผ่านทาง kubectl

kubectl annotate - อัปเดตคำอธิบายประกอบบนทรัพยากร

$kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ...
KEY_N = VAL_N [--resource-version = version]

ตัวอย่างเช่น,

kubectl annotate pods tomcat description = 'my frontend'

kubectl api-versions - พิมพ์ API เวอร์ชันที่รองรับบนคลัสเตอร์

$ kubectl api-version;

kubectl apply - มีความสามารถในการกำหนดค่าทรัพยากรตามไฟล์หรือ stdin

$ kubectl apply –f <filename>

kubectl attach - สิ่งนี้ยึดติดกับคอนเทนเนอร์ที่กำลังทำงานอยู่

$ kubectl attach <pod> –c <container>
$ kubectl attach 123456-7890 -c tomcat-conatiner

kubectl autoscale - ใช้เพื่อปรับขนาดพ็อดอัตโนมัติที่กำหนดไว้เช่น Deployment, Replication Set, Replication Controller

$ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min = MINPODS] --
max = MAXPODS [--cpu-percent = CPU] [flags]
$ kubectl autoscale deployment foo --min = 2 --max = 10

kubectl cluster-info - จะแสดงข้อมูลคลัสเตอร์

$ kubectl cluster-info

kubectl cluster-info dump - ทิ้งข้อมูลที่เกี่ยวข้องเกี่ยวกับคลัสเตอร์สำหรับการดีบักและการวินิจฉัย

$ kubectl cluster-info dump
$ kubectl cluster-info dump --output-directory = /path/to/cluster-state

kubectl config - แก้ไขไฟล์ kubeconfig

$ kubectl config <SUBCOMMAD>
$ kubectl config –-kubeconfig <String of File name>

kubectl config current-context - แสดงบริบทปัจจุบัน

$ kubectl config current-context
#deploys the current context

kubectl config delete-cluster - ลบคลัสเตอร์ที่ระบุจาก kubeconfig

$ kubectl config delete-cluster <Cluster Name>

kubectl config delete-context - ลบบริบทที่ระบุจาก kubeconfig

$ kubectl config delete-context <Context Name>

kubectl config get-clusters - แสดงคลัสเตอร์ที่กำหนดไว้ใน kubeconfig

$ kubectl config get-cluster
$ kubectl config get-cluster <Cluser Name>

kubectl config get-contexts - อธิบายบริบทหนึ่งหรือหลายบริบท

$ kubectl config get-context <Context Name>

kubectl config set-cluster - ตั้งค่ารายการคลัสเตอร์ใน Kubernetes

$ kubectl config set-cluster NAME [--server = server] [--certificateauthority =
path/to/certificate/authority] [--insecure-skip-tls-verify = true]

kubectl config set-context - ตั้งค่ารายการบริบทในจุดเข้าใช้ kubernetes

$ kubectl config set-context NAME [--cluster = cluster_nickname] [--
user = user_nickname] [--namespace = namespace]
$ kubectl config set-context prod –user = vipin-mishra

kubectl config set-credentials - ตั้งค่ารายการผู้ใช้ใน kubeconfig

$ kubectl config set-credentials cluster-admin --username = vipin --
password = uXFGweU9l35qcif

kubectl config set - ตั้งค่าแต่ละค่าในไฟล์ kubeconfig

$ kubectl config set PROPERTY_NAME PROPERTY_VALUE

kubectl config unset - จะยกเลิกการตั้งค่าส่วนประกอบเฉพาะใน kubectl

$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE

kubectl config use-context - ตั้งค่าบริบทปัจจุบันในไฟล์ kubectl

$ kubectl config use-context <Context Name>

kubectl config view

$ kubectl config view
$ kubectl config view –o jsonpath='{.users[?(@.name == "e2e")].user.password}'

kubectl cp - คัดลอกไฟล์และไดเรกทอรีไปยังและจากคอนเทนเนอร์

$ kubectl cp <Files from source> <Files to Destinatiion>
$ kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>

kubectl create- ในการสร้างทรัพยากรตามชื่อไฟล์หรือ stdin ในการดำเนินการนี้ยอมรับรูปแบบ JSON หรือ YAML

$ kubectl create –f <File Name>
$ cat <file name> | kubectl create –f -

ในทำนองเดียวกันเราสามารถสร้างหลายสิ่งตามรายการโดยใช้ไฟล์ create คำสั่งพร้อมกับ kubectl.

  • deployment
  • namespace
  • quota
  • นักเทียบท่าที่เป็นความลับ
  • secret
  • ความลับทั่วไป
  • tls ลับ
  • serviceaccount
  • คลัสเตอร์บริการ
  • โหลดบาลานซ์บริการ
  • ท่าเรือบริการ

kubectl delete - ลบทรัพยากรตามชื่อไฟล์ stdin ทรัพยากรและชื่อ

$ kubectl delete –f ([-f FILENAME] | TYPE [(NAME | -l label | --all)])

kubectl describe- อธิบายทรัพยากรเฉพาะใน kubernetes แสดงรายละเอียดของทรัพยากรหรือกลุ่มของทรัพยากร

$ kubectl describe <type> <type name>
$ kubectl describe pod tomcat

kubectl drain- ใช้เพื่อระบายโหนดเพื่อการบำรุงรักษา เตรียมโหนดสำหรับการบำรุงรักษา การดำเนินการนี้จะทำเครื่องหมายโหนดว่าไม่พร้อมใช้งานดังนั้นจึงไม่ควรกำหนดด้วยคอนเทนเนอร์ใหม่ซึ่งจะถูกสร้างขึ้น

$ kubectl drain tomcat –force

kubectl edit- ใช้เพื่อสิ้นสุดทรัพยากรบนเซิร์ฟเวอร์ สิ่งนี้ช่วยให้แก้ไขทรัพยากรโดยตรงที่สามารถรับผ่านเครื่องมือบรรทัดคำสั่ง

$ kubectl edit <Resource/Name | File Name)
Ex.
$ kubectl edit rc/tomcat

kubectl exec - สิ่งนี้ช่วยในการดำเนินการคำสั่งในคอนเทนเนอร์

$ kubectl exec POD <-c CONTAINER > -- COMMAND < args...>
$ kubectl exec tomcat 123-5-456 date

kubectl expose- ใช้เพื่อแสดงออบเจ็กต์ Kubernetes เช่นพ็อดตัวควบคุมการจำลองและบริการเป็นบริการ Kubernetes ใหม่ สิ่งนี้มีความสามารถในการเปิดเผยผ่านคอนเทนเนอร์ที่กำลังทำงานอยู่หรือจากไฟล์yaml ไฟล์.

$ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol = TCP|UDP]
[--target-port = number-or-name] [--name = name] [--external-ip = external-ip-ofservice]
[--type = type]
$ kubectl expose rc tomcat –-port=80 –target-port = 30000
$ kubectl expose –f tomcat.yaml –port = 80 –target-port =

kubectl get - คำสั่งนี้สามารถดึงข้อมูลบนคลัสเตอร์เกี่ยวกับทรัพยากร Kubernetes ได้

$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...|
go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
(TYPE [NAME | -l label] | TYPE/NAME ...) [flags]

ตัวอย่างเช่น,

$ kubectl get pod <pod name>
$ kubectl get service <Service name>

kubectl logs- ใช้เพื่อรับบันทึกของคอนเทนเนอร์ในฝัก การพิมพ์บันทึกสามารถกำหนดชื่อคอนเทนเนอร์ในพ็อดได้ หาก POD มีเพียงคอนเทนเนอร์เดียวก็ไม่จำเป็นต้องกำหนดชื่อ

$ kubectl logs [-f] [-p] POD [-c CONTAINER]
Example
$ kubectl logs tomcat.
$ kubectl logs –p –c tomcat.8

kubectl port-forward - ใช้เพื่อส่งต่อพอร์ตท้องถิ่นอย่างน้อยหนึ่งพอร์ตไปยังพ็อด

$ kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT
[...[LOCAL_PORT_N:]REMOTE_PORT_N]
$ kubectl port-forward tomcat 3000 4000
$ kubectl port-forward tomcat 3000:5000

kubectl replace - สามารถแทนที่ทรัพยากรด้วยชื่อไฟล์หรือ stdin.

$ kubectl replace -f FILENAME
$ kubectl replace –f tomcat.yml
$ cat tomcat.yml | kubectl replace –f -

kubectl rolling-update- ดำเนินการอัปเดตแบบต่อเนื่องบนตัวควบคุมการจำลองแบบ แทนที่ตัวควบคุมการจำลองที่ระบุด้วยตัวควบคุมการจำลองแบบใหม่โดยการอัพเดต POD ในแต่ละครั้ง

$ kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --
image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
$ kubectl rolling-update frontend-v1 –f freontend-v2.yaml

kubectl rollout - สามารถจัดการการเปิดตัวการใช้งานได้

$ Kubectl rollout <Sub Command>
$ kubectl rollout undo deployment/tomcat

นอกเหนือจากที่กล่าวมาเราสามารถทำงานได้หลายอย่างโดยใช้การเปิดตัวเช่น -

  • ประวัติการเปิดตัว
  • หยุดการเปิดตัวชั่วคราว
  • ประวัติย่อการเปิดตัว
  • สถานะการเปิดตัว
  • ยกเลิกการเปิดตัว

kubectl run - คำสั่ง Run มีความสามารถในการเรียกใช้รูปภาพบนคลัสเตอร์ Kubernetes

$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [--
replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] --
[COMMAND] [args...]
$ kubectl run tomcat --image = tomcat:7.0
$ kubectl run tomcat –-image = tomcat:7.0 –port = 5000

kubectl scale - จะปรับขนาดของ Kubernetes Deployments, ReplicaSet, Replication Controller หรืองาน

$ kubectl scale [--resource-version = version] [--current-replicas = count] --
replicas = COUNT (-f FILENAME | TYPE NAME )
$ kubectl scale –-replica = 3 rs/tomcat
$ kubectl scale –replica = 3 tomcat.yaml

kubectl set image - อัปเดตรูปภาพของเทมเพลตพ็อด

$ kubectl set image (-f FILENAME | TYPE NAME)
CONTAINER_NAME_1 = CONTAINER_IMAGE_1 ... CONTAINER_NAME_N = CONTAINER_IMAGE_N
$ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1
$ kubectl set image deployments, rc tomcat = tomcat6.0 --all

kubectl set resources- ใช้เพื่อกำหนดเนื้อหาของทรัพยากร อัปเดตทรัพยากร / ข้อ จำกัด เกี่ยวกับวัตถุด้วยเทมเพลตพ็อด

$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits = LIMITS & --
requests = REQUESTS]
$ kubectl set resources deployment tomcat -c = tomcat --
limits = cpu = 200m,memory = 512Mi

kubectl top node- แสดงการใช้งาน CPU / หน่วยความจำ / ที่เก็บข้อมูล คำสั่งด้านบนช่วยให้คุณเห็นการใช้ทรัพยากรสำหรับโหนด

$ kubectl top node [node Name]

คำสั่งเดียวกันนี้สามารถใช้กับพ็อดได้เช่นกัน