三、资源的管理命令
1,创建/修改资源
#创建、修改都用它;
kubectl apply -f 01-pod-nginx.yaml
kubectl create -f 01-pod-nginx.yaml #几乎不用;
2,查看资源
[root@k8s231 pod]# kubectl get pods
NAME READY STATUS RESTARTS AGE
m-nginx 0/1 InvalidImageName 0 3m28s
这里发现状态不是running;
#查看pod的详细信息;
[root@k8s231 pod]# kubectl describe pods m-nginx
如果我想知道,pod运行在哪个节点怎么办?
[root@k8s231 pod]# kubectl get pods -o wide
3,删除资源
[root@k8s231 pod]# kubectl delete pods m-nginx
#所有的资源名称,支持简写
[root@k8s231 pod]# kubectl delete po m-nginx
pod “m-nginx” deleted
四、资源清单字段写法查询-explain
[root@k8s231 ~]# kubectl explain pods.metadata
KIND: Pod
VERSION: v1RESOURCE: metadata
…
字段写法释义:
#不能在后面写数据内容,在下级字段写。。。
#可以在后面写字符串;
<[]Object> #(数组对象)后面不能写东西,需要在下级此段写东西,下面的第一个字段需要加“-”
#后面只能加true、false
#对应的是整型,一个整数;
<map[string]string> #go语言的map类型,自定义的键值对(key是字符串,value也是字符串)
五、故障排查初体验describe
1,模拟创建pod错误
[root@k8s231 pod]# vim 02-pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: m-nginx-02
spec:
containers:
- name: c-nginx-02
#故意写错镜像的标签名;
image: nginxx:1.20.1-alpine
创建pod
[root@k8s231 pod]# kubectl apply -f 02-pod-nginx.yaml
pod/m-nginx-02 created
查看pod,发现错误,镜像状态不是running。
[root@k8s231 pod]# kubectl get pods -o wide
2,查看pod的详细信息describe
[root@k8s231 pod]# kubectl describe pods m-nginx-02
根据events信息,可以知道是拉取镜像,没有成功;
发现是资源清单中的image对应的标签写错了;
修改yaml资源清单,重新创建pod;
3,总结排错过程
#1,发现错误报错
kubectl get 资源类型 资源名 # 发现不是running;
#2,查看资源的详细信息
kubectl describe 资源类型 资源名
#3,找到问题所在Events字段下的创建过程信息;
#4,根据问题所在的原因,去解决问题;
写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我