⏰⏰⏰⏰⏰⏰⏰⏰K8s常用指令集锦

1、常用基础命令

kubectl top pod -n wsmp 
kubectl get pod    # 获取namespace下的所有pod

kubectl get pods -o wide    # 获取 pod 详细信息
kubectl describe po ${podName}     # 获得pod的状态

kubectl get po ${podName} -o yaml   # yaml 看不惯的话,也可以改为 json
kubectl exec -ti  ${podName}  -- /bin/ash    # 进入pod 查看日志

kubectl logs -p -nwsmp pod name 上一个实例的日志
kubectl logs -f -nwsmp pod nam 流式展示

2、概念相关

2.1 Controller

1.ReplicaSet : 确保预期的Pod副本数量,很少直接使用,需要被Deployment管理。
2.Deployment : 作用于一组Pod的创建和运行,控制pod应用的升级、回滚,当然也能控制pod的数量。
⏰⏰⏰⏰⏰⏰⏰⏰K8s常用指令集锦_第1张图片

2.2 Deployment

定义Deployment来创建Pod和ReplicaSet

  • 滚动升级和回滚应用
  • 扩容和缩容
  • 暂停和继续Deployment

2.3 Service

在K8S中,一方面Pod有伸缩与重新部署的需求,Pod的IP大多数情况是不固定的,另一方面,同一组Pod之间也有负载均衡的需要。因此,一组Pod被抽象成一个Service统一向外暴露。Service与其后端Pod副本集群之间则是通过Label Selector实现关联。

  • ClusterIP:提供一个集群内部的虚拟IP(clusterIP),以便在集群内部通过clutserIP:port访问;
  • NodePort:在每个节点上打开一个端口,在集群外部可以通过nodeIP:nodePort访问,在内部依然可以通过clutserIP:port 访问;
  • LoadBalancer:通过外部的负载均衡器来访问,多用于公有云上。

Service vs Deployment

  1. Service是从网络角度的抽象概念,类似于Nginx做负载均衡提供的统一网络入口;
  2. Pod是最终的应用部署实体;
  3. Deoplyment 负责创建和保持pod运行状态。
 get secret  -nns
 kubectl delete secret name -nns
 kubectl get secret  -nns|grep gaea
 kubectl delete secret name -nns
 kubectl get pod -nns
 kubectl get svc -nns
 kubectl get deploy -nns

其他

  • k8s中的apiVersion版本,可以使用命令kubectl api-versions查看,这里列举三个常见的

  • kubectl日志查看: journalctl -xefu kubelet = tail -f /var/log/messages

  • docker相关

    docker container ls -a :列出所有容器
    systemctl show --property ActiveState docker  : dockerd是否在本地计算机上运行
    systemctl start docker: 启动docker
    system restart docker: 重启docker
    docker.sock不能创建:rm -rf /var/run/docker.sock,再重启docker
    
  • 查看test下pod的镜像

     kubectl -n test get pods | grep Running | awk '{print $1}' | xargs -r -I '{}' kubectl -n wsmp get pods {} -o=jsonpath='{.status.containerStatuses[0].image}{"\n"}' | sort  
    
  • port、nodePort、targetPort、containerPort
    port和nodePort都是service的端口,前者暴露给k8s集群内部服务访问,后者暴露给k8s集群外部流量访问。从这两个端口到来的数据都需要经过反向代理kube-proxy,流入后端pod的targetPort上,最后到达pod内容器的containerPort。

你可能感兴趣的:(K8s,kubernetes,容器,云原生)