Почему сервис не имеет активной конечной точки при установке графана от helm до kubernetes-sigs / kind? - PullRequest
0 голосов
/ 29 июня 2019

https://github.com/kubernetes-sigs/kind - версия 0.4.0 Создавайте кубернетес из kubernetes-sigs / kind

kind create cluster
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.15.0) ?

kubectl create serviceaccount

kubectl create serviceaccount --namespace kube-system tiller
serviceaccount/tiller created

kubectl create clusterrolebinding

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
clusterrolebinding.rbac.authorization.k8s.io/tiller-cluster-rule created

kubectl patch deploy

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
deployment.extensions/tiller-deploy patched


helm init

helm install stable/nginx-ingress

helm install --name grafana stable/grafana --set=ingress.enabled=True,ingress.hosts={grafana.domain.com} --namespace demo --set rbac.create=true

kubectl logs loping-wallaby-nginx-ingress-controller-76d574f8b7-5m6n5

W0629 17:13:59.709497       6 controller.go:797] Service "demo/grafana" does not have any active Endpoint.
[29/Jun/2019:17:14:03 +0000]TCP200000.000
I0629 17:14:45.223234       6 status.go:295] updating Ingress demo/grafana status from [] to [{ }]
I0629 17:14:45.226343       6 event.go:209] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"demo", Name:"grafana", UID:"228cde81-cb97-4313-ad86-90a273b2206d", APIVersion:"extensions/v1beta1", ResourceVersion:"1938", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress demo/grafana

kubectl get ingress --all-namespaces

NAMESPACE   NAME      HOSTS                ADDRESS   PORTS   AGE
demo        grafana   grafana.domain.com             80      3m58s

kubectl get svc --all-namespaces -l app = grafana

NAMESPACE   NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
default     grafana   ClusterIP   10.104.203.243   <none>        80/TCP    24m

kubectl получить конечные точки

NAME                                           ENDPOINTS                      AGE
grafana                                        10.244.0.10:3000               21m
kubernetes                                     172.17.0.2:6443                56m
loping-wallaby-nginx-ingress-controller        10.244.0.8:80,10.244.0.8:443   48m
loping-wallaby-nginx-ingress-default-backend   10.244.0.7:8080                48m

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Несколько вопросов о вашем текущем сценарии:

  1. Вы должны проверить установленную nginx-ingress таблицу управления, чтобы выяснить, почему служба grafana находится в отдельном пространстве имен default, а не в demo пространстве имен согласно развертыванию helm параметр --namespace demo.

  2. Поскольку вы не указали в helm install параметр команды controller.service.type, Nginx Ingress Controller будет реализован с типом LoadBalancer соответствующей службы, в этом случае Ingress Controller ожидает получения внешний IP-адрес с использованием балансировщика нагрузки облачного провайдера, и я предполагаю, что ваш текущий поставщик kubernetes kubernetes-sigs / kind не является хорошим выбором для принятия внешнего доступа к кластеру Kubernetes. Поэтому я бы предложил использовать сервис NodePort для контроллера Nginx Ingress, чтобы выставить порты 80 и 443 на каком-то конкретном порту хост-машины.

    helm install --name grafana stable/grafana --set=ingress.enabled=True,ingress.hosts={grafana.domain.com} --namespace demo --set rbac.create=true --controller.service.type=NodePort

  3. Проблема, о которой вы упомянули, больше похожа на безвредную и не оказывает существенного влияния на функциональность Nginx Ingress Controller, потому что это означает, что в течение некоторого короткого периода времени Liveness пробник для Grafana Pod не был Инициированный и целевой пункт не был выпущен во время развертывания диаграммы Граффелма. Вы можете даже повторно запустить Pod контроллера Nginx Ingress, чтобы оправдать мое предположение.

0 голосов
/ 30 июня 2019

вы используете тип сервиса как "ClusterIp", поэтому вы не получите внешний IP-адрес.Измените тип службы на «Loadbalancer», после чего вы получите IP-адрес, который вы можете просматривать через Интернет.

...