k8s常用命令
- kubectl get all -n kube-system //查看此命名空间下的全部资源
- kubectl get po -n kube-system //查找指定命名空间的pod,pod名称一般以deployment对应的replicaset名称作为前缀
- kubectl get nodes //查询节点状态信息
- kubectl get po -n A //查询所有命名空间的po信息
- kubectl get ns //查询所有的命名空间
- kubectl get deployments //查看deployment信息
- kubectl get rs -n test //查看 ReplicaSet名称,命名与deploy名称有关
- kubectl get svc -n test //查看service信息
- kubectl get svc -n test -o yaml //查看service信息,通过yaml格式显示
- kubectl delete svc 名字 -n test //删除名称空间test中指定名字的service
- kubectl get endpoints(ep)//查看service的 Endpoint列表信息
- kubectl get configmap -n kube-system //查看configmap信息
- kubectl delete rs +名字 //删除rs
- kubectl label nodes k8s-node2 hello=world //给节点k8s-node2打上标签hello=world
- kubectl label nodes k8s-node2 hello=hello –overwrite //给节点k8s-node2打标签,强制覆盖原有的hello键
- kubectl get node –show-labels=true //展示节点标签
- kubectl label node k8s-node2 hello- //删除标签,hello表示键,注意后面还有一个减号
- kubectl taint nodes k8s-node1 key=value:NoSchedule //为节点k8s-node1添加污点,并设置不调度
- kubectl taint nodes k8s-node1 key=value:NoSchedule- //去除污点
- kubectl taint node k8s-master1 node-role.kubernetes.io/master- //去除节点master的污点设置
- kubectl describe nodes k8s-node1 //查看k8s-node1节点信息,也可看到污点情况
- kubectl create -f nginx.yml –record //创建pod并添加版本历史记录功能
- kubectl set image deploy/nginx-app nginx-app=nginx:v1 //执行滚动更新,其中nginx-app为pod中定义的deploy和pod名字
- kubectl rollout history deploy/nginx-app //查看历史发布版本
- kubectl rollout undo deploy/nginx-app //回滚到更新之前版本
- kubectl rollout undo deploy/nginx-app –to-revision=2 //回滚到指定版本
- kubectl rollout pause deploy/nginx-app //暂停deployment
- kubectl rollout resume deploy/nginx-app //恢复deployment
- kubectl rollout status deploy/nginx-app //查看deploy创建的状态
- kubectl scale deployment nginx-app –replicas=2 //手动扩缩容
- kubectl patch deployment nginx -p ‘{“spec”:{“replicas”:2}}’ //通过patch手动扩容为2个副本,缩容一样
- kubectl cordon master1 //将master1节点标记为不可调度状态
- kubectl uncordon master1 //将master1节点标记为可调度状态
- kubectl drain k8s-node1 –ignore-daemonsets //排除节点,此节点下pod将会转移到其他Node下
- kubectl get ns –show-labels //查看命名空间标签
- kubectl get pod –show-labels //查看pod标签
- kubectl label ns echo project=echo //表示给命名空间echo打上标签project=echo
- kubectl label ns echo project- //表示删除命名空间echo中的标签project
- kubectl delete deploy front-end –cascade=orphan //删除deploy,但是不删除由其控制的pod
- kubectl config get-contexts //查看所有的上下文
- kubectl config current-context //查看当前的上下文
- kubectl config use-context guan@kubernetes //切换上下文
- yamllint file.yaml //检查yaml语法是否错误,需要提前安装yamllint,apt/yum install yamllint
- kubectl api-resources //列出k8s资源信息
- kubectl delete pod podname -n namespace //删除指定命名空间中的pod
- kubectl delete po podname -n namespace –grace-period=0 –force //强制删除pod
- kubectl get po podname -n namespace -o jsonpath={.spec.volumes} | jq //查看pod是否有挂在卷volume
- kubectl explain deployments //查看deployment控制器资源定义清单字段
- kubectl explain pods //查看pods资源定义清单字段
- kubectl explain pods.spec.containers //查看pod资源定义清单字段containers下面的字段
- kubectl get po podname -o yaml > podname.yaml //从现有的pod中导出资源定义清单,修改后即可重新创建pod
- kubectl get pods myapp-pod -o jsonpath={.spec.containers[*].name} //查看pod里业务容器
- kubectl top pod –sort-by=cpu -A //查看cpu使用率占用最高的pod
- kubectl get po -w //动态查看pod,-w参数可以实时的查看内容
- kubectl delete statefulset nginx –cascade=false //非级联删除(只删除statefulset,不删除pod)
- kubectl delete statefulset nginx //级联删除(删除sts同时删除pod,不加参数–cascode就是级联)
- kubectl get svc -l ‘app in (service1,service2)’ –show-labes //列出标签匹配app=service1和app=service2的全部service
- kubectl label svc nginx-service app=service1 –overwrite //将nginx-service修改
- kubectl exec -it nginx -n default — /bin/sh //进入pod内部,如果不指定-n,默认就是default
- kubectl exec -it kube-apiserver-k8s-master01 — kube-apiserver -h |grep ExpandCSIVolumes //在kube-apiserver中执行命令,查看是否开启ExpandCSIVolumes,default为true表示开启
- kubectl exec -it pod — command //在pod中执行命令command
- kubectl autoscale deployment nginx –cpu-percent=10 –min=1 –max=10 //自动扩缩容,当cpu使用率超过10%就增加pod数量,个数最多为10,最少为1
- kubectl delete pod [pod name] –force –grace-period=0 -n [namespace] //强制删除pod
- kubectl drain node1 –delete-local-data –force –ignore-daemonsets //驱逐节点上Pod
- kubectl delete node node01 //删除节点
- kubectl rollout restart deployment hello -n namespace //重启pod
Helm常用命令:
- helm repo update //更新默认仓库的元数据
- helm repo list //列出本地配置的Chart仓库
- helm repo remove //移除指定仓库
- helm search repo etcd //在本地仓库中搜索etcd
- helm search hub etcd //在线搜索Hub中存在的所有仓库中的etcd
- helm show all chart名 //查看某个Chart的详细信息
- helm inspect all chart名 //查看某个Chart的详细信息
- helm pull bitnami/redis //从仓库bitnami中下载redis,此时下载的是最新版
- helm search repo bitnami/redis -l //查看Chart的历史版本
- helm pull bitnami/redis –version 16.11.2 //下载指定版本的redis的Chart
helm国内镜像地址:
- Index of helm-local/v3.13.3 (huaweicloud.com)
- https://mirrors.huaweicloud.com/helm/v3.13.3/
开源k8s管理面板:
- kuboard:个人开源, 地址:https://kuboard.cn/
- kubepi: 飞致云开源,地址:https://github.com/1Panel-dev/KubePi
Kro: 这是一个开源的、基于Kubernetes的项目,允许用户通过简单直观的配置定义自定义Kubernetes API
CI/CD:
- Tekton和ArgoCD配合,Tekton负责CI,ArgoCD负责CD