菜单
本页目录

kubectl 常用命令

# 查看资源清单选项解释说明
$ kubectl explain  pod.spec.containers

# 查看资源对象
$ kubectl get pod
	-o wide    # 查看更多的信息,包括 Pod ip、pod 运行的节点
	   yaml	   # 将当前的资源对象输出为 yaml 文件
	   json    # 将当前的资源对象输出为 json 文件
	-w		   # 监听变换,将变化信息输出至前台
	--show-labels		# 查看标签
	-l 		   # 通过标签过滤当前的输出 -l app=nginx
	-n default 			# 指定名字空间,默认即 default
	--all-namespaces == -A    	# 查看所有名字空间中的对象
	
# 删除资源对象
$ kubectl delete 资源类别  对象名称
$ kubectl delete pod pod-demo
$ kubectl delete -f xxx.yaml
	--all   删除当前所有的资源对象
		kubectl delete pod --all 
		
# 实例化资源对象
$ kubectl create -f xxx.yaml/xxx.json 
	yaml   >   kubectl (yaml > json)  >  apiServer
	https://cloudmessage.top/archives/k8s-zai-windowszhong-shi-yong-kubectllian-jie-ji-qun
	
# 查看资源对象的详细信息(事件)    -   此条命令常用于排错
$ kubectl describe  资源类别  对象名称

# 让 pod 内部的容器执行命令
$ kubectl exec -it podName -c cName -- command
	kubectl exec -it pod-demo -c myapp-1 -- /bin/sh
	如果 pod 内部只封装了一个容器,那么 -c 可以省略
	
# 查看容器日志
$ kubectl logs podName -c cName
	kubectl  logs pod-demo -c myapp-1
	-p -c 	# 查看已经停止的容器日志
	-f 		# 持续输出容器日志信息
	--tail=20		# 查看容器最近20条日志
	--since=1h		# 查看容器最近一小时产生的日志
	
# 标签
$ kubectl label 资源类别  对象名称
	kubectl label pod pod-demo  version=v1   # 添加标签
	kubectl label pod pod-demo  app=tomcat --overwrite 	# 修改存在的标签
	
# 调整控制器的副本数量
$ kubectl scale 资源类别  对象名称  --replicas=副本数
	kubectl scale rs rs-demo --replicas=10
	
# 修改资源对象,操作方式同 vim 一致
$ kubectl edit 资源类别  对象名称
	如果,修改完成后保存,但是回退,代表此资源无法修改
	
# 应用资源清单
$ kubectl apply -f xxx.yaml\xxx.json

# 修改控制器的镜像
$ kubectl  set image 资源类别/对象名 容器名=镜像名
	kubectl  set image deployment/nginx-deployment nginx=wangyanglinux/myapp:v2
	
# 滚动跟新相关命令
$ kubectl rollout status deployments nginx-deployment    # 查看当前此次滚动的信息,成功的返回码为 0,可以通过此返回码确认滚动的节点
$ kubectl rollout history deployment/nginx-deployment    # 查看当前滚动的历史记录,注意要想在其中显示版本对应的变化命令,必须在每一个执行命令后加上 --record
$ kubectl rollout undo deployment/nginx-deployment		 # 回滚,默认回滚上一个版本
	--to-revision=2   # 可以使用 --revision  参数指定某个历史版本
$ kubectl rollout pause deployment/nginx-deployment      # 暂停 deployment 的更新
$ kubectl rollout resume deployment/nginx-deployment     # 恢复 deployment 的更新

# 对当前的资源对象进行补丁(更贴合 shell 脚本逻辑)
kubectl patch 资源类别  对象名 -p '{"spec":{"strategy":{"rollingUpdate":{"maxSurge":5,"maxUnavailable":0}}}}'
	spec:
	  strategy:
	    rollingUpdate:
	      maxSurge: 5
	      maxUnavailable: 0