如何在Kubernetes中公开不带LoadBalancer的dgraph-ratel-public

时间:2018-12-19 06:35:51

标签: docker kubernetes digital-ocean dgraph

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

因此,我无法通过浏览器访问dgraph ratle

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

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

为我提供帮助:

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

  2. 在公共场所公开容器或

  3. 我想念什么?

kubectl describe svc dgraph-ratle-public

1 个答案:

答案 0 :(得分:1)

您无法通过Internet到达private IP addresses,因此您需要在Kubernetes集群之前创建负载均衡器,或者在集群中创建某种VPN。

Kubernetes默认cloud controller manager不支持DigitalOcean。您可以手动为Kubernetes集群节点创建负载均衡器,或者需要安装cloud-controller-manager for DigitalOcean cloud中提到的其他manual

  
      
  1. 克隆git仓库:
  2.   
    $ git clone https://github.com/digitalocean/digitalocean-cloud-controller-manager.git
  
      
  1. 要运行digitalocean-cloud-controller-manager,您需要一个DigitalOcean个人访问令牌。如果您已经登录,则可以创建一个here。确保您创建的令牌具有读写访问权限。
  2.   
  3. 一旦有了个人访问令牌,就创建一个Kubernetes Secret作为云控制器管理器访问令牌的一种方式。 (using scriptor manually
  4.   
  5. 部署appropriate version的cloud-controller-manager:
  6.   
    $ 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。

在这里您可以找到示例: