K8S有一系列的管理命令,让我们能在字符界面很好的管理K8s系统
1.系统资源类
#查看系统存储卷pv信息
kubectl get pv --all-namespaces
#查看系统存储卷pvc信息
kubectl get pvc --all-namespaces
#获得ReplicaSet资源
kubectl get rs --all-namespaces
#查看deployments资源
kubectl get deployments --all-namespaces
#获取DaemonSet资源信息
kubectl get DaemonSet --all-namespaces
#获取定时资源信息
kubectl get Cronjob --all-namespaces
#获取有状态pod信息
kubectl get Statefulset --all-namespaces
#查看系统service资源
kubectl get service --all-namespaces
#获取secret信息
kubectl get secret --all-namespaces
#获得configmap信息
kubectl get configmap --all-namespaces
#查看管理员
kubectl get sa
#获得命名空间
kubectl get ns
#查看系统结点
kubectl get nodes -o wide
#查看系统pod数据,-o wide是详细数据
kubectl get pods -o wide
#一直查看pod状态,直到ctrl+c取消
kubectl get pods -w
#查看所有资源
kubectl get all
2.Node,Pod操作类
#示所有pods的标签
kubectl get pods --show-labels
#显示pod的app标签的这个值
kubectl get pods -L app
#显示有app,release标签的pod
kubectl get pods -l app,release --show-labels
#打上标签
kubectl label pods pod_name release=cannary
#覆盖标签
kubectl label pods pod_name release=stable --overwrite
#等值显示,也可以!=
kubectl get pods -l release=cannary,app=myapp
##集合显示,也可以not in
kubectl get pods -l "release in(cannary,release)"
#release不存在的显示
kubectl get pods -l !release
#显示节点标签,并创建一个节点的标签
kubectl get nodes --show-labels
#给node打上标签
kubectl label nodes node_name distype=ssd
3.Deployment操作类
#查看历史版本
kubectl rollout history deployment myapp-deployment
#回滚历史版本
kubectl rollout undo
#回滚到第一个版本
kubectl rollout undo deployment myapp-deployment --to-revision=1
金丝雀更新(灰度更新)
#设置maxSurge:1,maxUnavailable=0
kubectl set image deployment myapp-deploy myapp=ikubernetes/myapp:v3 && kubectl rollout pause deployment myapp-deploy
#如果更新的节点没问题,然后resume继续剩下的更新
kubectl rollout resume deployment myapp-deploy
#监控更新过程
kubectl get pods -l app=myapp -w
kubectl rollout status deployment myapp-deploy
#如果要对有状态应用扩容,直接scale.
kubectl scale sts myapp --replicas=5
#缩容.也可以用上面的
kubectl path sts myapp -p '{"spec":{"replicas":2}}'
calico操作类
#查看workloadendpoints状态
calicoctl get workloadendpoints
#查看节点状态
calicoctl node status
#查看calico是否启用ipip模型
calicoctl get ipPool -o yaml
#查看bgppeer信息
calicoctl get bgppeers
#查看当前有哪些使用中的NetworkPolicy:
calicoctl get policy --all-namespaces
calicoctl get ippool
#查看dev的网络策略
kubectl get netpol -n dev
configmap,secret 类
#获取创建命令的帮助
kubectl create configmap --help
kubectl create configmap nginx-config --from-literal=nginx_port=80 --from-literal=server_name=myapp.ds.com
#查看创建的cm
kubectl get cm
#//查看详细配置。
kubectl describe cm nginx-config
#这样以文件名为key,文件内容为
kubectl create configmap nginx-www --from-file=/tmp/ns.conf 值。
#输出配置
kubectl get cm nginx-www -o yaml
#修改configMap配置
kubectl edit cm nginx-www
#secret创建的帮助
kubectl create secret --help
#配置mysql
kubectl create secret generic mysql-root-passwd --from-literal=password=msd2
kubectl describe secret mysql-root-passwd
#密码可以通过 echo 密码 | base64 -d 反解回来
kubectl get secret mysql-root-passwd -o yaml
#打印pod环境变量名
kubectl exec pod-secrt-1 -- printenv