kubernetes中针对夸namespace的访问

avatar 2025年11月27日18:24:29 评论 8 次浏览

先说一下我的环境和需求,我在kubernetes中部署了一个多主多从的rocketmq的集群,因为我的rocketmq集群属于公用的,所以不但集群外部需要访问,集群内部的也需要访问,针对集群外部访问本地加一下变量到broker的解析就可以了,但是集群内部员本也是想通过内部解析的方式实现的,但是偶尔会有service的ip会有变动,这就需要重新修改解析了,我就想是否有一种方式把变量解析到kubernets的dns上,这样我就不需要担心ip有变动影响到服务使用了.

经过各种网上查找资料发现,可以在当前需要使用到namespace下创建一个变量的service,然后service解析过去,这样就不需要固定ip地址了,下面看一下我的demo.

 cat prod-tps-service.yaml
 apiVersion: v1
 kind: Service
 metadata:
   name: broker-a-link
 spec:
   type: ExternalName
   externalName: broker-a-link.default.svc.cluster.local
 apiVersion: v1
 kind: Service
 metadata:
   name: broker-b-link
 spec:
   type: ExternalName
   externalName: broker-b-link.default.svc.cluster.local

比如我现在namespace为demo下的服务需要用到default下的rocketmq时,我只需要在demo下创建这两个服务即可,

 kubectl get service -n demo
 NAME                 TYPE           CLUSTER-IP       EXTERNAL-IP                                     PORT(S)          AGE
 broker-a-link        ExternalName   <none>           broker-a-link.default.svc.cluster.local   <none>           10m
 broker-b-link        ExternalName   <none>           broker-b-link.default.svc.cluster.local   <none>           9m37s

这样我就不用担心ip变动导致服务不可用的问题,这样既简单又安全,还比较好管理,淡然如果把externalName配置成实际的值也是可以的.

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: