在 Kubernetes 上部署一个最简单的 Nginx 只需要创建一个 Deployment 和一个 Service。以下是具体步骤和相应的 YAML 文件示例。
步骤
- 创建 Nginx Deployment
- 创建 Service 资源
1. 创建 Nginx Deployment
首先,创建一个 nginx-deployment.yaml
文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
这个文件定义了一个名为 nginx-deployment
的 Deployment,它包含一个 Nginx 容器,并暴露端口 80。
2. 创建 Service 资源
接下来,创建一个 nginx-service.yaml
文件:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
这个文件定义了一个名为 nginx-service
的 Service,它将暴露 Deployment 中的 Nginx 应用程序,并将其公开在集群外部。type: LoadBalancer
意味着 Kubernetes 的服务会自动分配一个外部 IP 地址(在支持的云环境中,如 Google Cloud、AWS 等)。
部署这些资源
使用 kubectl apply
命令来创建这些资源:
kubectl apply -f nginx-deployment.yaml
kubectl apply -f nginx-service.yaml
验证部署
你可以使用以下命令来验证部署状态:
kubectl get deployments
kubectl get pods
kubectl get services
找到 nginx-service
的外部IP地址(如果类型为 LoadBalancer
),然后在浏览器中访问这个IP地址以查看 Nginx 欢迎页面。
示例输出
运行 kubectl get services
可能会得到类似以下的输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-service LoadBalancer 10.96.0.1 192.168.1.100 80:31234/TCP 5m
在浏览器中访问 http://192.168.1.100
会显示 Nginx 的默认欢迎页面,这意味着你的 Nginx 服务已经成功部署。
总结
通过创建一个 Deployment 和一个 Service,你可以在 Kubernetes 上快速部署并公开一个简单的 Nginx 应用程序。这种方式非常适合用于测试和开发环境,以及对 Kubernetes 部署过程的基本理解。
k8s创建一个Nginx示例