状态查询
#查看集群信息
kubectl cluster-info
#以本地服务部署的组件可以用以下命令查看
systemctl status kube-apiserver
systemctl status kubelet
systemctl status kube-proxy
systemctl status kube-scheduler
systemctl status kube-controller-manager
systemctl status docker
node相关
查看namespaces
kubectl get ns
为节点增加lable
kubectl label nodes 192.168.2.140 env=prod
查看节点和lable
kubectl get nodes --show-labels
查看状态
kubectl get componentstatuses
kubectl get cs
Node的隔离
kubectl cordon k8s-node1
Node的恢复
kubectl uncordon k8s-node1
#查询
查看所有nodes节点
kubectl get nodes
查看一个node
kubectl describe nodes k8s-m1
通过yml文件查询
kubectl get -f *.yml
endpoints端
kubectl get ep
pod相关
查看指定空间kube-system
的pods
kubectl get po -n kube-system
查看所有空间的
kubectl get po -o wide -A
通过lable查询
kubectl get pods -l app=nginx -o yaml
当我们发现一个pod迟迟无法创建时,可以使用describe来查看详细信息。
kubectl describe pod xxx
删除所有pods
kubectl delete pods --all
删除所有包含某个lable的pod和serivce
kubectl delete pods,services -l name=<lable-name>
其他的写法
kubectl get pod -o wide --namespace=kube-system
svc相关
查看svc
kubectl get svc -A
其他写法
kubectl get services --all-namespaces
强制删除部署
kubectl delete deployment zk --force
删除rc(rs)
kubectl delete rs --all && kubectl delete rc --all
强制删除Terminating状态的pod
kubectl delete deployment zk-2 --grace-period=0 --force
滚动
回滚
kubectl rollout undo deployment nginx
查看滚动升级记录
kubectl rollout history deployment {名称}
查看日志
查看指定镜像的日志
kubectl logs -f *** -n kube-system
kubectl logs --tail=10 nginx
#pod中有多个容器指定查看某个容器的日志
kubectl logs pod_name -c container_name -n kube-system
扩展副本
kubectl scale rc nginx --replicas=3
kubectl scale rc nginx --replicas=1
kubectl scale --replicas=3 -f nginx.yml
启动转发(端口默认8001)
nohup kubectl proxy >/dev/null 2>&1 &
进入镜像
kubectl exec -it pod_name -n kube-system – /bin/bash
kubectl exec -it pod_name -n kube-system – /bin/sh
#注意不是所有的容器都有终端可以进入,要根据容器具体情况使用
创建和删除
kubectl create -f **.yaml
kubectl delete -f **.yaml
#创建和删除某个目录下的所有yml
kubectl create -f ./
kubectl delete -f ./
查看指定pods的环境变量
kubectl exec pod_name env
判断dns解析是否正常(注意集群dns的实际地址)
dig -t A kubernetes.default.svc.cluster.local @10.96.0.10
kubectl run
#启动nginx实例,默认是创建在default名称空间
kubectl run nginx --image=nginx
#创建到指定的kube-system空间中
kubectl run nginx --image=nginx:1.20.1 --replicas=3 -l name=nginx -n kube-system
#启动hazelcast实例,暴露容器端口 8080
kubectl run nginx–image=nginx–port=8080
#启动nginx实例,设置副本数3
kubectl run nginx --image=nginx --replicas=3
#启动一个名为busybox的实例,镜像busybox,并且进入容器内
kubectl run -i -t busybox --image=busybox --restart=Never
kubectl expose命令
#为deployments的nginx创建service,并通过Service的8080端口转发至容器的80端口上。
kubectl expose rc nginx --port=8080 --target-port=80
#由“nginx-controller.yml”中指定的type和name标识的RC创建Service,并通过Service的8080端口转发至容器的80端口上。
kubectl expose -f nginx-controller.yml --port=8080 --target-port=80
#暴露指定空间中的资源,例如下面指定暴露kube-system中的nginx资源暴露service名称为nginx-service暴露的端口是80,容器的端口也是80(target-port)。
kubectl expose deployments nginx --port=80 --protocol=TCP --target-port=80 --name=nginx-service -n kube-system
kubectl scale
#将deployments副本控制器中名为nginx的pod副本数设置为3。
kubectl scale --replicas=3 deployments nginx -n kube-system
#将由“nginx.yaml”配置文件中指定的资源对象和名称标识的Pod资源副本设为3。
kubectl scale --replicas=3 -f nginx.yaml
#如果当前副本数为2,则将其扩展至3。
kubectl scale --current-replicas=2 --replicas=3 deployment/nginx
更多关于kubernetes的知识分享,请前往博客主页。编写过程中,难免出现差错,敬请指出