如何解决Helm 和 minikube:缺少服务 ip
我正在尝试Learning Helm一书中的例子。我似乎错过了什么。我无法从 helm repo 安装图表:
xxxxx:~ $ helm install my-nginx bitnami/nginx
NAME: my-nginx
LAST DEPLOYED: Sat Jan 9 20:26:22 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
NGINX can be accessed through the following DNS name from within your cluster:
my-nginx.default.svc.cluster.local (port 80)
To access NGINX from outside the cluster,follow the steps below:
1. Get the NGINX URL by running these commands:
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
Watch the status with: 'kubectl get svc --namespace default -w my-nginx'
export SERVICE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].port}" services my-nginx)
export SERVICE_IP=$(kubectl get svc --namespace default my-nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo "http://${SERVICE_IP}:${SERVICE_PORT}"
xxxxx:~ $ export SERVICE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].port}" services my-nginx)
xxxxx:~ $ export SERVICE_IP=$(kubectl get svc --namespace default my-nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
xxxxx:~ $ echo "http://${SERVICE_IP}:${SERVICE_PORT}"
http://:80
$ kubectl get svc --namespace default -w my-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-nginx LoadBalancer 10.104.16.177 <pending> 80:30977/TCP 17h
更多细节。
解决方法
下面提取服务IP的那一行是获取服务对象中的外部IP。
export SERVICE_IP=$(kubectl get svc --namespace default my-nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
在 LoadBalancer
服务类型中,Kubernetes 尝试获取外部 IP 地址并使用该 IP 地址发布目标服务。在自托管的 Kubernetes 集群中,无法自动配置外部 IP。在公共云中的大多数托管集群中,如 GKE、EKS 等,它们已经与外部 IP 地址提供集成。因此,您可以在将服务设置为 LoadBalancer
后自动获取它。
仍然可以使用第 3 方操作员/应用程序(例如 MetalLB)来实现此自动化。但是在大多数自托管的 Kubernetes 集群中,建议访问 NodePort
服务类型的服务。
请使用以下参数重新运行 helm 命令。它将服务类型从 LoadBalancer
更改为 NodePort
。按照标准输出的说明操作可能允许您访问您的服务。
> helm install my-nginx bitnami/nginx --set service.type=NodePort
另一方面,您可以按照 minikube 官方文档 here 在 LoadBalancer
服务中设置支持。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。