k8s安装部署apollo配置中心

一、文章大纲

二、安装MySQL5.7
三、创建apollo-config
四、创建apollo-admin
五、创建apollo-portal
六、查看apollo各个组件服务状态
七、访问apollo
八、nginx代理配置转发

#注意
一定要先启动apollo-config,再启动apollo-admin,最后启动apollo-portal

二、安装MySQL5.7

1、安装过程参考:离线安装mysql5.7_韩帅平的博客-CSDN博客

2、sql文件下载

apolloportaldb.sql​下载地址:https://github.com/nobodyiam/apollo-build-scripts/blob/master/sql/apolloportaldb.sql
apolloconfigdb.sql​下载地址:https://github.com/nobodyiam/apollo-build-scripts/blob/master/sql/apolloconfigdb.sql
#修改apolloconfigdb.sql文件
VALUES
    ('eureka.service.url', 'default', 'http://10.96.69.115:32109/eureka/', 'Eureka服务Url,多个service以英文逗号分隔'),   #修改localhost:8080为apollo-config的Service Ip+NodePort端口,可在apollo-config服务创建好之后再修改导入库表
    ('namespace.lock.switch', 'default', 'false', '一次发布只能有一个人修改开关'),
    ('item.key.length.limit', 'default', '128', 'item key 最大长度限制'),
    ('item.value.length.limit', 'default', '20000', 'item value最大长度限制'),
    ('config-service.cache.enabled', 'default', 'false', 'ConfigService是否开启缓存,开启后能提高性能,但是会增大内存消耗!');

3、数据库内导入config、admin数据库表

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5048
Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> source /usr/local/apolloconfigdb.sql;
mysql> source /usr/local/apolloportaldb.sql;

三、创建apollo-config(以下是我在环境中已生成的服务yaml文件,可按需修改)

1、apollo-config-deployment.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "2"
  creationTimestamp: "2023-04-19T08:38:44Z"
  generation: 2
  labels:
    appName: apollo
  name: apollo-config
  namespace: apollo
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      name: apollo-config
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: apollo
        ccse_app_name: apollo
        name: apollo-config
        source: CCSE
    spec:
      containers:
      - env:
        - name: SPRING_DATASOURCE_URL
          value: jdbc:mysql://IP:3306/ApolloConfigDB?characterEncoding=utf8  #IP为已创建好的数据库IP
        - name: SPRING_DATASOURCE_USERNAME
          value: root
        - name: SPRING_DATASOURCE_PASSWORD
          value: ******  #数据库密码
        image: apolloconfig/apollo-configservice:latest
        imagePullPolicy: Always
        name: apollo-config
        resources:
          limits:
            cpu: "4"
            memory: 4Gi
          requests:
            cpu: 100m
            memory: 128Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: apollo
      nodeSelector:
        apollo: "151"
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /etc/localtime
          type: ""
        name: localtime

2、apollo-config-service.yaml文件

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2023-04-19T08:41:39Z"
  labels:
    appName: apollo
    workloadKind: Deployment
    workloadName: apollo-config
  name: apollo-config
  namespace: apollo
spec:
  clusterIP: 10.96.69.115
  externalTrafficPolicy: Cluster
  ports:
  - name: "8080"
    nodePort: 32109
    port: 32109
    protocol: TCP
    targetPort: 8080
  selector:
    name: apollo-config
  sessionAffinity: None
  type: NodePort

四、创建apollo-admin

1、apollo-admin-deployment.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2023-04-19T08:53:03Z"
  generation: 1
  labels:
    appName: apollo
  name: apollo-admin
  namespace: apollo
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      name: apollo-admin
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: apollo
        ccse_app_name: apollo
        name: apollo-admin
        source: CCSE
    spec:
      containers:
      - env:
        - name: SPRING_DATASOURCE_URL
          value: jdbc:mysql://IP:3306/ApolloConfigDB?characterEncoding=utf8   #修改数据库地址
        - name: SPRING_DATASOURCE_USERNAME
          value: root
        - name: SPRING_DATASOURCE_PASSWORD
          value: ******    #数据库密码
        image: apolloconfig/apollo-adminservice:latest
        imagePullPolicy: Always
        name: apollo-admin
        resources:
          limits:
            cpu: "4"
            memory: 4Gi
          requests:
            cpu: 100m
            memory: 128Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: apollo
      nodeSelector:
        apollo: "151"
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /etc/localtime
          type: ""
        name: localtime

2、apollo-admin-service.yaml文件

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2023-04-19T08:56:52Z"
  labels:
    appName: apollo
    workloadKind: Deployment
    workloadName: apollo-admin
  name: apollo-admin
  namespace: apollo
spec:
  clusterIP: 10.96.178.0
  externalTrafficPolicy: Cluster
  ports:
  - name: "8090"
    nodePort: 32108
    port: 32108
    protocol: TCP
    targetPort: 8090
  selector:
    name: apollo-admin
  sessionAffinity: None
  type: NodePort

五、创建apollo-portal

1、apollo-portal-deployment.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2023-04-19T08:43:15Z"
  generation: 1
  labels:
    appName: apollo
  name: apollo-portal
  namespace: apollo
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      name: apollo-portal
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: apollo
        ccse_app_name: apollo
        name: apollo-portal
        source: CCSE
    spec:
      containers:
      - env:
        - name: SPRING_DATASOURCE_URL
          value: jdbc:mysql://IP:3306/ApolloPortalDB?characterEncoding=utf8   #数据库地址
        - name: SPRING_DATASOURCE_USERNAME
          value: root
        - name: SPRING_DATASOURCE_PASSWORD
          value: ******   #数据库密码
        - name: APOLLO_PORTAL_ENVS
          value: dev
        - name: DEV_META
          value: http://10.96.69.115:32109   #apollo-config的Service Ip+NodePort端口
        image: apolloconfig/apollo-portal:latest
        imagePullPolicy: Always
        name: apollo-portal
        resources:
          limits:
            cpu: "4"
            memory: 4Gi
          requests:
            cpu: 100m
            memory: 128Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: apollo
      nodeSelector:
        apollo: "151"
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /etc/localtime
          type: ""
        name: localtime

2、apollo-portal-service.yaml文件

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2023-04-19T08:55:49Z"
  labels:
    appName: apollo
    workloadKind: Deployment
    workloadName: apollo-portal
  name: apollo-portal
  namespace: apollo
spec:
  clusterIP: 10.96.210.42
  externalTrafficPolicy: Cluster
  ports:
  - name: "8070"
    nodePort: 32110
    port: 32115
    protocol: TCP
    targetPort: 8070
  selector:
    name: apollo-portal
  sessionAffinity: None
  type: NodePort

六、查看Apollo各个服务组件状态

kubectl get pods,svc,deployment -n apollo -o wide | grep apollo

pod/apollo-admin-946b849fc-t77jj                      1/1     Running            0          21h     172.26.20.166    IP   <none>           <none>
pod/apollo-config-547c79c5d6-nrdns                    1/1     Running            0          21h     172.26.20.190    IP   <none>           <none>
pod/apollo-portal-9694d748c-4mzpq                     1/1     Running            0          21h     172.26.20.182    IP   <none>           <none>
service/apollo-admin                     NodePort    10.96.178.0     <none>        32108:32108/TCP              22h     name=apollo-admin
service/apollo-config                    NodePort    10.96.69.115    <none>        32109:32109/TCP              22h     name=apollo-config
service/apollo-portal                    NodePort    10.96.210.42    <none>        32115:32110/TCP              22h     name=apollo-portal
deployment.apps/apollo-admin                        1/1     1            1           22h     apollo-admin                     apolloconfig/apollo-adminservice:latest                          name=apollo-admin
deployment.apps/apollo-config                       1/1     1            1           22h     apollo-config                    apolloconfig/apollo-configservice:latest                         name=apollo-config
deployment.apps/apollo-portal                       1/1     1            1           22h     apollo-portal                    apolloconfig/apollo-portal:latest                                name=apollo-portal

七、访问apollo,网址:http://IP:32110/

1、apollo前端页面,默认账号密码:apollo/admin

八、nginx代理配置转发

1、内网可通过nginx代理暴露服务,conf文件配置如下:

upstream nodes2.apollo-portal {
    server IP:32110;
    server IP:32110;
    server IP:32110;
    server IP:32110;
    server IP:32110;
    server IP:32110;
    server IP:32110;
    server IP:32110;
    server IP:32110;
    server IP:32110;
}   
   location / {
        proxy_pass http://nodes2.apollo-portal/;
        proxy_http_version 1.1;
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Port 80;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    limit_conn one 10000;
    limit_rate 40960k;

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/13519.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

matrix部署

一、环境描述 首先matrix是一个去中心化的聊天服务&#xff0c;matrix实现了端对端的加密&#xff0c;这意味着不仅其他人无法查看你的聊天内容&#xff0c;哪怕你更换了一个终端&#xff0c;你也需要私钥才能够查看你的聊天记录。 这是终极的隐私保护方案&#xff0c;因为一旦…

深入理解机器学习——过拟合(Overfitting)与欠拟合(Underfitting)

分类目录&#xff1a;《深入理解深度学习》总目录 机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好&#xff0c;而不只是在训练集上表现良好。在先前未观测到的输入上表现良好的能力被称为泛化&#xff08;Generalization&#xff09;。通常情况下&…

20、单元测试

文章目录 1、JUnit5 的变化2、JUnit5常用注解3、断言&#xff08;assertions&#xff09;1、简单断言2、数组断言3、组合断言4、异常断言5、超时断言6、快速失败 4、前置条件&#xff08;assumptions&#xff09;5、嵌套测试6、参数化测试7、迁移指南 【尚硅谷】SpringBoot2零基…

医院体检PEIS系统源码

一、医院体检系统概述 1. 医院体检系统概述 目前&#xff0c;大多数的体检还停留在手工操作上&#xff0c;如单位体检时手工书写体检人员信息、医生手工书写体检结果、检验报告打印后进行手工粘贴等&#xff0c;这样造成极大的工作量&#xff0c;效率低下&#xff0c;而且极易…

OpenCV 安卓编程示例:1~6 全

原文&#xff1a;OpenCV Android Programming By Example 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&#xff0c;…

npm和yarn的相同点和不同点

官网 npmhttps://www.npmjs.com Home | Yarn - Package ManagerFast, reliable, and secure dependency management.https://yarnpkg.com Fast, disk space efficient package manager | pnpmFast, disk space efficient package managerhttps://pnpm.io 使用场景 npm&#x…

发布会前准备新闻通稿的重要性,为什么媒体不会原稿发布报道?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体 胡老师。 最近有宣传的小伙伴问胡老师&#xff0c;为什么我们精心准备的新闻通稿&#xff0c;媒体没有按照稿子发布呢&#xff1f;今天就与大家交流下这方面的经验。 一&#xff0c;发布会前准备新…

4月20日第壹简报,星期四,农历三月初一,谷雨

4月20日第壹简报&#xff0c;星期四&#xff0c;农历三月初一&#xff0c;谷雨坚持阅读&#xff0c;静待花开1. 已致29人死亡&#xff0c;26人为患者&#xff01;北京长峰医院火灾事故因院内施工作业火花引发&#xff0c;院长王某玲等12人被刑拘。2. 海南发布旅游产品参考价格&…

教你轻松申请Azure OpenAI

Azure OpenAI 和 OpenAI 官方提供的服务基本是一致的&#xff0c;但是目前前者还是处于预览版的状态&#xff0c;一些功能还没有完全开放。 优点&#xff1a; 不受地域限制&#xff0c;国内可以直接调用。可以自己上传训练数据进行训练&#xff08;据说很贵&#xff09;。Azu…

低代码开发重要工具:jvs-logic(逻辑引擎)可视化设计要素

逻辑引擎可视化的交互 可视化的服务编排是逻辑引擎的核心功能&#xff0c;逻辑引擎的界面可视化设计是为了方便用户使用和操作逻辑引擎而设计的。一个好的界面设计能够提高用户的工作效率和使用体验&#xff0c;同时也能增加软件的可靠性和可维护性。 以下是逻辑引擎界面可视化…

【Linux初阶】进程的相关概念 | 进程管理 查看进程 获取进程标识符 fork进程创建

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;进程的概念&#xff0c;进程管理初识&#xff08;描述、管理进程&#xff09;&#xff0c;查看进程的基础方法…

K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示

K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明时序:对应程序: 四、部分代码说明1、接线引脚定义1.1、STC89C52RCRC522射频模块1.2、STM32F103C8T6RC522射频模块 五、基础知识学习与相关资料下…

使用chatgpt实现微信聊天小程序(秒回复),github开源(附带链接)

文章目录 前言效果展示原理说明服务器端代码说明微信小程序代码说明代码链接总结 前言 我在前一段时间突发奇想&#xff0c;就使用java来调用chatgpt的接口&#xff0c;然后写了一个简单小程序&#xff0c;也上了热榜第一&#xff0c;java调用chatgpt接口&#xff0c;实现专属…

nodejs+vue 智能餐厅菜品厨位分配管理系统

系统功能主要介绍以下几点&#xff1a; 本智能餐厅管理系统主要包括三大功能模块&#xff0c;即用户功能模块和管理员功能模块、厨房功能模块。 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员功能来…

基于matlab使用 CSI-RS 的 NR 下行链路发射端波束细化

一、前言 此示例演示了使用 5G 工具箱中的信道状态信息参考信号 &#xff08;CSI-RS&#xff09; 的下行链路发射端波束细化过程。该示例展示了如何在散射环境中向不同方向传输多个CSI-RS资源&#xff0c;以及如何根据参考信号接收功率&#xff08;RSRP&#xff09;测量结果选择…

编写高质量代码:改善Java程序的151个建议(数组和集合)

集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序&#xff0c;compareTo方法是Comparable接口要求必须实现的&#xff0c;它与equals方法有关系吗?有关系&#xff0c;在compareTo的返回为0时&#xff0c;它表示的是 进行比较的两个元素时相等…

某医院网络安全分析案例

背景 我们已将NetInside流量分析系统部署到某市医院的机房内&#xff0c;使用流量分析系统提供实时和历史原始流量。本次分析重点针对网络流量安全进行分析&#xff0c;以供安全取证、网络质量监测以及深层网络分析。 分析时间 报告分析时间范围为&#xff1a;2023-04-12 16…

Cloud Kernel SIG月度动态:发布 Anolis 8.8 镜像、kABI 社区共建流程

Cloud Kernel SIG&#xff08;Special Interest Group&#xff09;&#xff1a;支撑龙蜥内核版本的研发、发布和服务&#xff0c;提供生产可用的高性价比内核产品。 01 SIG 整体进展 Anolis 8.8 镜像发布&#xff0c;默认搭载 ANCK 5.10-013 版本。 Anolis 23 滚动内核更新至…

ai智能文章生成器-ai论文写作

在数字时代&#xff0c;营销推广策略已经向数字化方向发展。今天我们要介绍的是一款名为“智能ai写作免费”的软件&#xff0c;它可以让营销人员轻松地创作新的内容&#xff0c;并且其中不需要过多的技术知识或文学背景。这款软件可以为许多企业和机构带来创造性的帮助。 智能A…

@Async异步线程:Spring 自带的异步解决方案

前言 在项目应用中&#xff0c;使用MQ异步调用来实现系统性能优化&#xff0c;完成服务间数据同步是常用的技术手段。如果是在同一台服务器内部&#xff0c;不涉及到分布式系统&#xff0c;单纯的想实现部分业务的异步执行&#xff0c;这里介绍一个更简单的异步方法调用。 对于…