Kubectl 作為客戶端CLI工具,可以讓用戶通過命令行的方式對kubernetes 集群進行操作。
命令格式:
Kubectl [command] [TYPE] [NAME] [flags]
實例:
1.創建資源對象.
根據yaml配置文件一次性創建service和rc:
# kubectl create -f my-service.yaml -f my-rc.yaml
根據<directory> 目錄下所有.yaml、.yml、.json文件的定義進行創建操作:
# kubectl create -f <directory>
2.查看資源對象
查看所有pod列表:
# kubectl get pod
查看rc和service列表:
# kubectl get rc,service
3.描述資源對象
查看labels
# kubectl get nodes --show-labels
顯示Node的詳細信息:
# kubectl describe nodes <node-name>
顯示pod的詳細信息:
#kubectl describe pods <pod-name>
顯示由RC管理的pod的信息:
#kubectl describe pods <rc-name>
4.刪除資源對象:
基於pod.yaml定義的名稱刪除pod:
#kubectl delete –f pod.yaml
刪除所有包含某個label的pod和service:
#kubectl delete pods,services –l name=<label-name>
刪除所有pod:
#kubectl delete pods --all
5.執行容器的命令
執行pod 的date命令,默認使用pod的第一個容器執行:
#kubectl exec <pod-name> date
指定pod中某個容器執行date命令:
#kubectl exec <pod-name> -c <container-name> date
通過bash獲得pod中某個容器的TTY,相當於登錄容器:
#kubectl exec –it <pod-name> -c <container-name> /bin/bash
6.查看容器的日志
查看容器輸出到stdout的日志
#kubectl logs <pod-name>
跟蹤查看容器的日志,相當於tail –f命令的結果:
#kubectl logs –f <pod-name> -c <container-name>
kubectl label指令: 更新資源對象的Label屬性
Label(標簽)作為用戶可靈活定義的對象屬性,在正在運行的資源對象上,仍然可以隨時通過kubectl label命令對其進行增加、修改、刪除等操作.
1.>給已創建的Pod添加一個標簽 role=backend 其中 frontend-9db27為pod名稱.
[root@k8s-master ~]# kubectl label pod frontend-9db27 role=backend pod "frontend-9db27" labeled
2.>查看該Pod的Label:
[root@k8s-master ~]# kubectl get pods -Lrole NAME READY STATUS RESTARTS AGE ROLE frontend-9db27 1/1 Running 0 21d backend
3.>刪除一個標簽時,只需在命令行最后指定Label的key名並與一個減號相連即可.
[root@k8s-master ~]# kubectl label pod frontend-9db27 role- pod "frontend-9db27" labeled
4.>修改一個Label時,需要加上--overwrite
[root@k8s-master ~]# kubectl label pod frontend-9db27 role=master --overwrite pod "frontend-9db27" labeled