K8S系列(四)——常用命令汇总
【前言】
K8S虽然可以通过dashboard等图形化界面去管理,但是一些常用命令我们还是要记下。为了方便查看,命令按照资源类型的各种操作命令来分类,部分命令可能会存在重复情况。本文不定期更新
【K8S命令自动补全】
#默认情况下,K8S命令不会自动补全,需要手动配置。配置后kubectl后tab自动列出可用参数。待验证
yum -y install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
【集群管理】
#查看集群状态信息
kubectl cluster-info
查看所有node节点,后面还可以跟--all-namespaces指定所有命名空间(也可以直接-A指定所有命名空间)或者-n指定命名空间
kubectl get node
#清空node以待维护
kubectl drain my-node
#标记某node不可调度/恢复调度
kubectl cordon/uncordon my-node
#查看集群事件
kubectl get events
【日志查看】
#方法1,kubectl logs,注意还需要加上-n命名空间,否则会报错
kubectl logs pods/podsname kube-flannel
#方法2,kubectl describe,也要加上命名空间,还可以细致到指定时间,如kubectl logs --since=1h nginx查看近一个小时内日志
kubectl describe pods/kube-flannel-ds-6w5z5 --namespace kube-flannel
#方法3,查看系统级日志信息
tail -f /var/log/messages
#方法4,主要是用来查看服务启动情况日志
journalctl -u kubelet |tail
【标签管理】
#查看标签
kubectl get nodes --show-labels
#打标签
kubectl label nodes apm-docker001 zookeeper-node=apm-docker001
#删除标签名为label-name的所有 pod 和服务
kubectl delete pods,services -l name=<label-name>
【资源限制】
#指定资源使用的CPU和内存大小
kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi
【镜像更新】
#将deployment中的nginx容器镜像设置为“nginx:1.9.1”
kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
【弹性伸缩】
#指定增加副本数量
kubectl scale --replicas=3 rs/foo
【命令空间/名称空间】
#创建test名称空间
kubectl create namespace test
#查看集群命名空间
kubectl get ns
#删除指定命名空间的deployment
kubectl delete deployment nginx -n namespace
【容器交互】
#进入交互模式
kubectl exec -ti <pod-name> /bin/bash
#不进入容器运行命令
kubectl exec <pod-name> date
【资源缩写查看】
K8S中有很多缩写,例如rc,svc,ns等,如果我们忘记了某个缩写的含义,或者希望用缩写代替某些长长的名称,那么这个命令会对你有帮助
#查看资源缩写
kubectl api-resources
【资源导出】
#把podA的配置导出为yaml格式
kubectl get pods podA -n NAMEAPSCE-A -o yaml --export> padA.yaml
【服务管理】
#查看所有service服务
kubectl get service
【Deployment管理】
#查看所有deploymen
kubectl get deployment
【Pod管理】
#查看资源
kubectl get pod --all-namespaces
【YML文件】
#通过yml文件创建pod,apply可以重复执行,create不行
kubectl apply -f ymlfilename
kubectl create -f ymlfilename
#通过yml文件删除pod
kubectl delete -f yml文件