Spring Cloud Kubernetes - Uso de ConfigMaps

1. Mapas de configuración

Idea de carga:

Cree un mapa de configuración, monte el archivo de configuración como application.yml, lo mejor es especificar un perfil

Cargue la configuración de arranque -> Especifique el perfil -> Busque el archivo montado correspondiente al perfil -> agrupación o evento

Transformación de servicios

1. Introducir dependencias

 
 

intento

copiar codigo

## 接入 kubernetes configmap implementation ('org.springframework.cloud:spring-cloud-starter-kubernetes-client-config:2.1.4') ## 热更新 implementation("org.springframework.boot:spring-boot-actuator") implementation("org.springframework.boot:spring-boot-actuator-autoconfigure")

2. Agregue el archivo bootstrap.yml

Agregue un nuevo archivo bootstrap.yml en el directorio raíz

 
 

Yaml

copiar codigo

server: port: 8080 spring: application: name: server cloud: kubernetes: enabled: false

Al desarrollar localmente, especifique spring.cloud.kubernetes.enabled=false para cerrar la configuración de kubernetes

3. Modificar cada archivo de configuración del entorno.

Modifique cada archivo de configuración en el directorio dist a bootstrap.yml y modifique la configuración al mismo tiempo, tomando el entorno de prueba como ejemplo.

 
 

Yaml

copiar codigo

server: port: 8080 management: endpoint: restart: enabled: true health: enabled: true info: enabled: true spring: application: name: server cloud: kubernetes: reload: enabled: true mode: event config: sources: - name: demo-configmap namespace: test profiles: active: k8s-test

implementación de K8S

1. Crear un mapa de configuración

kubectl create configmap demo-configmap --from-file=application.yml -n test

 
 

Yaml

copiar codigo

server: port: 8080 # servlet.context-path: /${spring.application.name} spring: profiles: k8s-test mvc: pathmatch: matching-strategy: ant_path_matcher application: name: server cloud: kubernetes: config: sources: - name: demo-comfigmap namespace: test reload: enabled: true mode: event logging: config: classpath:logback.xml endpoint: restart: enabled: true health: enabled: true info: enabled: true

2. Crear cuenta de servicio

crear un rol

 
 

vbnet

copiar codigo

apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: test name: config-reader rules: - apiGroups: [""] resources: ["pods","configmaps","services","endpoints"] verbs: ["get", "watch", "list"]

Crear cuenta de servicio

 
 

Yaml

copiar codigo

apiVersion: v1 kind: ServiceAccount metadata: name: config-reader namespace: test

Vincular rol y cuenta de servicio

 
 

Yaml

copiar codigo

apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: config-reader namespace: test roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: config-reader subjects: - kind: ServiceAccount name: config-reader namespace: test

3. Cree una implementación, especifique ConfigMap, ServiceAccount

 
 

arduino

copiar codigo

serviceAccountName: config-reader serviceAccount: config-reader

Por qué usar bootstrap.yml, consulte: www.jianshu.com/p/c955c44ae…

Es decir, la información de configuración a nivel del sistema se coloca en bootstrap.yml y la información de configuración personalizada se coloca en application.yml.

sugerencia

Las configuraciones inmutables y a nivel del sistema se colocan en el código del proyecto sin cambios

Las configuraciones variables y personalizadas se colocan en el mapa de configuración para la actualización en caliente

Guess you like

Origin blog.csdn.net/BASK2312/article/details/131662239