我是为我的 Kubernetes 集群配置 Ingress 规则的新手。
我的 Kubernetes 集群部署在 Bare Metal 上。没有云。
我按照此链接在集群中使用 RBAC 设置了我的 nginx 控制器。
这是我部署的:
# kubectl get all -n ingress-nginx
NAME READY STATUS RESTARTS AGE
pod/default-http-backend-7c5bc89cc9-ks6kd 1/1 Running 0 2h
pod/nginx-ingress-controller-5b6864749-8xbhf 1/1 Running 0 2h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/default-http-backend ClusterIP 10.233.15.56 <none> 80/TCP 2h
service/ingress-nginx NodePort 10.233.38.84 <none> 80:31118/TCP,443:32003/TCP 2h
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deployment.apps/default-http-backend 1 1 1 1 2h
deployment.apps/nginx-ingress-controller 1 1 1 1 2h
NAME DESIRED CURRENT READY AGE
replicaset.apps/default-http-backend-7c5bc89cc9 1 1 1 2h
replicaset.apps/nginx-ingress-controller-5b6864749 1 1 1 2h
鉴于我有我的设置,我想使用 URL 访问我的 grafana 仪表板。
我的 grafana 设置运行良好。
# kubectl get all -n default
NAME READY STATUS RESTARTS AGE
pod/grafana-67c6585fbd-4jl7p 1/1 Running 0 2h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/grafana NodePort 10.233.5.111 <none> 3000:32093/TCP 2h
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deployment.apps/grafana 1 1 1 1 2h
NAME DESIRED CURRENT READY AGE
replicaset.apps/grafana-67c6585fbd 1 1 1 2h
我可以使用http://10.27.239.145:32093
我的一个 K8S 工作节点的 IP 访问仪表板。
现在,我不想通过 IP:NodePort 访问,而是想通过 URL 访问,例如grafana.test.mydomain.com
所以我在默认命名空间中配置的入口规则是:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
creationTimestamp: 2018-09-25T20:32:24Z
generation: 5
name: grafana
namespace: default
resourceVersion: "28485"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/jenkins-tls
uid: 1c51cece-c102-11e8-bf0f-02000a1bef39
spec:
rules:
- host: grafana.test.mydomain.com
http:
paths:
- backend:
serviceName: grafana
servicePort: 3000
path: /
在我正在测试的本地笔记本电脑上,我添加/etc/hosts
了以下条目:
10.27.239.145 grafana.test.mydomain.com
在我的浏览器中,我试图访问http://grafana.test.mydomain.com
,但我只得到This site can’t be reached
grafana.test.mydomain.com refused to connect.
我有一种强烈的感觉,我错过了一些东西,但无法弄清楚。
我将 NodePort 更改为 ClusterIP,但没有运气。
我知道我的入口控制器正在工作,因为每次我更改入口规则时,我都会从入口控制器获取日志。
I0925 21:00:19.041440 9 event.go:221] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"grafana", UID:"1c51cece-c102-11e8-bf0f-02000a1bef39", APIVersion:"extensions/v1beta1", ResourceVersion:"28485", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress default/grafana
I0925 21:00:19.041732 9 controller.go:171] Configuration changes detected, backend reload required.
I0925 21:00:19.216044 9 controller.go:187] Backend successfully reloaded.
I0925 21:00:19.217645 9 controller.go:204] Dynamic reconfiguration succeeded.
对于我可能错过的任何帮助,我们将不胜感激。