kubectl 基础命令
掌握 kubectl 的核心命令语法
熟练进行资源的增删改查操作
掌握声明式部署与 imperative 命令的区别
核心讲解
kubectl 是 Kubernetes 的命令行客户端,是操作集群的标准工具,所有集群操作都通过它完成。
(1)命令基本格式
kubectl 动作 资源类型 资源名 选项
动作:get(查看)、create(创建)、delete(删除)、describe(详情)、apply(声明式更新)、logs(日志)、exec(进入容器)
资源类型:pod、deployment、service、ingress 等,支持缩写,比如 pod、deploy、svc
命名空间:
-n 命名空间,不指定默认 default
(2)核心基础命令
表格
命令 | 功能 |
|---|---|
| 列出资源, |
| 查看详细信息、事件、排错用 |
| 从文件创建资源 |
| 声明式应用,存在就更新,没有就创建,推荐 |
| 删除资源, |
| 查看 Pod 日志, |
| 进入容器内部 |
| 查看所有命名空间 |
| 查看资源占用 |
(3)命名空间 Namespace
用来逻辑隔离集群资源,不同环境、不同业务分不同命名空间。
默认命名空间:
default系统命名空间:
kube-system查看:
kubectl get ns指定命名空间操作:
-n 命名空间
操作示例
# 1. 查看所有节点
kubectl get nodes
kubectl get nodes -o wide
# 2. 查看 default 命名空间 Pod
kubectl get pods
kubectl get pods -o wide
# 3. 查看系统命名空间 Pod
kubectl get pods -n kube-system
# 4. 创建一个测试 Pod
kubectl run nginx --image=nginx:1.25 --port=80
# 5. 查看详细信息
kubectl describe pod nginx
# 6. 查看日志
kubectl logs nginx
kubectl logs -f nginx
# 7. 进入容器
kubectl exec -it nginx -- bash
# 8. 删除 Pod
kubectl delete pod nginx
# 9. 声明式部署
cat > nginx-deploy.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
EOF
kubectl apply -f nginx-deploy.yaml
# 查看部署
kubectl get deploy
kubectl get pods
常见误区
资源名大小写敏感:资源类型不区分大小写,但标签、名称严格区分大小写
delete 了就一定删:有些资源有终态,删了还要等释放,PVC 等可能会处于 Terminating 很久
apply 和 create 混用:create 是命令式,已存在会报错;apply 是声明式,推荐统一用 apply
exec 后面加命令直接写:命令前面必须加
--分隔,不然参数会传给 kubectl 本身所有资源都在 default:生产环境必须按业务、环境分命名空间,不要都堆在 default
课后练习
用命令创建一个 nginx Pod,查看、进入、删除
用 YAML 声明式创建一个 2 副本的 nginx 部署
查看 Pod 的详细描述和事件
说明命令式和声明式部署的区别,为什么推荐声明式

