通过Helm chart部署nacos

本文介绍如何改写官方Chart以支持通过Virtual Service访问部署的nacos。

官方Chart

改Chart,增加Virtual Service配置

官方Chart提供了Ingress访问,此处增加Virtual Service配置,支持通过vs访问nacos服务。

templates增加Virtual Service资源

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: {{ .Release.Name }}-vs
  namespace: {{ .Release.Namespace | quote }}
spec:
  gateways:
  - yzy-gateway.istio-system # 网关,改为环境对应的istio网关
  hosts:
  - {{ .Values.Namespace }}-{{ .Release.Name }}.{{ .Values.domain }} # 域名,改为环境对应的域名
  http:
  - route:
    - destination:
        {{- if eq .Values.global.mode "cluster" }}
        host: nacos-hs
        {{- else }}
        host: nacos-cs
        {{- end }}
        port: 
          number: {{ .Values.service.port }}

values.yaml增加domain配置项

domain: abc.xyz # 对应Virtual Service资源中使用的domain

修改后的Chart目录结构

修改后的Chart目录结构
相比于官方Chart目录结构,新增了vs.yaml文件,该文件里面是对应的Virtual Service资源

访问nacos

使用Helm命令部署后,通过域名+/nacos访问对应的nacos服务。
注意:未做特殊配置的话,访问nacos时必须追加/nacos。

通过VirtualService实现域名访问自动跳转

通过VirtualServicematchrewrite实现自动跳转

修改vs.yaml文件

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: {{ .Release.Name }}-vs
  namespace: {{ .Release.Namespace | quote }}
spec:
  gateways:
  - biyi-gateway.istio-system
  hosts:
  - {{ .Release.Name }}.{{ .Values.domain }}
  http:
  - match:
    - uri:
        prefix: /nacos
    route:
    - destination: 
        {{- if eq .Values.global.mode "cluster" }}
        host: nacos-hs
        {{- else }}
        host: nacos-cs
        {{- end }}
        port: 
          number: {{ .Values.service.port }}
  - rewrite:
      uri: /nacos
    route:
    - destination:
        {{- if eq .Values.global.mode "cluster" }}
        host: nacos-hs
        {{- else }}
        host: nacos-cs
        {{- end }}
        port: 
          number: {{ .Values.service.port }}

至此,通过Chart部署的nacos可以直接通过域名访问。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐