Я новичок в настройке правил Ingress для своего кластера Kubernetes.
Мой кластер Kubernetes развернут на Bare Metal. Нет облака.
Я перешел по этой ссылке, чтобы настроить свой nginx-контроллер с RBAC в моем кластере.
Вот что я развернул:
# 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
Учитывая, что у меня есть настройки, я хочу получить доступ к моей панели инструментов Grafana с помощью URL-адреса.
Моя настройка графаны работает отлично.
# 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
, который является IP-адресом одного из моих рабочих узлов K8S.
Теперь вместо доступа через 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.
Мы будем очень благодарны за любую помощь в отношении того, что я мог пропустить.