问题描述
我已经创建了小的Nginx部署,并在Azure Kubernetes服务中键入LoadBalancer,但是我无法使用LoadBalaner服务访问该应用程序。有人可以提供解决方案
我已经更新了安全组,以允许所有流量,但无济于事。
我是否需要更新任何安全组才能访问该应用程序?
请找到部署文件。
cat Nginx.yml
apiVersion: v1
kind: Service
Metadata:
name: Nginx-kubernetes
spec:
type: LoadBalancer
ports:
- port: 8080
targetPort: 8080
selector:
app: hello-kubernetes
---
apiVersion: apps/v1
kind: Deployment
Metadata:
name: Nginx-kubernetes
spec:
replicas: 3
selector:
matchLabels:
app: hello-kubernetes
template:
Metadata:
labels:
app: hello-kubernetes
spec:
containers:
- name: hello-kubernetes
image: Nginx:latest
ports:
- containerPort: 8080
解决方法
Nginx容器默认情况下使用端口80,并且您尝试连接到端口8080,那里什么也没有监听,因此拒绝连接。
在这里查看nginx conateiner Dockerfile。您看到什么端口?
要使其正常工作,您需要做的就是更改目标端口,如下所示:
apiVersion: v1
kind: Service
metadata:
name: nginx-kubernetes
spec:
ports:
- port: 8080
targetPort: 80
selector:
app: hello-kubernetes
另外,按如下所示更改containerPort会很不错:
spec:
containers:
- name: hello-kubernetes
image: nginx:latest
ports:
- containerPort: 80