K8s一些命令: 通过yaml文件创建: kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete) kubectl apply -f xxx.yaml (创建+更新,可以重复使用) 通过yaml文件删除: kubectl delete -f xxx.yaml 查看kube-system namespace下面的pod/svc/deployment 等等(-o wide 选项可以查看存在哪个对应的节点) kubectl get pod /svc/deployment -n kube-system 查看所有namespace下面的pod/svc/deployment等等 kubectl get pod/svc/deployment --all-namcpaces 重启pod(无法删除对应的应用,因为存在deployment/rc之类的副本控制器,删除pod也会重新拉起来) kubectl get pod -n kube-system 查看pod描述: kubectl describe pod XXX -n kube-system 查看pod 日志 (如果pod有多个容器需要加-c 容器名) kubectl logs xxx -n kube-system 删除应用(先确定是由说明创建的,再删除对应的kind): kubectl delete deployment xxx -n kube-system 根据label删除: kubectl delete pod -l app=flannel -n kube-system 扩容 kubectl scale deployment spark-worker-deployment --replicas=8 导出配置文件: 导出proxy kubectl get ds -n kube-system -l k8s-app=kube-proxy -o yaml>kube-proxy-ds.yaml 导出kube-dns kubectl get deployment -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-dp.yaml kubectl get services -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-services.yaml 导出所有 configmap kubectl get configmap -n kube-system -o wide -o yaml > configmap.yaml 复杂操作命令: 删除kube-system 下Evicted状态的所有pod: kubectl get pods -n kube-system |grep Evicted| awk '{print $1}'|xargs kubectl delete pod -n kube-system 以下为维护环境相关命令: 重启kubelet服务 systemctl daemon-reload systemctl restart kubelet 修改启动参数 vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 查看集群信息 kubectl cluster-info 查看各组件信息 kubectl get componentstatuses 查看kubelet进程启动参数 ps -ef | grep kubelet 查看日志: journalctl -u kubelet -f 设为不可调度状态: kubectl cordon node1 将pod赶到其他节点: kubectl drain node1 解除不可调度状态 kubectl uncordon node1 master运行pod kubectl taint nodes master.k8s node-role.kubernetes.io/master- master不运行pod kubectl taint nodes master.k8s node-role.kubernetes.io/master=:NoSchedule 获取集群的基本信息 kubectl cluster-info kubectl get nodes kubectl get namespaces kubectl get deployment --all-namespaces kubectl get svc --all-namespaces kubectl get pod kubectl get pod -o wide --all-namespaces kubectl logs podName 创建pod或srv kubectl create -f development.yaml 检查将要运行的 Pod 的资源状况 kubectl describe pod podName 删除 Pod kubectl delete pod podName pod有多少副本 kubectl get rc 扩展 Pod kubectl scale --replicas=3 rc podName 删除 kubectl delete deployment kubernetes-dashboard --namespace=kube-system kubectl delete svc kubernetes-dashboard --namespace=kube-system kubectl delete pod traefik-ingress-controller-2p6x6 --namespace=kube-system kubectl delete -f kubernetes-dashboard.yaml 进入pod kubectl exec -ti podName /bin/bash 命令表 查看类命令: 获取节点相应服务的信息 : kubectl get pods 按selector名来查找pod: kubectl get pod --selector name=redis 查看集群信息: kubectl cluster-info 查看各组件信息: kubectl -s http://localhost:8080 get componentstatuses 或 kubectl get cs 查看pods所在的运行节点: kubectl gkubectl get pods -o yamlet pods -o wide 查看pods定义的详细信息: kubectl get pods -o yaml 查看运行pod的环境变量: kubectl exec pod名 env 查看指定pod的日志: kubectl logs -f pods/heapster-xxxxx -n kube-system 操作类命令: 创建资源: kubectl apply -f 文件名.yaml kubectl create -f 文件名.yaml 重建资源: kubectl replace -f 文件名 [--force] 删除资源: kubectl delete -f 文件名、kubectl delete pod pod名、kubectl delete rc rc名、kubectl delete service service名 kubectl进阶命令操作 kubectl get:获取指定资源的基本信息 kubectl get services kubernetes-dashboard -n kube-system #查看所有service kubectl get deployment kubernetes-dashboard -n kube-system #查看所有发布 kubectl get pods --all-namespaces #查看所有pod kubectl get pods -o wide --all-namespaces #查看所有pod的IP及节点 kubectl get pods -n kube-system | grep dashboard kubectl get nodes -l zone #获取zone的节点 kubectl describe:查看指定资源详细描述信息 kubectl describe service/kubernetes-dashboard --namespace="kube-system" kubectl describe pods/kubernetes-dashboard-349859023-g6q8c --namespace="kube-system" #指定类型查看 kubectl describe pod nginx-772ai #查看pod详细信息 kubectl describe pod livego-589b4f7f76-rkg77 -n livesteam kubectl scale:动态伸缩 kubectl scale rc nginx --replicas=5 # 动态伸缩 kubectl scale deployment redis-slave --replicas=5 #动态伸缩 kubectl scale --replicas=2 -f redis-slave-deployment.yaml #动态伸缩 kubectl exec:进入pod启动的容器 kubectl exec -it redis-master-1033017107-q47hh /bin/bash #进入容器 kubectl label:添加label值 kubectl label nodes node1 zone=north #增加节点lable值 spec.nodeSelector: zone: north #指定pod在哪个节点 kubectl label pod redis-master-1033017107-q47hh role=master #增加lable值 [key]=[value] kubectl label pod redis-master-1033017107-q47hh role- #删除lable值 kubectl label pod redis-master-1033017107-q47hh role=backend --overwrite #修改lable值 kubectl rolling-update:滚动升级 kubectl rolling-update redis-master -f redis-master-controller-v2.yaml #配置文件滚动升级 kubectl rolling-update redis-master --image=redis-master:2.0 #命令升级 kubectl rolling-update redis-master --image=redis-master:1.0 --rollback #pod版本回滚 etcdctl 常用操作 etcdctl cluster-health #检查网络集群健康状态 etcdctl --endpoints=https://192.168.71.221:2379 cluster-health #带有安全认证检查网络集群健康状态 etcdctl member list etcdctl set /k8s/network/config '{ "Network": "10.1.0.0/16" }' etcdctl get /k8s/network/config 基础命令 kubectl get po/svc/cm/rc : 查看容器 kubectl describe po name :查看详情 kubectl delete po name :删除资源 -o wide : 多显示几列信息 --all-namespaces : 所有命名空间 -n name : 指定命名空间(default可以不带此参数) kubectl apply/create -f aaa.yaml : 执行yml文件 kubectl exec 容器名称 -it -- bash : 进入容器 exit : 退出 资源类型 all certificatesigningrequests (aka 'csr') clusterrolebindings clusterroles componentstatuses (aka 'cs') configmaps (aka 'cm') controllerrevisions cronjobs customresourcedefinition (aka 'crd') daemonsets (aka 'ds') deployments (aka 'deploy') endpoints (aka 'ep') events (aka 'ev') horizontalpodautoscalers (aka 'hpa') ingresses (aka 'ing') jobs limitranges (aka 'limits') namespaces (aka 'ns') networkpolicies (aka 'netpol') nodes (aka 'no') persistentvolumeclaims (aka 'pvc') persistentvolumes (aka 'pv') poddisruptionbudgets (aka 'pdb') podpreset pods (aka 'po') podsecuritypolicies (aka 'psp') podtemplates replicasets (aka 'rs') replicationcontrollers (aka 'rc') resourcequotas (aka 'quota') rolebindings roles secrets serviceaccounts (aka 'sa') services (aka 'svc') statefulsets (aka 'sts') storageclasses (aka 'sc') 查看所有命名空间的pod: kubectl get po -o wide --all-namespaces 查看所有命名空间的rc(其他资源类似,把rc换成其他资源即可): kubectl get rc -o wide --all-namespaces 查看kube-system命名空间的pod: kubectl get po -o wide -n kube-system 查看defalut命名空间的pod(default命名空间的可以省略 -n default,其他资源也一样): kubectl get po -o wide 根据yaml文件创建资源: kubectl apply -f aaa.yaml 或 kubectl create -f aaa.yaml 根据yaml文件删除创建资源: kubectl delete -f aaa.yaml 获取pod(这里以kube-proxy-7gkfk为例,kube-proxy-7gkfk是pod名字)详细信息: kubectl describe po kube-proxy-7gkfk -n kube-system 获取某rc(这里以mysql为例,mysql是rc名字)详细信息: kubectl describe rc mysql 查看某pod(这里以etcd-see-k8s-master1为例,etcd-see-k8s-master1为pod名字)日志: kubectl logs etcd-see-k8s-master1 -n kube-system 查看帮助 kubectl help