K8s常用的命令

一、基础命令

  1. 查看集群信息

    bash

    kubectl cluster-info  # 显示集群端点和服务信息
    

  2. 查看节点

    bash

    kubectl get nodes  # 列出所有节点
    kubectl describe node   # 查看节点详细信息
    
  3. 查看命名空间

    bash

    kubectl get namespaces  # 列出所有命名空间
    
  4. 切换命名空间

    bash

    kubectl config set-context --current --namespace=
    

二、资源操作(Pod、Deployment、Service 等)

  1. 查看资源

    bash

    kubectl get pods  # 列出所有Pod
    kubectl get deployments  # 列出所有Deployment
    kubectl get services  # 列出所有Service
    kubectl get all  # 列出所有类型的资源
    
    # 常用选项:
    -o wide  # 显示更多信息
    -n   # 指定命名空间
    --watch  # 实时监控资源变化
    
  2. 创建资源

    bash

    kubectl apply -f   # 从YAML文件创建资源
    
  3. 删除资源

    bash

    kubectl delete -f   # 删除YAML定义的资源
    kubectl delete pod   # 删除指定Pod
    
  4. 查看资源详情

    bash

    kubectl describe pod   # 查看Pod详细信息
    

三、Pod 相关操作

  1. 查看 Pod 日志

    bash

    kubectl logs   # 查看Pod日志
    kubectl logs -f   # 实时跟踪日志
    
  2. 进入 Pod 容器

    bash

    kubectl exec -it  -- /bin/bash  # 进入Pod的第一个容器
    kubectl exec -it  -c  -- /bin/bash  # 进入指定容器
    
  3. 端口转发

    bash

    kubectl port-forward  8080:80  # 将Pod的80端口映射到本地8080
    

四、部署与伸缩

  1. 创建 Deployment

    bash

    kubectl create deployment  --image=  # 创建Deployment
    
  2. 扩缩容

    bash

    kubectl scale deployment  --replicas=3  # 设置3个副本
    
  3. 滚动更新

    bash

    kubectl set image deployment/ =  # 更新镜像
    
  4. 回滚更新

    bash

    kubectl rollout undo deployment/  # 回滚到上一个版本
    

五、Service 与 Ingress

  1. 创建 Service

    bash

    kubectl expose deployment  --port=80 --type=NodePort  # 创建NodePort类型的Service
    
  2. 查看 Service

    bash

    kubectl get services  # 列出所有Service
    
  3. 创建 Ingress

    bash

    kubectl apply -f ingress.yaml  # 从YAML创建Ingress规则
    

六、配置与存储

  1. 创建 ConfigMap

    bash

    kubectl create configmap  --from-file=app.properties  # 从文件创建ConfigMap
    
  2. 创建 Secret

    bash

    kubectl create secret generic  --from-literal=username=admin --from-literal=password=pass  # 创建Secret
    

七、调试与故障排查

  1. 查看事件

    bash

    kubectl get events  # 查看集群事件(用于排查问题)
    
  2. 查看节点状态

    bash

    kubectl top nodes  # 查看节点资源使用情况
    
  3. 查看 Pod 资源使用

    bash

    kubectl top pods  # 查看Pod资源使用情况
    

八、认证与配置

  1. 获取集群配置

    bash

    kubectl config view  # 查看kubeconfig配置
    
  2. 切换上下文

    bash

    kubectl config use-context   # 切换到指定集群上下文
    

九、常用 YAML 模板

1. Pod 示例(nginx-pod.yaml)

yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
2. Deployment 示例(nginx-deployment.yaml)

yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
3. Service 示例(nginx-service.yaml)

yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30000

十、命令缩写与补全

  • 资源类型缩写
    po = pods
    svc = services
    deploy = deployments
    ns = namespaces

  • 命令补全

    bash

    source <(kubectl completion bash)  # 启用Bash自动补全

你可能感兴趣的:(运维,k8s)