0

每当我将 Kubernetes 服务公开为负载均衡器时,外部 IP 都处于永久pending状态。

所以,我无法dgraph ratle通过我的浏览器访问。

我需要通过 NodePort 公开我的服务,以便我可以使用IP:node-port.

在这里,我为我的dgraph ratle公众创建了一个 NodePort 服务。我可以curl IP:node-port并且能够得到结果,但我无法在我的网络浏览器中访问它。我在 Digital Ocean Kubernetes 版本上使用 Kubernetes v1.12

帮助我:

  1. 获取待处理的外部 IP 或

  2. 将容器暴露在公共场所或

  3. 我错过了什么?

kubectl 描述 svc dgraph-rate-public

4

1 回答 1

1

您无法通过 Internet 访问私有 IP 地址,因此您需要在您的 Kubernetes 集群前创建一个负载均衡器,或者在您的集群中创建某种 VPN。

Kubernetes 默认云控制器管理器不支持 DigitalOcean。您可以手动为 Kubernetes 集群节点创建负载均衡器,或者您需要为 DigitalOcean 云安装额外的cloud-controller-manager,手册中所述:

  1. 克隆 git 仓库:
    $ git clone https://github.com/digitalocean/digitalocean-cloud-controller-manager.git
  1. 要运行 digitalocean-cloud-controller-manager,您需要一个 DigitalOcean 个人访问令牌。如果您已经登录,您可以在这里创建一个。确保您创建的令牌具有读取和写入权限。
  2. 获得个人访问令牌后,创建一个 Kubernetes Secret 作为云控制器管理器访问您的令牌的一种方式。(使用脚本或手动
  3. 部署适当版本的 cloud-controller-manager:
    $ kubectl apply -f releases/v0.1.10.yml
    deployment "digitalocean-cloud-controller-manager" created

注意:releases/ 中的部署仅作为示例。它们在大多数情况下都可以使用,但可能不适用于您的集群。

云控制器管理器当前版本为:v0.1.10。这意味着该项目仍在积极开发中,可能尚未准备好生产。DigitalOcean Kubernetes 产品发布后,该插件将升级到 v1.0.0。

在这里您可以找到示例:

于 2019-03-18T13:52:18.897 回答