kubernetes service 如何设置 external IP
我在digitalocean 上面搭建了一个 k8s ,现在不知道如何将 service 设置 external ip,以让外网可以访问这个服务,请教一下各位
core@master ~/kubernetes $ kubectl describe service/guestbook
Name: guestbook
Namespace: default
Labels: app=guestbook
Selector: app=guestbook
Type: LoadBalancer
IP: 10.100.66.173
Port: <unnamed> 3000/TCP
NodePort: <unnamed> 31801/TCP
Endpoints: 10.244.35.4:3000,10.244.39.3:3000,10.244.39.4:3000
Session Affinity: None
No events.
core@master ~/kubernetes $ kubectl get svc
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE
guestbook 10.100.66.173 3000/TCP app=guestbook 5m
kubernetes 10.100.0.1 <none> 443/TCP <none> 1h
redis-master 10.100.75.69 <none> 6379/TCP app=redis,role=master 8m
redis-slave 10.100.230.200 <none> 6379/TCP app=redis,role=slave 6m
core@master ~/kubernetes $
5 个回复
demohi - k8s
赞同来自: tobe
自己回复一下
service type 目前有两种,如果使用 gce 的 kubernetes,可以直接使用LoadBalancer类型,gce 会自动帮忙生成一个对外的 ip,并帮你做负载均衡
如果不是在 gce 平台,可以选择使用NodePort的类型,这样会在 node 里面添加一个对外的端口号,可以通过 nodeIP:nodePORT 来访问。可以自己搭建nginx 或者使用云服务商的负载均衡器来做处理。
使用 NodePort 的方式比较麻烦,大家有什么更容易的方案吗
tobe
赞同来自: lllj
目前只是Cluster、LoadBalancer和NodePort三种方式,Cluster只能在集群内访问,LoadBalancer依赖IaaS服务,如果都不适用建议使用NodePort。
赢在行动_37131
赞同来自:
能设置一组能上网的私有IP作为EXTERNAL_IP吗?怎么才能分配到kubectl get svc中?
EXTERNAL_IP只能依赖Iaas分配吗
xiaoping378
赞同来自:
现在用ingress来做
张夏 - 快手, ex-IBMer
赞同来自:
Citrix NetScaler CPX 也可以,NetScaler的容器版