kubernetes - 公开 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
端口号来访问服务。30000
api-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
解决方案
您可以点击任何工作节点的 ip。示例http://worker-node-ip:30000/。您可以从 digitalocean 仪表板或使用 doctl cli 获取工作节点 ip。
推荐阅读
- php - PHP & MYSQL-如何搜索单词并将它们像句子一样进行翻译?
- ruby-on-rails - Rails 崩溃控制台说它找不到 Devise Invitable,但服务器加载它没有问题
- swift - 分配手动分配的 UnsafeMutablePointer
- c# - 通过openxml插入后,时间部分未显示在excel中
- java - 如何限制文本区域上的用户输入以匹配 JavaFX 中的特定字符串?
- tensorflow - ValueError: Tensor("flatten_1/Const:0", shape=(1,), dtype=int32) 必须与 Tensor("strided_slice:0", shape=(3,), dtype=int32) 来自同一个图
- swift - Swift:来自 UITests 的项目目录写访问
- python - apache beam python SDK fileio.ReadMatches 是否支持压缩文件?
- javascript - 滚动时反应网格库延迟加载
- android - 如何在 Play 商店中针对特定国家/地区发布 Android 应用更新?