kubernetes常用命令

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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
node:
查看服务器节点 kubectl get nodes

查看服务器节点详情 kubectl get nodes -o wide

节点打标签 kubectl label nodes <节点名称> labelName=<标签名称>

查看节点标签 kubectl get node --show-labels

删除节点标签 kubectl label node <节点名称> labelName-

pod:
查看pod节点 kubectl get pod

查看pod节点详情 kubectl get pod -o wide

查看所有名称空间下的pod kubectl get pod --all-namespaces

根据yaml文件创建pod kubectl apply -f <文件名称>

根据yaml文件删除pod kubectl delete -f <文件名称>

删除pod节点 kubectl delete pod <pod名称> -n <名称空间>

查看异常的pod节点 kubectl get pods -n <名称空间> | grep -v Running

查看异常pod节点的日志 kubectl describe pod <pod名称> -n <名称空间>

svc:
查看服务 kubectl get svc

查看服务详情 kubectl get svc -o wide

查看所有名称空间下的服务 kubectl get svc --all-namespaces
-------
查看所有namespace的pods运行情况 kubectl get pods --all-namespaces

查看具体pods kubectl get pods <pod名字> --namespace=kube-system

查看pods具体信息 kubectl get pods -o wide <pod名字> --namespace=kube-system

查看集群健康状态 kubectl get cs

获取所有deployment kubectl get deployment --all-namespaces

查看kube-system namespace下面的pod/svc/deployment kubectl get pod /svc/deployment -n kube-system

列出该 namespace 中的所有 pod 包括未初始化的 kubectl get pods --include-uninitialized

查看deployment kubectl get deployment <pod名字>

查看rc和servers kubectl get rc,services

查看pods结构信息 kubectl describe pods <pod名字> --namespace=namespace名字

查看pod日志 kubectl logs <pod名字>

查看pod变量 kubectl exec <pod名字> -- printenv | grep <变量名>

集群:

集群健康情况 kubectl get cs

集群核心组件运行情况 kubectl cluster-info

表空间名 kubectl get namespaces

版本 kubectl version

API kubectl api-versions

查看事件 kubectl get events

/获取全部节点 kubectl get nodes

删除节点 kubectl delete node <node名字>

查看所有命名空间下的svc kubectl get svc --all-namespaces

创建资源:

创建资源 kubectl create -f <yaml文件>

创建及更新文件 kubectl apply -f <yaml文件>

创建当前目录下的所有yaml资源 kubectl create -f .

使用多个文件创建资源 kubectl create -f ./<yaml文件> -f ./<yaml文件>

使用目录下的所有清单文件来创建资源 kubectl create -f ./<目录文件>

使用 url 来创建资源 kubectl create -f <url地址>

创建带有终端的pod kubectl run -i --tty busybox --image=busybox

启动一个 nginx 实例 kubectl run nginx --image=nginx

启动多个pod kubectl run mybusybox --image=busybox --replicas=5

获取 pod 和 svc 的文档 kubectl explain pods,svc

----重启kubelet服务 systemctl daemon-reload &&systemctl restart kubelet

滚动更新 pod kubectl rolling-update XXXv1 -f XXXv2

更新资源名称并更新镜像 kubectl rolling-update XXXv1 XXXv2 --image=image:v2

为 nginx RC 创建服务,启用本地 80 端口连接到容器上的 8000 端口
{kubectl expose rc nginx --port=80 --target-port=8000}

更新单容器 pod 的镜像版本(tag)到 v4 kubectl get pod nginx-pod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/'

编辑资源::

编辑svc kubectl edit <svc名>

编辑pod kubectl edit <pod名>

动态伸缩pod::

将foo副本集变成3个 kubectl scale --replicas=3 rs/foo

缩放“foo”中指定的资源 kubectl scale --replicas=1 -f foo.yaml

将deployment/mysql从2个变成3个 kubectl scale --current-replicas=2 --replicas=3 deployment/mysql

label 操作:

增加节点lable值 kubectl label nodes node1 K=V

删除lable值 kubectl label pod <pod名字> role-

修改lable值 kubectl label pod <pod名字> k=v --overwrite

调度配置::

标记 my-node 不可调度 kubectl cordon k8s-node

清空 my-node 以待维护 kubectl drain k8s-node

标记 my-node 可调度 kubectl uncordon k8s-node

显示 my-node 的指标度量 kubectl top node k8s-node

将当前集群状态输出到 stdout kubectl cluster-info dump

将当前集群状态输出到/path/to/cluster-state kubectl cluster-info dump --output-directory=/path/to/cluster-state

如果该键和影响的污点(taint)已存在,则使用指定的值替换 kubectl taint nodes foo dedicated=special-user:NoSchedule

查看kubelet进程启动参数 ps -ef | grep kubelet

查看日志: journalctl -u kubelet -f

导出配置文件 kubectl get <pod名字> -o yaml > xxx.yaml