【发布时间】:2020-08-13 02:25:46
【问题描述】:
以下是我的清单:
- service.yaml
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
ports:
- port: 8080
protocol: TCP
targetPort: 8080
nodePort: 80
selector:
app: jenkins
#externalTrafficPolicy: "Cluster"
- ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress-entry
annotations:
kubernetes.io/ingress.class: "nginx"
#nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
#ingress.bluemix.net/rewrite-path: "serviceName=jenkins rewrite=/"
spec:
tls:
- hosts:
- ingress.hygon.cn
secretName: nginx-cert
rules:
- host: ingress.hygon.cn
http:
paths:
- path: /jenkins
backend:
serviceName: jenkins
servicePort: 8080
我使用 nginx 入口来控制访问后端服务 Jenkins。 如果我设置 http.paths.path 等于 "/" 一切正常,但如果我为 URL 设置路径字段,浏览器将显示 403 错误。
【问题讨论】:
-
您在这里使用
nodePort有什么具体原因吗?简单的ClusterIP服务就足够了。只需删除type: NodePort和nodePort: 80字段。很可能您无论如何都无法在节点 IP 的端口80上公开它,除非您使用--service-node-port-range portRange标志启动 kube-apiserver 并指定不同的端口范围,例如类似1-1024。
标签: nginx kubernetes kubernetes-ingress nginx-ingress