首页 > 解决方案 > 公开 Digital Ocean 的托管 Kubernetes 集群

问题描述

我一直在玩 Digital Ocean 的新托管 Kubernetes 服务。我使用 Digital Ocean 的仪表板创建了一个新集群,并且似乎成功部署了我的 yaml 文件(附件)。

在上下文中运行kubectl get services

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE api-svc NodePort XX.XXX.XXX.XXX <none> 8080:30000/TCP 2h kubernetes ClusterIP XX.XXX.X.X <none> 443/TCP 2h

我的问题是,如何在没有负载均衡器的情况下公开我的服务?

我已经能够使用 minikube 在本地执行此操作。为了获得集群 IP,我运行并使用我的 nodePort 配置中指定的minikube ip端口号来访问服务。30000api-svc

据我了解,Digital Ocean 的托管服务将主节点抽象出来。那么我在哪里可以找到公共 IP 地址来访问我的集群呢?

先感谢您!

我的 yaml 文件供参考

apiVersion: v1
kind: Secret
metadata:
  name: regcred
data:
  .dockerconfigjson: <my base 64 key>
type: kubernetes.io/dockerconfigjson
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: api-deployment
  labels:
    app: api-deployment
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      labels:
        app: api
 spec:
   containers:
   - name: api
     image: <my-dockerhub-user>/api:latest
     ports:
         - containerPort: 8080
   imagePullSecrets:
   - name: regcred
---
apiVersion: v1
kind: Service
metadata:
  name: api-svc
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 30000
    protocol: TCP
  selector:
    app: api
  type: NodePort

标签: kubernetesdigital-oceanmanaged

解决方案


您可以点击任何工作节点的 ip。示例http://worker-node-ip:30000/。您可以从 digitalocean 仪表板或使用 doctl cli 获取工作节点 ip。


推荐阅读