237. 微服务架构之配置中心选型

1. 运维八荣八耻

在这里插入图片描述

2. 配置中心概述

配置其实是独立于程序的可配变量,同一份程序在不同配置下会有不同的行为,
常见的配置有连接字符串,应用配置和业务配置等。
配置有多种形态,下面是一些常见的:
程序内部hardcode,这种做法是反模式,一般我们不建议!
配置文件,比如Spring应用程序的配置一般放在application.properties文件中。
环境变量,配置可以预置在操作系统的环境变量里头,程序运行时读取。
启动参数,可以在程序启动时一次性提供参数,例如java程序启动时可以通过java -D方式配启动参数。
基于数据库,有经验的开发人员会把易变配置放在数据库中,这样可以在运行期灵活调整配置。
在这里插入图片描述
在这里插入图片描述

3. 使用ConfigMap管理应用配置

3.1 环境更改
1.停止dubbo微服务集群
持续集成环境中的Provider、Consumer、Monitor全部停止掉。

2.拆分zookeeper集群
为了模拟生产、测试、开发三种环境,将zookeeper集群拆分为独立的三个节点。
# hdss7-11,hdss7-12,hdss7-21 操作一致
[root@hdss7-11 ~]# /opt/zookeeper/bin/zkServer.sh stop
[root@hdss7-11 ~]# rm -fr /data/zookeeper/data/* /data/zookeeper/logs/* # 删除历史数据
[root@hdss7-11 ~]# sed -i '/^server/d' /opt/zookeeper/conf/zoo.cfg # 删除集群配置
[root@hdss7-11 ~]# /opt/zookeeper/bin/zkServer.sh start
[root@hdss7-11 ~]# /opt/zookeeper/bin/zkServer.sh status  # 启动后,所有节点都为 standalone 模式
ZooKeeper JMX enabled by default
Using config: /opt/apps/zookeeper/bin/../conf/zoo.cfg
Mode: standalone
3.2 准备资源配置清单(dubbo-monitor)

运维主机k8s7-200.host.com操作:

1.configmap.yaml
[root@k8s7-200.host.com /data/k8s-yaml/dubbo-monitor]# cat /data/k8s-yaml/dubbo-monitor/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: dubbo-monitor-cm
  namespace: infra
data:
  dubbo.properties: |
    dubbo.container=log4j,spring,registry,jetty
    dubbo.application.name=simple-monitor
    dubbo.application.owner=Datacloak
    dubbo.registry.address=zookeeper://zk1.od.com:2181
    dubbo.protocol.port=20880
    dubbo.jetty.port=8080
    dubbo.jetty.directory=/dubbo-monitor-simple/monitor
    dubbo.charts.directory=/dubbo-monitor-simple/charts
    dubbo.statistics.directory=/dubbo-monitor-simple/statistics
    dubbo.log4j.file=/dubbo-monitor-simple/logs/dubbo-monitor.log
    dubbo.log4j.level=WARN

2.deployment.yaml
[root@k8s7-200.host.com /data/k8s-yaml/dubbo-monitor]# cat /data/k8s-yaml/dubbo-monitor/deployment.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: dubbo-monitor
  namespace: infra
  labels: 
    name: dubbo-monitor
spec:
  replicas: 1
  selector:
    matchLabels: 
      name: dubbo-monitor
  template:
    metadata:
      labels: 
        app: dubbo-monitor
        name: dubbo-monitor
    spec:
      containers:
      - name: dubbo-monitor
        image: harbor.od.com/infra/dubbo-monitor:latest
        ports:
        - containerPort: 8080
          protocol: TCP
        - containerPort: 20880
          protocol: TCP
        imagePullPolicy: IfNotPresent
        volumeMounts:
          - name: configmap-volume
            mountPath: /dubbo-monitor-simple/conf
      volumes:
        - name: configmap-volume
          configMap:
            name: dubbo-monitor-cm
      imagePullSecrets:
      - name: harbor
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      securityContext: 
        runAsUser: 0
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate: 
      maxUnavailable: 1
      maxSurge: 1
  revisionHistoryLimit: 7
  progressDeadlineSeconds: 600

3.应用资源配置清单
在任意一台k8s运算节点执行:
[root@k8s7-22.host.com ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/configmap.yaml
[root@k8s7-22.host.com ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/deployment.yaml
deployment.extensions/dubbo-monitor configured
3.3 查看资源信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 切换生产环境

在这里插入图片描述
在这里插入图片描述

3.5 验证

在这里插入图片描述
在这里插入图片描述

3.6 启动dubbo-service

在这里插入图片描述
在这里插入图片描述

4. 陈述式资源管理方法创建configmap

[root@k8s7-21.host.com /opt/kubernetes/conf]# kubectl create cm kubelet-cm --from-file=./kubelet.kubeconfig
configmap/kubelet-cm created

在这里插入图片描述

[root@k8s7-21.host.com /opt/kubernetes/conf]# kubectl get cm kubelet-cm -o yaml
apiVersion: v1
data:
  kubelet.kubeconfig: |
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR0RENDQXB5Z0F3SUJBZ0lVUnB6TU9VazI4TGx5RGJuWEs2SWk2aEdzTGVFd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1lERUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjJKbGFXcHBibWN4RURBT0JnTlZCQWNUQjJKbAphV3BwYm1jeEN6QUpCZ05WQkFvVEFtOWtNUXd3Q2dZRFZRUUxFd052Y0hNeEVqQVFCZ05WQkFNVENVUmhkR0ZqCmJHOWhhekFlRncweU1EQTRNREV4TWpBNE1EQmFGdzAwTURBM01qY3hNakE0TURCYU1HQXhDekFKQmdOVkJBWVQKQWtOT01SQXdEZ1lEVlFRSUV3ZGlaV2xxYVc1bk1SQXdEZ1lEVlFRSEV3ZGlaV2xxYVc1bk1Rc3dDUVlEVlFRSwpFd0p2WkRFTU1Bb0dBMVVFQ3hNRGIzQnpNUkl3RUFZRFZRUURFd2xFWVhSaFkyeHZZV3N3Z2dFaU1BMEdDU3FHClNJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURERmNzQnpzb1dCaXRNRTJCK0gzZFZnWFdCdURoL0tiUzQKRU9KVmI0UVYzTUtsVFFZTERaZ2Q5Y2lXOWViWk5abG13ZmFhbnRoU0ZWb1hnSkxBYjV5cnZhRVFiVlVuZWRZMwpwTW96VDdWV2hiTE1uNUU3UjRVTjRPcjlPU0tOM1pYVEtDTENkd3Nqb09HZVVDdmp4T1FmVElBcE1TcUdOeFhTClB3U2VPNFZtMXFYUTRzUzhXQ0lxNG5uZkh6WGxRN0Nza040ZUpYb25zclNOUDlYN1luaE53MytNcDAyT2czd1MKak5hWFdIbDVJb1NVcTdXS3dncWdGZ1BpQjB6clV0bldTM1pTWGNFT0gvS3ViZXVNNFk2dERTZ0xQWVo2NDRzZwpRa3dLcThrSEUvNmlydlNOQXJhVXM2Q0dOa3gvZktCa0Zsbitqb0U2UU9HaTlnRnM4cEtGQWdNQkFBR2paakJrCk1BNEdBMVVkRHdFQi93UUVBd0lCQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQ01CMEdBMVVkRGdRV0JCU2MKQWxEaXpQd3pUa2JFQ21pZTRhS3prenIvOXpBZkJnTlZIU01FR0RBV2dCU2NBbERpelB3elRrYkVDbWllNGFLegprenIvOXpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVEvUWtIK3RpeGozQVlhRGsyZUtCSDFKSzBXUWlOQzZKCnU0WXdsdWtYbTdCRjdyYmV3UmNXeTE3RE1HNWk0c0N4WllhMks2NDFBWDFSSzVwYklyazVqYUh5MkorTWFhSzgKNVpJaUxnbkNJa2E0K0NGQ3Z6RkFVSFFsNjhFYWpHajJia0UzeWdVSU1kaCtWNzZaa3ErbVpia2oxcXN6eGk4MQpZN0doYlJWMllscDNkZWl6U2pHOWRaNFduRzhKVzBDMENWOEZWSUs0aFc1dmVOMkUvMUR1SkswNXVtalFMd28yCklyRFhSS2lHRUFBaXVnckFuNThXYS9sUlBLR3NjZTQwd0JyUXExL2NISG9SUUVwc05RcjlUUjJPSFVpckwrRGsKYkpUUXY3Q1dCb1l0Umw2V0I1YmdrSnFFZmMybnZiUzZWWTAyOFRmUjRTZ0ZrSDhDS3hNRGVBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
        server: https://10.4.7.10:7443
      name: myk8s
    contexts:
    - context:
        cluster: myk8s
        user: k8s-node
      name: myk8s-context
    current-context: myk8s-context
    kind: Config
    preferences: {}
    users:
    - name: k8s-node
      user:
        client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR3akNDQXFxZ0F3SUJBZ0lVWUFSNFVBUHgvUnFIOXRVaTRncThyR2NUUFpFd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1lERUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjJKbGFXcHBibWN4RURBT0JnTlZCQWNUQjJKbAphV3BwYm1jeEN6QUpCZ05WQkFvVEFtOWtNUXd3Q2dZRFZRUUxFd052Y0hNeEVqQVFCZ05WQkFNVENVUmhkR0ZqCmJHOWhhekFlRncweU1EQTRNRFV3TlRVNE1EQmFGdzAwTURBM016RXdOVFU0TURCYU1GOHhDekFKQmdOVkJBWVQKQWtOT01SQXdEZ1lEVlFRSUV3ZGlaV2xxYVc1bk1SQXdEZ1lEVlFRSEV3ZGlaV2xxYVc1bk1Rc3dDUVlEVlFRSwpFd0p2WkRFTU1Bb0dBMVVFQ3hNRGIzQnpNUkV3RHdZRFZRUURFd2hyT0hNdGJtOWtaVENDQVNJd0RRWUpLb1pJCmh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVo4ZDVMOUJLUGJwZTRaWHRQMzAxMUdjMkZXZnpKYVc5S2wKcnBnbCtWa0ZjeTlWTFFwUnVTSmtxMldvZDlKL2lza3Z2NVB3M3ZNNzY2K2RXZ1FRNlRQZXV5WnJJTldRbmJqbgpsN3dpeGFhcnp5SmVUVTZLaG5XMVl5VGIvV2ZNRWYweS9GdW0vWjNaV05UV2hNUFJ3RkhOK3hlc0RKM1VMYUlICnhZNlJlM0Fubml2SVl6RkljR2s2dTRObWZPNWlwRnREeG53OVBZZDY0eHU0T25OYVRLZzJMbmlQZzFSS3NubXUKNTBEWFp2Rld0dXlKbVM3aThFRFRIWDh0WmRUMlVIMm0xcVdTWHVPUXdWdHM1VTlyU3hLZStGUTNlVGh5cTJvcgpxOE1qOW9Id2FrdWdhdGJYS1Q5MUhaNDhNRzNnakw3NlRUQkJUU3F6VlE0eXRsYXh3L1VDQXdFQUFhTjFNSE13CkRnWURWUjBQQVFIL0JBUURBZ1dnTUJNR0ExVWRKUVFNTUFvR0NDc0dBUVVGQndNQ01Bd0dBMVVkRXdFQi93UUMKTUFBd0hRWURWUjBPQkJZRUZJUUxuU2phUkRYbUo1d2hmYllsMUVRVk16cWRNQjhHQTFVZEl3UVlNQmFBRkp3QwpVT0xNL0ROT1JzUUthSjdob3JPVE92LzNNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUMrK2hnL2JCOHRKVVlNCjk2VjExYVVvN3IrSXcvL2dKWlRYVjg0OWlENXQ2aWdaTWcwNTNPeHJFYTBLSkpNOW13M3N5RS9iWUFabG5KVUUKOEJCaFUwWFNLSUhFaW9OamEzNDFpcTFMUW93amV2T1I2a0l2aTFwNHVIZTVyUHI2YTI2T1VmL0EzWVYrdmU4YwpOVDlzdzh5dFVlUjB3ZVVqRXorc2QrR0hDSGlicmV1K2NWa2VwSm1LTmdGTW05bjZzdEYvME5nRnVzT1RQU2JqCmVzaTVaYnJzMCtEbWYrWkZxK280WUwrb09TMFdYZEhabzlVZ25qbDV3RUhiVDRKSi9pVFJ5RU1XMHRwNmUyUXkKeDdTQUN5WmFPY3FaSjM5TTVqaUlROGVBOGZzKzRaVTgwK1V0Smp5NWxtSUhPdGJxMEFlVitMdm96WUV3NmNYMAp3bkNmZlM5WQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
        client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBeG54M2t2MEVvOXVsN2hsZTAvZlRYVVp6WVZaL01scGIwcVd1bUNYNVdRVnpMMVV0CkNsRzVJbVNyWmFoMzBuK0t5Uysvay9EZTh6dnJyNTFhQkJEcE05NjdKbXNnMVpDZHVPZVh2Q0xGcHF2UElsNU4KVG9xR2RiVmpKTnY5Wjh3Ui9UTDhXNmI5bmRsWTFOYUV3OUhBVWMzN0Y2d01uZFF0b2dmRmpwRjdjQ2VlSzhoagpNVWh3YVRxN2cyWjg3bUtrVzBQR2ZEMDloM3JqRzdnNmMxcE1xRFl1ZUkrRFZFcXllYTduUU5kbThWYTI3SW1aCkx1THdRTk1kZnkxbDFQWlFmYWJXcFpKZTQ1REJXMnpsVDJ0TEVwNzRWRGQ1T0hLcmFpdXJ3eVAyZ2ZCcVM2QnEKMXRjcFAzVWRuand3YmVDTXZ2cE5NRUZOS3JOVkRqSzJWckhEOVFJREFRQUJBb0lCQUdHeit4Zzd2QUQ4cWgwZQpGL08zVmkvZjhnUEVGREN4RWVvSzdIcXdscUVmY2FlbkFkakdpWjlJZHFZLzIxdWV0SzU3OW8zWVQ2YmpwQXg2CkpFbEVHY2NTcUlVc3pxalIyeEdkenE4cFhxbkFnT0dtRWQvTGlJeUFrU0VmdVFsVEJyZmdWU0M0ZnJjb3VmVnEKODBlQkJHNUFPbzFZZjQxaFdHVWQ5ajFMbDd1SXBzQXJ1S3FiZC9zUFQ2LzJ6dEZLcHg5clE0SzE5UmNoQkhHeQpqbzJsYzdlR2MwVGg5NFk1ejl1ZTFZaDhteW1LejJySURrRFduUk9CL2FNQlhjVGNPL3BUaVUycU1XVzhkbmJsCkd6OERlS2VZTEVuc3dnUVpKSWtEUGJ5UDdaR09nWjF2elhGbHEwZWY4NEt2cXhkRWw2a3A1ZVQ5czU3Q202anoKWVJkaEF3RUNnWUVBMXJYVkduSFlvOXFISHlyUWRUZ2VXQUVVbml3OFhScWI3dkVVb2JEUFJGeStsOTE3RHJMNgpOQ3lLNXBxVlY3QVpWWW11RnpzVnovam9MRnk0NE5UZEE4OVJCRS9KeWxkRlYwaW93K3FFVzBGc2Jya2JCallqCldQVExLeDNpdzZHMzNxR1BMSVoyQWJBSEc5VW5lRHdDZTZ4U3A5WmpZVERoMStPdnhMbEJId1VDZ1lFQTdLZnMKck5nSktBU2hEVEhuaFpHUHJyUmdWWi9pK2lqVXRGZnBSTVRMOTBYMVpFekRLUzE2RnprdmE2aE41dlVDNTJOLwpHU0lDeVdydnloVjdCVUNsZDBwUjIxY2U1UHVwcjlEWFdXTGhldEsvQjJvNFVieU1Jb3JtWG0zWi9QOXNPbS9QCk1tN1R4UllGdFpWaExBL1hxYzFKT0h3R1N2bnRkMXhhcmJwL3hERUNnWUVBMHY2L1c0eHpPNW9kWFFpQzhCNWsKMjFDOGhTK3Raa1VtNWFtdC83TTBDOWNrU1RNU29nQktGb21MT2xEQTMvb2krMGNnZUozTXNxTEU3Z3QwZHlWWAp5RTJzTFJPSGxyc3FYanI5OWdGNWJnQWQ0YlV3Rkd1UlV2TEUwU3MrVThlUlhFdmgyZnlNN04yaUxyektXOEtGCklpblcxQzYvWEp4ZjQvdFJHSDZBdTAwQ2dZRUExdzRHV2s5N2lwMGlTVjVYT1I2OHhoTHVGQUZXZnVQSjN4U2cKU3pqVzdSN3F6em1lZy9YcW85MzRoTW1OK1ZvZlNHdzNISHkyc1poMnpWcFZ6OEVlWEZmeUtQTnpoTHhaU0FidApHekpyR25VVzJVTWlhTXlCUUFhZkw2SjkzSlcwSVNwbnpEbkFRYkl3Z0FGK0swOCtPUFR2RytCQXk3TndvdTRQCkRSNlVhcEVDZ1lFQTBWNHIzeUs2Q3VEVGRaQmtkMDdOMiszWldMeFVuYmJkSlZ5T2RoYzdlaXBsLzJUSDh2aDMKZjBJRFBlaThBTW9nb3pyb2RSRnZMKzdoT0JDYnZnVWRQeDJ0cU12SzlIQThTWEZ2ZVJrUUJrNkRaUzRSWVFyZgpvN0JpRVpycDR5dFhxbHEzQUFaT29YYUhNcUFSMkZwODNJRVNNUmxON0wxS1hPdzdJeUpXam5JPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
kind: ConfigMap
metadata:
  creationTimestamp: "2020-08-17T07:50:09Z"
  name: kubelet-cm
  namespace: default
  resourceVersion: "1480064"
  selfLink: /api/v1/namespaces/default/configmaps/kubelet-cm
  uid: 31505838-4e6f-40eb-8669-4d1b760594bd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻花之梦~~

谢谢老板的支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值