Kubernetes部署Nginx:端口映射实战指南,Kafka 授权与 ACL 深入实践。
Kubernetes 集群中部署 Nginx 并观察端口映射
在 Kubernetes 集群中部署 Nginx 并观察其端口映射是理解服务暴露和网络配置的基础操作。以下步骤详细说明了如何完成这一过程。
部署 Nginx Deployment
使用以下 YAML 文件创建一个 Deployment,确保 Nginx 实例在集群中运行:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
通过命令 kubectl apply -f nginx-deployment.yaml 应用配置。
创建 Service 暴露 Nginx
通过 Service 将 Nginx 暴露给集群内部或外部访问。以下示例使用 NodePort 类型:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
应用配置后,可以通过 kubectl get svc nginx-service 查看分配的 NodePort。
观察端口映射
使用以下命令检查 Pod 和 Service 的端口映射关系:
kubectl get pods -o wide
kubectl describe svc nginx-service
输出将显示 Pod 的 IP 和 Service 的端口绑定情况。
Work 节点上使用 kubectl 配置
在 Work 节点上正确配置 kubectl 是管理集群的关键。以下是配置步骤。
安装 kubectl
在 Work 节点上安装 kubectl 工具:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
配置 kubeconfig
将主节点的 ~/.kube/config 文件复制到 Work 节点的相同路径下:
scp user@master-node:~/.kube/config ~/.kube/config
确保配置文件权限正确:
chmod 600 ~/.kube/config
验证配置
运行以下命令验证配置是否生效:
kubectl get nodes
kubectl get pods -A
如果返回节点和 Pod 列表,说明配置成功。
常见问题排查
Service 无法访问
检查 Service 的 selector 是否与 Pod 的标签匹配:
kubectl get pods --show-labels
kubectl describe svc nginx-service
NodePort 未开放
确保 Work 节点的防火墙允许 NodePort 端口(如 30080)的流量:
sudo ufw allow 30080/tcp
kubectl 连接失败
检查 kubeconfig 文件中的服务器地址是否为 Master 节点的正确 IP:
grep server ~/.kube/config
通过以上步骤,可以在 Kubernetes 集群中成功部署 Nginx 并验证端口映射,同时在 Work 节点上配置 kubectl 进行管理。
更多推荐
所有评论(0)