部署多容器应用
1. 目标
在 Kubernetes 中部署一个包含多个容器的应用,例如一个前端应用和一个后端数据库。使用 Deployment 和 Service 资源来管理 Pod 和网络通信。
2. 操作步骤
2.1 创建 Deployment
创建两个 Deployment,分别用于前端应用和后端数据库。
# frontend-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 2
selector:
matchLabels:
app: frontend
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: frontend
image: nginx:latest
ports:
- containerPort: 80
# backend-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
spec:
replicas: 2
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
value: "password"
ports:
- containerPort: 3306
2.2 创建 Service
创建两个 Service,分别用于前端应用和后端数据库。
# frontend-service.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend-service
spec:
selector:
app: frontend
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
# backend-service.yaml
apiVersion: v1
kind: Service
metadata:
name: backend-service
spec:
selector:
app: backend
ports:
- protocol: TCP
port: 3306
targetPort: 3306
2.3 部署应用
使用 kubectl 部署应用。
kubectl apply -f frontend-deployment.yaml
kubectl apply -f backend-deployment.yaml
kubectl apply -f frontend-service.yaml
kubectl apply -f backend-service.yaml
2.4 验证部署
验证 Pod 和 Service 是否成功创建。
kubectl get pods
kubectl get services
3. 参考文档
- Kubernetes 官方文档[10]
- Kubernetes 官方文档[10]