Kubernetes认证考试自学系列 | pod的基本操作

书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》

一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:Kubernetes认证考试自学系列 | 汇总_COCOgsta的博客-CSDN博客


在容器中执行命令的语法如下。

kubectl exec pod 名字 -- 命令
复制代码

步骤1:查看pod1里/usr/share/nginx/html里的内容。

[root@vms10 pod]# kubectl exec pod1 -- ls /usr/share/nginx/html
50x.html
index.html
[root@vms10 pod]#
复制代码

也可以让容器和物理机之间互拷文件,物理机拷贝文件到容器的用法如下。

kubectl cp /path1/file1 pod:/path2/:把物理机里文件的/path1/file1拷贝到pod的/path2里。

也可以把容器里的东西拷贝到物理机,这里要注意拷贝的是目录还是文件。

Kubectl cp pod:/path2/ /path1/:把容器里目录/path2/里的东西拷贝到物理机的/path1里。

如果从容器里拷贝的是文件而不是目录的话,则需要在物理机里指定文件名。

kubectl cp pod:/path2/file2 /path1/file2:把容器里的文件/path2/file2拷贝到物理机的目录/path1里。

步骤2:把物理机的文件/etc/hosts拷贝到pod1里。

[root@vms10 pod]# kubectl cp /etc/hosts pod1:/usr/share/nginx/html 
[root@vms10 pod]# kubectl exec pod1 -- ls/usr/share/nginx/html
50x.html
hosts
index.html
[root@vms10 pod]#
复制代码

步骤3:把pod里的东西拷贝到物理机。

[root@vms10 pod]# kubectl cp pod1:/usr/share/nginx/html/ /opt
tar: Removing leading `/' from member names
[root@vms10 pod]# ls /opt/
50x.html  cni  hosts  index.html  rh
[root@vms10 pod]#
复制代码

步骤4:进入pod里并获取bash。

[root@vms10 pod]# kubectl exec -it pod1 -- bash
root@pod1:/#
root@pod1:/# exit 
exit
[root@vms10 pod]#
复制代码

步骤5:如果pod里有多个容器的话,默认是进入第一个容器里。

[root@vms10 pod]# kubectl exec -it pod2 --bash
Defaulting container name to c1.
Use 'kubectl describe pod/pod2 -n default' to see all of the containers in this pod.
root@pod2:/# exit 
exit
[root@vms10 pod]#
复制代码

步骤6:如果想进入第二个容器里的话,用-c指定容器名。

[root@vms10 pod]# kubectl exec -it pod2 -c c2 -- bash 
root@pod2:/# exit 
exit
[root@vms10 pod]#
复制代码

注意:从前面的yaml文件可知,名字为pod2的pod里有两个容器,分别是c1和c2。

步骤7:pod的具体属性可以通过describe查看。

[root@vms10 pod]# kubectl describe pod pod2
Name:          pod2
Namespace:    default 
Priority:        0
Node:         vms12.rhce.cc/192.168.26.12
... 输出 ...
Normal Started     2s (x2 over 16m)  kubelet, vms12.rhce.cc Started container c1
[root@vms10 pod]#
复制代码

步骤8:查看pod里的输出。

[root@vms10 pod]# kubectl logs pod1
[root@vms10 pod]#
复制代码

步骤9:如果一个pod里有多个容器,需要使用-c指定查看哪个容器的输出。

[root@vms10 pod]# kubectl logs pod2
error: a container name must be specifed for pod pod2, choose one of: [c1 c2]
[root@vms10 pod]#
[root@vms10 pod]# kubectl logs pod2 -c c1
aa
[root@vms10 pod]#
复制代码

步骤10:删除这两个pod。

[root@vms10 pod]# kubectl delete pod pod1
pod "pod1" deleted 
[root@vms10 pod]# kubectl delete -f pod2.yaml 
pod "pod2" deleted 
[root@vms10 pod]#

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/130593827