K8s 核心实战|部署 Nginx 应用(CentOS 7 适配 + Pod/Service 全命令)
一、实验目标
基于 CentOS 7 的 Minikube 集群,部署 Nginx 并暴露服务,所有命令适配 CentOS 7。
二、环境准备
- CentOS 7 已启动 Minikube 集群(参考博客 1)
- 确保
kubectl命令可正常执行
三、实验步骤(CentOS 7 兼容命令)
步骤 1:创建 Deployment(命令与 Ubuntu 一致,CentOS 7 补充文件操作)
bash
运行
# 方式1:命令行快速创建
kubectl create deployment nginx-deploy --image=nginx:1.25 --replicas=2
# 方式2:YAML创建(CentOS 7用vi/echo创建文件,避免cat EOF换行问题)
echo 'apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
cpu: "0.2"
memory: "256Mi"' > nginx-deploy.yaml
# 应用YAML
kubectl apply -f nginx-deploy.yaml
步骤 2:查看部署状态(命令通用)
bash
运行
kubectl get deployments
kubectl get pods -o wide
kubectl describe deployment nginx-deploy
步骤 3:创建 Service(CentOS 7 端口访问优化)
bash
运行
# 创建NodePort Service
kubectl expose deployment nginx-deploy --type=NodePort --port=80 --target-port=80 --name=nginx-service
# 查看Service
kubectl get svc nginx-service
# CentOS 7下访问Service(补充防火墙开放NodePort)
NODE_PORT=$(kubectl get svc nginx-service -o jsonpath='{.spec.ports[0].nodePort}')
firewall-cmd --add-port=${NODE_PORT}/tcp --permanent
firewall-cmd --reload
# 访问测试(CentOS 7用Minikube IP+NodePort)
MINIKUBE_IP=$(minikube ip)
curl http://${MINIKUBE_IP}:${NODE_PORT}
✅ 预期结果:返回 Nginx 默认页面 HTML,CentOS 7 下访问成功。
步骤 4:扩缩容与清理(命令通用)
bash
运行
# 扩缩容
kubectl scale deployment nginx-deploy --replicas=3
# 清理资源
kubectl delete svc nginx-service
kubectl delete deploy nginx-deploy
四、CentOS 7 补充说明
- CentOS 7 默认开启的 firewalld 会拦截 NodePort 端口,需手动开放;
- 创建 YAML 文件时,CentOS 7 的
cat EOF可能因终端编码问题报错,建议用echo或vi创建; - 所有
kubectl核心命令与 Ubuntu 完全一致,无需修改。
3652

被折叠的 条评论
为什么被折叠?



