一、基础命令
-
查看集群信息
bash
kubectl cluster-info # 显示集群端点和服务信息
-
查看节点
bash
kubectl get nodes # 列出所有节点 kubectl describe node <node-name> # 查看节点详细信息
-
查看命名空间
bash
kubectl get namespaces # 列出所有命名空间
-
切换命名空间
bash
kubectl config set-context --current --namespace=<namespace-name>
二、资源操作(Pod、Deployment、Service 等)
-
查看资源
bash
kubectl get pods # 列出所有Pod kubectl get deployments # 列出所有Deployment kubectl get services # 列出所有Service kubectl get all # 列出所有类型的资源 # 常用选项: -o wide # 显示更多信息 -n <namespace> # 指定命名空间 --watch # 实时监控资源变化
-
创建资源
bash
kubectl apply -f <filename.yaml> # 从YAML文件创建资源
-
删除资源
bash
kubectl delete -f <filename.yaml> # 删除YAML定义的资源 kubectl delete pod <pod-name> # 删除指定Pod
-
查看资源详情
bash
kubectl describe pod <pod-name> # 查看Pod详细信息
三、Pod 相关操作
-
查看 Pod 日志
bash
kubectl logs <pod-name> # 查看Pod日志 kubectl logs -f <pod-name> # 实时跟踪日志
-
进入 Pod 容器
bash
kubectl exec -it <pod-name> -- /bin/bash # 进入Pod的第一个容器 kubectl exec -it <pod-name> -c <container-name> -- /bin/bash # 进入指定容器
-
端口转发
bash
kubectl port-forward <pod-name> 8080:80 # 将Pod的80端口映射到本地8080
四、部署与伸缩
-
创建 Deployment
bash
kubectl create deployment <deployment-name> --image=<image-name> # 创建Deployment
-
扩缩容
bash
kubectl scale deployment <deployment-name> --replicas=3 # 设置3个副本
-
滚动更新
bash
kubectl set image deployment/<deployment-name> <container-name>=<new-image> # 更新镜像
-
回滚更新
bash
kubectl rollout undo deployment/<deployment-name> # 回滚到上一个版本
五、Service 与 Ingress
-
创建 Service
bash
kubectl expose deployment <deployment-name> --port=80 --type=NodePort # 创建NodePort类型的Service
-
查看 Service
bash
kubectl get services # 列出所有Service
-
创建 Ingress
bash
kubectl apply -f ingress.yaml # 从YAML创建Ingress规则
六、配置与存储
-
创建 ConfigMap
bash
kubectl create configmap <config-name> --from-file=app.properties # 从文件创建ConfigMap
-
创建 Secret
bash
kubectl create secret generic <secret-name> --from-literal=username=admin --from-literal=password=pass # 创建Secret
七、调试与故障排查
-
查看事件
bash
kubectl get events # 查看集群事件(用于排查问题)
-
查看节点状态
bash
kubectl top nodes # 查看节点资源使用情况
-
查看 Pod 资源使用
bash
kubectl top pods # 查看Pod资源使用情况
八、认证与配置
-
获取集群配置
bash
kubectl config view # 查看kubeconfig配置
-
切换上下文
bash
kubectl config use-context <context-name> # 切换到指定集群上下文
九、常用 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自动补全