https://github.com/kubernetes-sigs/kind-版本0.4.0 从kubernetes-sigs / kind创建kubernetes
kind create cluster
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.15.0) ?
kubectl创建服务帐户
kubectl create serviceaccount --namespace kube-system tiller
serviceaccount/tiller created
kubectl创建clusterrolebinding
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
clusterrolebinding.rbac.authorization.k8s.io/tiller-cluster-rule created
kubectl修补程序部署
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日志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获取入口-所有命名空间
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
谢谢!
答案 0 :(得分:0)
您将服务类型用作“ ClusterIp”,因此您将不会获得外部IP地址。 将服务类型更改为“ Loadbalancer”,然后您将获得可以通过Internet浏览的IP地址。
答案 1 :(得分:0)
关于您当前情况的一些担忧:
您必须检查已安装的nginx-ingress舵图,以找出为什么grafana
服务驻留在单独的命名空间default
中,而不是驻留在demo
命名空间中头盔部署参数--namespace demo
。
由于您未在helm install
命令controller.service.type
参数中指定,因此Nginx Ingress Controller将使用LoadBalancer
类型的相关服务来实现,在这种情况下,Ingress Controller会期望以使用云提供商的负载平衡器接收外部IP地址,并且我认为您当前的kubernetes供应商kubernetes-sigs/kind不是采用对Kubernetes群集的向外访问的好选择。因此,我建议对Nginx Ingress控制器使用NodePort服务,以便在主机的某些特定端口上公开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
您提到的问题更像是无害的,并且不会显着影响Nginx Ingress Controller的功能,因为这意味着在短时间内Liveness尚未启动对Grafana Pod的探测,并且在Grafana Helm图表部署期间尚未发布target enpoint。您甚至可以重新生成Nginx Ingress控制器Pod以证明我的假设合理。