常用 kubectl 指令操作示例


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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM