k8s搭建高可用spring-cloud-config配置中心集群

k8s搭建高可用配置中心

  • 查找镜像
  • docker部署
    • 关闭认证方式部署
    • 开启认证方式部署
  • docker-compose方式部署
  • k8s方式部署
    • 使用configMap挂载配置
    • 挂载本地目录方式
  • 测试应用加载配置中心配置启动

查找镜像

镜像地址: https://hub.docker.com/r/lhstack/config-server
k8s搭建高可用spring-cloud-config配置中心集群_第1张图片

docker部署

关闭认证方式部署

docker run --name config-server -p 7000:7000 -e EUREKA_SERVER_URL="http://admin:[email protected]:8761/eureka" -e SECURITY_ENABLE=false -d lhstack/config-server

k8s搭建高可用spring-cloud-config配置中心集群_第2张图片
k8s搭建高可用spring-cloud-config配置中心集群_第3张图片
k8s搭建高可用spring-cloud-config配置中心集群_第4张图片

开启认证方式部署

# 停掉之前运行的容器
docker rm -f config-server
# 启动带认证方式的容器,使用默认用户名和密码
docker run --name config-server -p 7000:7000 -e EUREKA_SERVER_URL="http://admin:[email protected]:8761/eureka" -v ${PWD}/config:/config-server/conf/config -d lhstack/config-server

这个时候就需要用户名和密码了
k8s搭建高可用spring-cloud-config配置中心集群_第5张图片

docker-compose方式部署

# 停掉启动的容器
docker rm -f config-server
cat > docker-compose.yml <<EOF
version: '3'
services:
  config-server-1:
    image: lhstack/config-server
    container_name: config-server-1
    ports:
    - 7001:7000
    environment:
      EUREKA_SERVER_URL: "http://admin:[email protected]:8761/eureka"
      JAVA_OPTS: "-Xmx128m -Xms128m"
      SECURITY_USERNAME: admin
      SECURITY_PASSWORD: admin
    volumes:
    - ./config:/config-server/conf/config
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: '256M'
    logging:
      options:
        max-file: '1'
        max-size: '3k'
  config-server-2:
    image: lhstack/config-server
    container_name: config-server-2
    ports:
    - 7002:7000
    environment:
      EUREKA_SERVER_URL: "http://admin:[email protected]:8761/eureka"
      JAVA_OPTS: "-Xmx128m -Xms128m"
      SECURITY_USERNAME: admin
      SECURITY_PASSWORD: admin
    volumes:
    - ./config:/config-server/conf/config
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: '256M'
    logging:
      options:
        max-file: '1'
        max-size: '3k'
EOF
docker-compose up -d

k8s搭建高可用spring-cloud-config配置中心集群_第6张图片
在config目录下面创建对应配置文件
在这里插入图片描述
k8s搭建高可用spring-cloud-config配置中心集群_第7张图片

k8s方式部署

使用configMap挂载配置

# 停掉启动的配置中心
docker-compose down
# 生成脚本
cat > config-server.yml<<EOF
apiVersion: v1
kind: Service
metadata:
  name: config-server
spec:
  type: ClusterIP
  ports:
  - name: http
    port: 7000
  selector:
    app: config-server
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-server
data:
  test-a.yml: |
    server:
      port: 8761
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: config-server
spec:
  replicas: 2
  selector:
    matchLabels:
      app: config-server
  template:
    metadata:
      labels:
        app: config-server
    spec:
      volumes:
      - name: config
        configMap:
          name: config-server
      containers:
      - name: config-server
        image: lhstack/config-server
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 7000
        env:
        - name: "JAVA_OPTS"
          value: "-Xmx512m -Xms512m"
        - name: EUREKA_SERVER_URL
          value: "http://admin:[email protected]:8761/eureka"
        - name: SECURITY_USERNAME
          value: "admin"
        - name: SECURITY_PASSWORD
          value: "123456"
        volumeMounts:
        - name: config
          mountPath: /config-server/conf/config
        resources:
          requests:
            cpu: 50m
            memory: 64Mi
          limits:
            cpu: 100m
            memory: 512Mi
EOF
kubectl apply -f config-server.yml
kubectl get pod

k8s搭建高可用spring-cloud-config配置中心集群_第8张图片
第一次安装会先拉取镜像
在这里插入图片描述
k8s搭建高可用spring-cloud-config配置中心集群_第9张图片
k8s搭建高可用spring-cloud-config配置中心集群_第10张图片
修改configMap中配置的内容,加上test-b.yml配置
k8s搭建高可用spring-cloud-config配置中心集群_第11张图片

在这里插入图片描述
等待几秒钟,再次访问配置中心
k8s搭建高可用spring-cloud-config配置中心集群_第12张图片

挂载本地目录方式

# 停掉之前启动的集群
kubectl delete -f config-server.yml
# 创建集群
cat > config-server.yml<<EOF
apiVersion: v1
kind: Service
metadata:
  name: config-server
spec:
  type: ClusterIP
  ports:
  - name: http
    port: 7000
  selector:
    app: config-server
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: config-server
spec:
  replicas: 2
  selector:
    matchLabels:
      app: config-server
  template:
    metadata:
      labels:
        app: config-server
    spec:
      volumes:
      - name: config
        hostPath:
          path: /home/springcloud/config-server/config #挂载配置所在目录
      containers:
      - name: config-server
        image: lhstack/config-server
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 7000
        env:
        - name: "JAVA_OPTS"
          value: "-Xmx512m -Xms512m"
        - name: EUREKA_SERVER_URL
          value: "http://admin:[email protected]:8761/eureka"
        - name: SECURITY_USERNAME
          value: "admin"
        - name: SECURITY_PASSWORD
          value: "123456"
        volumeMounts:
        - name: config
          mountPath: /config-server/conf/config
        resources:
          requests:
            cpu: 50m
            memory: 64Mi
          limits:
            cpu: 100m
            memory: 512Mi
EOF
# 启动集群
kubectl apply -f config-server.yml

k8s搭建高可用spring-cloud-config配置中心集群_第13张图片
添加配置到挂载的目录里面
k8s搭建高可用spring-cloud-config配置中心集群_第14张图片
k8s搭建高可用spring-cloud-config配置中心集群_第15张图片
k8s搭建高可用spring-cloud-config配置中心集群_第16张图片

测试应用加载配置中心配置启动

k8s搭建高可用spring-cloud-config配置中心集群_第17张图片

k8s搭建高可用spring-cloud-config配置中心集群_第18张图片
k8s搭建高可用spring-cloud-config配置中心集群_第19张图片

你可能感兴趣的:(k8s,spring,spring,cloud,docker,k8s)