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