kubectl是用来管理Kubernetes集群的命令行工具。云君在本文中整理了一些语法和操作注意事项,并收集了一些日常工作中常用的kubectl命令,希望能帮助你更快的记忆常用命令。
kubectl默认在“$HOME/.kube”目录中查找一个名为config的配置文件。你可以通过设置“KUBECONFIG”环境变量或设置“--kubeconfig”参数来指定其它kubeconfig文件。kubectl会使用这个kubeconfig中的apiserver地址与认证信息去从kubernetes接口中获取集群信息与操作集群。
[1] kubectl命令速记
下面将kubectl常用命令贴出来,供大家参考和学习:
高清图片来源:
https://cloudnativer.github.io/docs/k8skubectl.pdf
[2] 与docker命令对比
大家在接触kubectl命令之前,应该也接触过docker,其实两者的命令具备很多相似之处,下面云君来罗列一下它们的对比关系,方便你更快的记忆。
操作 | kubectl命令 | docker命令 |
查看软件版本 | kubectl version | docker version |
查看运行环境信息 | kubectl cluster-info | docker info |
运行容器 | kubectl run --image=nginx nginx-app --port=80 -- env="DOMAIN=cluster" kubectl expose deployment nginx-app --port=80 --name=nginx-http | docker run -d --restart=always -e DOMAIN=cluster --name nginx-app -p 80:80 nginx |
查看运行的容器 | kubectl get pods kubectl get deployment kubectl get servic | docker ps |
交互式进入容器 | kubectl exec -it <容器名> -- /bin/bash | docker exec -it <容器 ID/NAME> /bin/bash |
查看容器日志 | kubectl logs -f <容器名> | docker logs -f <容器 ID/NAME> |
停止或删除容器 | kubectl delete deployment <Deployment 名称> kubectl delete service <Service 名称> | docker stop <容器 ID/NAME> docker rm <容器 ID/NAME> |
[3] kubectl 语法说明
kubectl可以使用以下语法在终端窗口执行命令:
kubectl [command] [TYPE] [NAME] [flags]
其中 command
、TYPE
、NAME
和 flags
分别是:
-
command
:指定要对一个或多个资源执行的操作,例如create
、get
、describe
、delete
。 -
TYPE
:指定资源类型。资源类型不区分大小写, 可以指定单数、复数或缩写形式。例如,以下命令输出相同的结果:kubectl get pod pod1 kubectl get pods pod1 kubectl get po pod1
-
NAME
:指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息kubectl get pods
。在对多个资源执行操作时,你可以按类型和名称指定每个资源,或指定一个或多个文件:
-
使用 YAML 而不是 JSON 因为 YAML 更容易使用,特别是用于配置文件时。例子:
kubectl get -f ./pod.yaml
-
要对所有类型相同的资源进行分组,请执行以下操作:
TYPE1 name1 name2 name<#>
。例子:
kubectl get pod example-pod1 example-pod2
-
分别指定多个资源类型:
TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>
。例子:
kubectl get pod/example-pod1 replicationcontroller/example-rc1
-
要按类型和名称指定资源:
-
用一个或多个文件指定资源:
-f file1 -f file2 -f file<#>
-
-
flags
: 指定可选的参数。例如,可以使用-s
或-server
参数指定 Kubernetes API 服务器的地址和端口。
有关kubectl命令的详细信息,包括所有受支持的参数和子命令, 你可以参阅 kubectl官方的文档,云君这里就不再赘述。希望本文整理的资料对你的工作或学习有帮助。
参考文档:
-
https://kubernetes.io/zh/docs/reference/kubectl/kubectl
-
https://cloudnativer.github.io/docs/k8skubectl.pdf
-
https://github.com/cloudnativer/kube-install
-
https://kubernetes.io/docs/reference/kubectl/overview