k8s常用命令

1、查看pod(查看其他资源类型的信息只需要把pod换为svc、deployment、configmap=cm、pv、pvc)信息,-o其他选项,wide显示长信息,yaml显示为yaml格式
1.1 查看pod详细信息
kubectl get pod -o wide

1.2 查看pod信息
kubectl get pod
      READY代表就绪
      STATUS当前容器状态
      RESTARTS重建次数(相当于recreate)

1.3 查看pod的标签
kubectl get pod --show-labels
                          所有

可用于筛选标签:

kubectl get pod -l app
如果pod有key为app的标签就会被筛选出来

1.4 查看所有空间的Pod
kubectl get pod --all-namepaces

kubectl get pod -A
查看所有空间的pod
--all-namepaces=-A

2、进入指定容器
kubectl exec -it pod-demo -c myapp-1 -- /bin/sh
#                资源(pod名) 容器名(如果资源下有多个容器就要加-c指定) --固定格式

3、查看pod里的pod-demo的详细信息
kubectl describe pod pod-demo
        详细信息         pod名
Events事件
RPC协议(用于C/S之间传送数据):远程过程调用

4、查看容器日志
kubectl logs pod-demo -c myapp

格式:
kubectl logs pod名 -c 容器名

###一般不用指定容器,除非一个pod里有多个容器才需要指定容器名

5、获取节点信息
kubectl get node
获取节点信息
NotReady:扁平化网络

可加选项 -o wide显示详细信息

6、如何查看node或pod资源利用率?
kubectl top pod -ncka
#查看cka命名空间的Pod
kubectl top pod
#查看default命名空间的Pod

7、强制修改pod标签
kubectl label pod pod名 app=tomcat --overwrite
# --overwrite强制修改

8、干跑
kubectl create svc clusterip myapp --tcp=80:80 --dry-run -o yaml
clusterip类型
--dry-run测试不是真的运行

9、打补丁
修改configmap配置文件之后cm配置文件更新但是不会触发pod热更新

######切记配置文件只有这样修改才能生效,进入容器修改不了(配置文件是只读状态)

kubectl get cm

#查看condigmap的信息

kubectl edit cm cm的名字

#修改对应的configmap

ConfigMap 更新后滚动更新 Pod
更新 ConfigMap 目前并不会触发相关 Pod 的滚动更新,可以通过修改 pod annotations 的方式强制触发滚动更新

kubectl get deployment

#查看deployment控制器的信息

kubectl patch deployment deployment的名字 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/config": "20221009-10:26" }}}}}'

#打补丁(可修改字段为日期和时间,只要修改日期和时间之后pod会滚动更新)

只要.spec.template.metadata.annotations.version/config 字段发生改变就触发pod更新

这个例子里我们在 .spec.template.metadata.annotations 中添加 version/config,每次通过修改 version/config 来触发滚动更新



!!! 更新 ConfigMap 后:

使用该 ConfigMap 挂载的 Env 不会同步更新

使用该 ConfigMap 挂载的 Volume 中的数据需要一段时间(实测大概10秒)才能同步更新

10、依照yaml文件创建资源和创建失败回退
依照yaml文件创建资源:

kubectl apply -f mysql.yaml

删除依照yaml文件创建的资源:

kubectl delete -f mysql.yaml

如果pod启动失败需要重新创建:

1.查看pod所对应的控制器的名字

kubectl get deployment

2.删除对应的控制器(如果不删除对应的控制器,pod还会重新创建)

kubectl delete deployment deploymeny-name

 

posted @ 2022-11-30 10:44  Leonardo-li  阅读(51)  评论(0编辑  收藏  举报