Files
docker_practice/12_orchestration/kubernetes/practice.md
Baohua Yang b44c9acd6c Restruct
2026-02-09 12:56:12 -08:00

100 lines
1.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Kubernetes 实战练习
本章将通过一个具体的案例部署一个 Nginx 网站并为其配置 Service Ingress来串联前面学到的知识
### 目标
1. 部署一个 Nginx Deployment
2. 创建一个 Service 暴露 Nginx
3. 可选通过 Ingress 访问服务
### 步骤 1创建 Deployment
创建一个名为 `nginx-deployment.yaml` 的文件
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.24
ports:
- containerPort: 80
```
应用配置
```bash
kubectl apply -f nginx-deployment.yaml
```
### 步骤 2创建 Service
创建一个名为 `nginx-service.yaml` 的文件
```yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort # 使用 NodePort 方便本地测试
```
应用配置
```bash
kubectl apply -f nginx-service.yaml
```
查看分配的端口
```bash
kubectl get svc nginx-service
```
如果输出端口是 `80:30080/TCP`你可以通过 `http://<NodeIP>:30080` 访问 Nginx
### 步骤 3模拟滚动更新Rolling Update
修改 `nginx-deployment.yaml`将镜像版本改为 `nginx:latest`
```bash
kubectl apply -f nginx-deployment.yaml
```
观察更新过程
```bash
kubectl rollout status deployment/nginx-deployment
```
### 步骤 4清理资源
练习结束后记得清理资源
```bash
kubectl delete -f nginx-service.yaml
kubectl delete -f nginx-deployment.yaml
```