我一直在使用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,我运行minikube ip
并使用nodePort配置中指定的端口号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
答案 0 :(得分:1)
您可以命中任何工作节点的IP。示例http://worker-node-ip:30000/。您可以从digitalocean仪表板获取工作节点ip或使用doctl cli。