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