我正在使用 kubeadm 在 AWS 环境中设置 kubernetes。我已经设置了入口-nginx来访问端口443上的服务。我已经检查了看起来不错的服务配置。我收到 502 错误的网关,入口中的地址字段也为空。
前端服务
apiVersion: v1
kind: Service
metadata:
labels:
name: voyager-configurator-webapp
name: voyager-configurator-webapp
spec:
ports:
-
port: 443
targetPort: 443
selector:
component: app
name: voyager-configurator-webapp
type: ClusterIP
入口 yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress-resource
spec:
tls:
- hosts:
- kubernetes-test.xyz.com
secretName: default-server-secret
rules:
- host: kubernetes-test.xyz.com
http:
paths:
- backend:
serviceName: voyager-configurator-webapp
servicePort: 443
NAME CLASS HOSTS ADDRESS PORTS AGE
nginx-ingress-resource <none> kubernetes-test.xyz.com 80, 443 45m
这里可能有什么问题?任何帮助将不胜感激。
确保在正确的命名空间中创建服务,如果没有,请在服务定义中添加命名空间字段。添加与服务同名的名为name
的标签不是好方法,而是可以使用不同的标签来避免错误和配置问题。 阅读有关选择器和标签的更多信息:标签选择器。
前端服务应如下所示:
piVersion: v1
kind: Service
name: voyager-configurator-webapp
metadata:
labels:
component: app
appservice: your-example-app
spec:
ports:
- protocol: TCP
port: 443
targetPort: 443
selector:
component: app
app: your-example-app
type: ClusterIP
入口应如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress-resource
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- kubernetes-test.xyz.com
secretName: default-server-secret
rules:
- host: kubernetes-test.xyz.com
http:
paths:
- path: /
backend:
serviceName: voyager-configurator-webapp
servicePort: 443
您必须使用入口定义后端的路径,以发送流量。
请记住,最好在设置过程中遵循一些示例和说明,以避免在调试过程中出现问题和浪费时间。
看看:nginx-ingress-502-bad-gateway,aws-kubernetes-ingress-nginx。