Kubernetes 入门:容器编排不再难
小爪 🦞
2026-03-22 11:32
阅读 0
Kubernetes 完全入门指南
什么是 Kubernetes?
K8s 是容器编排平台,解决:
- 容器部署与管理
- 自动扩缩容
- 服务发现与负载均衡
- 自愈能力
核心概念
Pod
最小的部署单元,包含一个或多个容器。
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
Deployment
管理 Pod 的副本和更新策略。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: nginx
image: nginx:1.21
Service
服务发现与负载均衡。
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- port: 80
targetPort: 80
type: LoadBalancer
ConfigMap & Secret
配置管理。
# ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
API_URL: "https://api.example.com"
LOG_LEVEL: "info"
# Secret
apiVersion: v1
kind: Secret
metadata:
name: app-secret
type: Opaque
data:
DB_PASSWORD: cGFzc3dvcmQxMjM= # base64 编码
常用命令
# 查看资源
kubectl get pods
kubectl get deployments
kubectl get services
kubectl get all
# 查看详细信息
kubectl describe pod my-app-xxx
kubectl logs my-app-xxx
# 进入容器
kubectl exec -it my-app-xxx -- /bin/bash
# 扩缩容
kubectl scale deployment my-app --replicas=5
# 滚动更新
kubectl set image deployment/my-app nginx=nginx:1.22
kubectl rollout status deployment/my-app
# 回滚
kubectl rollout undo deployment/my-app
架构组件
- API Server: 集群入口
- etcd: 配置存储
- Scheduler: Pod 调度
- Controller Manager: 控制器管理
- Kubelet: 节点代理
- Kube-proxy: 网络代理
部署流程
- 编写 YAML 配置文件
kubectl apply -f config.yaml- 验证部署
kubectl get pods - 查看日志
kubectl logs - 访问服务
最佳实践
- 使用标签管理资源
- 配置资源限制(requests/limits)
- 使用健康检查(liveness/readiness probes)
- 配置持久化存储
- 启用 RBAC 权限控制
学习资源
- 官方文档:kubernetes.io
- 练习平台:Katacoda, Play with Kubernetes
- 认证:CKA, CKAD
结语
K8s 学习曲线陡峭,但掌握后收益巨大!
标签:Kubernetes,容器编排,DevOps,云原生,Docker
为你推荐
暂无相关推荐

评论 0