将 headless service 映射到外网

2021-08-01  本文已影响0人  偷油考拉

nacos服务在Kubernetes体系中,默认使用headless service。
如下是资源状态。

[root@VM-99-6-centos ~]# kubectl get svc nacos-headless
NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                               AGE
nacos-headless   ClusterIP   None         <none>        8848/TCP,9848/TCP,9849/TCP,7848/TCP   17d

[root@VM-99-6-centos ~]# kubectl get sts
NAME    READY   AGE
nacos   3/3     17d

[root@VM-99-6-centos ~]# kubectl get pods -l app=nacos
NAME      READY   STATUS    RESTARTS   AGE
nacos-0   2/2     Running   0          17d
nacos-1   2/2     Running   0          17d
nacos-2   2/2     Running   0          17d

[root@VM-99-6-centos ~]# kubectl get ep nacos-headless
NAME             ENDPOINTS                                                         AGE
nacos-headless   172.16.0.10:9848,172.16.0.135:9848,172.16.0.73:9848 + 9 more...   17d

外网怎么访问管理页面呢?

一、将 nacos-headless service 通过负载均衡映射到外网
kubectl expose service  nacos-headless --type=LoadBalancer --name=nacos-external-lb
[root@VM-99-6-centos ~]# kubectl get svc nacos-external-lb
NAME                TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                       AGE
nacos-external-lb   LoadBalancer   172.16.252.122   175.24.252.49   8848:31795/TCP,9848:30213/TCP,9849:30320/TCP,7848:30044/TCP   48m
二、仅将8848端口通过负载均衡映射到外网
kubectl expose svc nacos-headless  --name=nacos-external  --type=LoadBalancer  --port=8848 --target-port=8848
[root@VM-99-6-centos ~]# kubectl get svc nacos-external
NAME             TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)          AGE
nacos-external   LoadBalancer   172.16.254.50   175.24.254.201   8848:30291/TCP   38s

[root@VM-99-6-centos ~]# kubectl describe svc nacos-external
Name:                     nacos-external
Namespace:                default
Labels:                   app=nacos-headless
Annotations:              service.kubernetes.io/loadbalance-id: lb-696gr02t
Selector:                 app=nacos
Type:                     LoadBalancer
IP Families:              <none>
IP:                       172.16.254.50
IPs:                      <none>
LoadBalancer Ingress:     175.24.254.201
Port:                     <unset>  8848/TCP
TargetPort:               8848/TCP
NodePort:                 <unset>  30291/TCP
Endpoints:                172.16.0.10:8848,172.16.0.135:8848,172.16.0.73:8848
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

上一篇下一篇

猜你喜欢

热点阅读