每当我将Kubernetes服务作为负载均衡器公开时,外部IP永远处于pending
状态。
因此,我无法通过浏览器访问dgraph ratle
。
我需要通过NodePort公开我的服务,以便可以使用IP:node-port
访问它。
在这里,我为dgraph ratle
公众创建了NodePort服务。我可以curl
IP:node-port
并能够得到结果,但是无法在Web浏览器中访问它。
我在Digital Ocean上使用Kubernetes
Kubernetes版本v1.12
。
为我提供帮助:
获取待处理的外部IP或
在公共场所公开容器或
我想念什么?
答案 0 :(得分:1)
您无法通过Internet到达private IP addresses,因此您需要在Kubernetes集群之前创建负载均衡器,或者在集群中创建某种VPN。
Kubernetes默认cloud controller manager不支持DigitalOcean。您可以手动为Kubernetes集群节点创建负载均衡器,或者需要安装cloud-controller-manager for DigitalOcean cloud中提到的其他manual:
- 克隆git仓库:
$ git clone https://github.com/digitalocean/digitalocean-cloud-controller-manager.git
- 要运行digitalocean-cloud-controller-manager,您需要一个DigitalOcean个人访问令牌。如果您已经登录,则可以创建一个here。确保您创建的令牌具有读写访问权限。
- 一旦有了个人访问令牌,就创建一个Kubernetes Secret作为云控制器管理器访问令牌的一种方式。 (using script,or manually)
- 部署appropriate version的cloud-controller-manager:
$ kubectl apply -f releases/v0.1.10.yml
deployment "digitalocean-cloud-controller-manager" created
注意:releases /中的部署仅作为示例。在大多数情况下,它们都可以使用,但对于您的群集而言,可能不是开箱即用的。
Cloud Controller Manager当前版本为:v0.1.10。这意味着该项目仍在积极开发中,可能尚未投入生产。 DigitalOcean Kubernetes产品发布后,该插件将升级到v1.0.0。
在这里您可以找到示例: