1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
| 1. kubectl version #显示kubectl的版本信息
2. kubectl cluster-info # 显示集群的基本信息
3. kubectl get nodes #显示所有的节点信息
4. kubectl get pods # 显示所有的pods信息
5. kubectl create deployment {name} --image={image} # 创建pods
6. kubectl scale deployment {name} --replicas={num} # 修改pods的数量
7. kubectl describe pod {name} # 显示指定的pod的详细信息
8. kubectl logs {name} # 显示指定pod的日志信息
9. kubectl exec -it {name} -- /bin/bash #进入指定pod的bash终端
10. kubectl delete deployment {name} # 删除pods
11. kubectl edit svc {name} # 编辑svc
12. kubectl logs deploy/{deploy_name} --all-containers #查看deployment下的全部pod日志
13. kubectl get cm -A #查看所有configmaps信息
14. kubectl get sa -A # 查看所有serviceaccounts信息
15. kubectl get ds -A # 查看所有daemonsets信息
16. kubectl get deploy -A. # 查看所有deployments信息
17. kubectl get rs -A # 查看所有replicasets信息
18. kubectl get sts -A. # 查看所有statefulsets信息
19. kubectl get jobs -A # 查看所有jobs信息
20. kubectl get ing -A # 查看所有ingresses信息
21. kubectl get ns # 查看有哪些名称空间
22. kubectl -s https://172.16.1.110:6443 get cs# 查看各组件信息【172.16.1.110为master机器】
23. kubectl get pv # 显示所有的pv信息
24. kubectl get pvc -n {ns} #显示所有的pvc信息
# 创建资源
kubectl create -f xxx.yaml
# 应用资源
kubectl apply -f xxx.yaml
# 应用资源,该目录下的所有 .yaml, .yml, 或 .json 文件都会被使用
kubectl apply -f <directory>
# 创建test名称空间
kubectl create namespace test
# 删除资源
kubectl delete -f xxx.yaml
kubectl delete -f <directory>
# 删除指定的pod
kubectl delete pod podName
# 删除指定名称空间的指定pod
kubectl delete pod -n test podName
# 删除其他资源
kubectl delete svc svcName
kubectl delete deploy deployName
kubectl delete ns nsName
# 强制删除
kubectl delete pod podName -n nsName --grace-period=0 --force
kubectl delete pod podName -n nsName --grace-period=1
kubectl delete pod podName -n nsName --now
# 编辑资源
kubectl edit pod podName
# kubectl label:添加label值
kubectl label nodes k8s-node01 zone=north #为指定节点添加标签
kubectl label nodes k8s-node01 zone- #为指定节点删除标签
kubectl label pod podName -n nsName role-name=test #为指定pod添加标签
kubectl label pod podName -n nsName role-name=dev --overwrite #修改lable标签值
kubectl label pod podName -n nsName role-name- #删除lable标签
1. kubectl create deployment {name} --image={image} --replicas={num} --port={port} #创建deployment
2. kubectl expose deployment {name} --port={port} --target-port={targetport} --type={type} # 创建service
3. kubectl set image deployment/{name} {container}={image}:{tag} # 更新deployment中某个容器的镜像
4. kubectl rollout history deployment/{name} # 显示指定deployment的版本历史
5. kubectl rollout undo deployment/{name} --to-revision=1 # 回滚指定deployment到指定版本
6. kubectl rollout pause deployment/{name} # 暂停指定deployment的升级
7. kubectl rollout resume deployment/{name} # 恢复指定deployment的升级
8. kubectl rollout status deployment/{name} # 显示指定deployment的升级状态
8. kubectl rollout restart deployment/{name} # 热重启deployment
9. kubectl exec -it {name} -- /bin/bash # 在指定pod中进入bash终端
10. kubectl apply -f {filename} # 根据指定的yaml文件部署kubernetes资源
kubectl get endpoints {name} # 显示指定service的后端地址信息
kubectl get svc {name} -o jsonpath='{.spec.selector}' # 显示指定service的标签选择器
kubectl label pods {name} {label}={value} # 给指定pod打上标签
kubectl taint node {name} key=value:taint_effect # 在指定节点上添加taint特性,污点
kubectl drain <NODE_NAME> #将节点设置为不可调度状态,以便于维护和升级该节点,并避免丢失重要的运行数据
kubectl cordon <NODE_NAME> #阻止新的 Pod 调度到特定的节点上,以避免在节点维护期间出现过多负载
kubectl uncordon <NODE_NAME> #允许新的 Pod 调度到指定的节点上,以恢复该节点的正常工作状态。
kubectl debug <pod-name> -c <container-name> -it -- /bin/bash #在指定的 Pod 中的容器中运行一个新的 bash 进程,以便进行调试。
1. kubectl get svc {name} -o jsonpath='{.spec.clusterIP}' # 显示指定service的cluster IP地址
2. kubectl get endpoints {name} # 显示指定service的后端地址信息
3. kubectl get ingress {name} # 显示指定ingress的详细信息
4. kubectl create ingress {name} --rule={host}/{path}=svc:{service_name}:{port} # 创建ingress条目
5. kubectl delete ingress {name} # 删除指定的ingress条目
6. kubectl get svc {name} -o jsonpath='{.spec.type}' # 显示指定service的类型信息
7. kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.podIP}{"\n"}{end}' # 显示所有pods的名称和IP地址信息
8. kubectl exec -it {name} -- nc -z -v {ip} {port} # 在指定pod中使用nc工具测试TCP连接
9. kubectl exec -it {name} -- curl {url} # 在指定pod中使用curl工具测试HTTP连接
10.kubectl get pods -l {label} # 显示所有带有指定label的pods的信息
11. kubectl get pods -o jsonpath='{range .items[?(@.status.phase=="Pending")]}{.metadata.name}{"\t"}{.reason}{"\n"}{end}' # 显示所有处于Pending状态的pods
12. kubectl describe deployment {name} # 显示指定deployment的详细信息
13. kubectl rollout restart deployment {name} # 重启指定deployment
14. kubectl rollout undo deployment {name} # 回滚指定deployment
15. kubectl scale deployment {name} --replicas={num} # 修改指定deployment的pod数量
16. kubectl proxy # 打开kubernetes API服务的代理端口
1. kubectl api-versions # 显示kubernetes API上的所有版本
2. kubectl api-resources # 显示kubernetes API上的所有资源
3. kubectl get crds # 显示集群中所有自定义资源的定义
4. kubectl create -f {filename} # 创建自定义资源对象
5. kubectl get crd {name} # 显示指定自定义资源的定义
1. kubectl logs {name} #显示指定pod的日志信息
2. kubectl logs --tail={num} {name} # 显示指定pod最后几条日志信息
3. kubectl logs -f {name} # 实时显示指定pod的日志信息
4. kubectl logs deploy/{deploy_name} --all-containers #查看deployment下的全部pod日志
5. kubectl top nodes # 显示所有节点的CPU和内存使用情况
6. kubectl top pods # 显示所有pods的CPU和内存使用情况
7. kubectl get events # 显示所有事件信息
8. kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.limits.memory}' # 显示指定pod的内存限制
9.kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.requests.memory}'# 显示指定pod的内存请求
10. kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.requests.cpu}' # 显示指定pod的CPU请求
11. kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.limits.cpu}' # 显示指定pod的CPU限制
12. kubectl get node {name} -o jsonpath='{.status.allocatable.cpu}' # 显示指定节点可用的CPU数量
1. kubectl apply -f {filename} # 使用yaml文件自动创建kubernetes资源
2. kubectl delete -f {filename} # 使用yaml文件自动删除kubernetes资源
3. kubectl create deployment {name} --image={image} --dry-run -o yaml > {filename} # 生成deployment的yaml文件
4. kubectl create service {name} --tcp={port}:{targetport} --dry-run -o yaml > {filename} # 生成service的yaml文件
5. kubectl create secret generic {name} --from-literal=key=value --dry-run -o yaml > {filename} #生成secret的yaml文件
6. kubectl create cronjob [job_name] --image=[image_name] --schedule='\*/1 \* \* \* \*' --restart=OnFailure --dry-run -o yaml > [file_name].yaml #创建一个CronJob实例,并将其定义文件保存到指定的YAML文件中。
7. kubectl annotate <RESOURCE_TYPE> <RESOURCE_NAME> <KEY>=<VALUE> #给指定类型的资源对象添加注释。
|