tnblog
首页
视频
资源
登录

Kubernetes安装 Apollo

4798人阅读 2022/10/21 22:53 总访问:3467146 评论:0 收藏:0 手机
分类: .net后台框架

Kubernetes

Kubernetes安装 Apollo


首先安装存储。

Centos 安装nfs

  1. systemctl stop firewalld
  2. systemctl disable firewalld
  3. yum install -y nfs-common nfs-utils
  4. mkdir /nfsdata
  5. chmod 666 /nfsdata
  6. vi /etc/exports
  7. /nfsdata *(rw,async)
  8. exportfs -rv
  9. systemctl start rpcbind
  10. systemctl start nfs
  11. systemctl enable rpcbind.service nfs
  12. showmount -e
  13. yum install -y nfs-utils

Ubuntu 安装nfs

  1. apt-get install nfs-kernel-server -y
  2. sudo ufw disable
  3. mkdir /nfsdata
  4. chmod 666 /nfsdata
  5. echo "/nfsdata *(async,insecure,no_root_squash,no_subtree_check,rw)" > /etc/exports
  6. cat /etc/exports
  7. /etc/init.d/nfs-kernel-server restart
  8. showmount -e

k8s工作节点安装nfs

  1. apt install nfs-common -y
  2. yum install -y nfs-utils

安装NFS Storage

  1. wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/releases/download/nfs-subdir-external-provisioner-4.0.16/nfs-subdir-external-provisioner-4.0.16.tgz
  2. #解压
  3. tar -xvf nfs-subdir-external-provisioner-4.0.16.tgz
  4. cd nfs-subdir-external-provisioner
  5. ifconfig
  6. vim values.yaml

  1. kubectl create ns nfs
  2. helm install nfs-subdir-external-provisioner . -n nfs
  3. kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

安装Mysql

  1. helm repo add my-repo https://charts.bitnami.com/bitnami
  2. kubectl create ns mysql
  3. helm install my-release \
  4. --set auth.rootPassword=bob \
  5. --set auth.username=bob \
  6. --set auth.password=bob \
  7. -n mysql \
  8. my-repo/mysql
  9. MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace mysql my-release-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)
  10. echo $MYSQL_ROOT_PASSWORD

Apollo

  1. helm repo add apollo https://charts.apolloconfig.com
  2. helm search repo apollo
  3. kubectl create ns apollo
  1. mkdir -p /root/apollo/apollo-service/ && cd /root/apollo/apollo-service/
  2. # 拉取 chart 到本地 /root/apollo/apollo-service/ 目录
  3. helm pull apollo/apollo-service --version 0.5.1
  4. tar -zxvf apollo-service-0.5.1.tgz
  5. cp apollo-service/values.yaml ./values-test.yaml
  6. # 查看当前目录层级
  7. tree -L 2
  8. .
  9. ├── apollo-service
  10. ├── Chart.yaml
  11. ├── templates
  12. └── values.yaml
  13. ├── apollo-service-xxx.tgz
  14. └── values-test.yaml

创建数据库

  1. # 获取数据库初始化语句
  2. # https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloconfigdb.sql
  3. # https://raw.githubusercontent.com/apolloconfig/apollo/master/scripts/sql/apolloconfigdb.sql
  4. wget https://raw.githubusercontent.com/apolloconfig/apollo/master/scripts/sql/apolloconfigdb.sql -O /tmp/apolloconfigdb.sql
  5. cat /tmp/apolloconfigdb.sql
  6. kubectl cp /tmp/apolloconfigdb.sql mysql/my-release-mysql-0:/tmp/apolloconfigdb.sql
  7. kubectl exec -n mysql -it pod/my-release-mysql-0 /bin/bash
  8. # 连接部署好的 Mysql 数据,创建 apollo 账户和数据库
  9. mysql -uroot -p
  10. # 或 mysql -h mysql_host -u root -p root123
  11. mysql > create database ApolloConfigDB default character set utf8mb4 collate utf8mb4_unicode_ci;
  12. mysql > create user 'apollo'@'%' identified by 'apollo';
  13. mysql > grant all on ApolloConfigDB.* to 'apollo'@'%';
  14. # 老版本 mysql > grant all on ApolloConfigDB.* to 'bob'@'%' identified by 'bob';
  15. # 执行数据库初始化语句
  16. mysql > source /tmp/apolloconfigdb.sql;
  1. vim values-test.yaml
  2. configdb:
  3. name: apollo-configdb
  4. host: "my-release-mysql.mysql"
  5. port: 3306
  6. dbName: ApolloConfigDB
  7. userName: "apollo"
  8. password: "apollo"
  1. helm -n apollo install apollo-service apollo-service -f values-test.yaml | tee test.log
  2. helm -n apollo list

安装 apollo-portal

  1. helm repo add apollo https://www.apolloconfig.com/charts/
  2. helm repo update
  3. helm search repo apollo-portal
  4. mkdir -p /root/apollo/apollo-portal/ && cd /root/apollo/apollo-portal/
  5. # 拉取 chart 到本地 /root/apollo/apollo-portal/ 目录
  6. helm pull apollo/apollo-portal --version 0.5.1
  7. tar -zxvf apollo-portal-0.5.1.tgz
  8. cp apollo-portal/values.yaml ./values-test.yaml
  9. # 查看当前目录层级
  10. tree -L 2
  11. .
  12. ├── apollo-portal
  13. ├── Chart.yaml
  14. ├── templates
  15. └── values.yaml
  16. ├── apollo-portal-0.5.1.tgz
  17. └── values-test.yaml
  1. # 获取数据库初始化语句
  2. # https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloportaldb.sql
  3. # https://raw.githubusercontent.com/apolloconfig/apollo/master/scripts/sql/apolloportaldb.sql
  4. wget https://raw.githubusercontent.com/apolloconfig/apollo/master/scripts/sql/apolloportaldb.sql -O /tmp/apolloportaldb.sql
  5. kubectl cp /tmp/apolloportaldb.sql mysql/my-release-mysql-0:/tmp/apolloportaldb.sql
  6. kubectl exec -n mysql -it pod/my-release-mysql-0 /bin/bash
  7. # 连接部署好的 Mysql 数据,创建 apollo 账户和数据库
  8. mysql -uroot -p
  9. mysql > create database ApolloPortalDB default character set utf8mb4 collate utf8mb4_unicode_ci;
  10. mysql > grant all on ApolloPortalDB.* to 'apollo'@'%';
  11. # 执行数据库初始化语句
  12. mysql > source /tmp/apolloportaldb.sql
  13. exit
  14. exit
  1. vim values-test.yaml
  1. cat values-test.yaml
  2. name: apollo-portal
  3. fullNameOverride: "apollo-portal"
  4. replicaCount: 1
  5. containerPort: 8070
  6. # SVC 配置
  7. service:
  8. fullNameOverride: ""
  9. port: 8070
  10. targetPort: 8070
  11. type: ClusterIP
  12. sessionAffinity: ClientIP
  13. # ingress 配置,方便集群外访问
  14. ingress:
  15. enabled: true
  16. annotations: {}
  17. hosts:
  18. - host: "apollo.evescn.com"
  19. paths: [/]
  20. tls: []
  21. nodeSelector: {}
  22. # 配置定义,定义当前 apollo 的环境以及对应环境的 configservice 地址,支持配置多个环境,网络上可以访问即可, dev,fat,uat,prod 参数
  23. config:
  24. envs: fat
  25. metaServers:
  26. fat: http://apollo-configservice.apollo:8080
  27. # 服务对应外部数据库地址信息
  28. portaldb:
  29. name: apollo-portaldb
  30. # apolloportaldb host
  31. host: "my-release-mysql.mysql"
  32. port: 3306
  33. dbName: ApolloPortalDB
  34. userName: apollo
  35. password: apollo
  1. helm -n apollo install apollo-portal apollo-portal -f values-test.yaml | tee test.log
  2. helm -n apollo list
  1. export POD_NAME=$(kubectl get pods --namespace apollo -l "app=apollo-portal" -o jsonpath="{.items[0].metadata.name}")
  2. echo "Visit http://0.0.0.0:8070 to use your application"
  3. kubectl --address 0.0.0.0 --namespace apollo port-forward $POD_NAME 8070:8070


账号和密码就是:apollo/admin


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

阿里云 Kubernetes

https://help.aliyun.com/document_detail/86759.html 可以有三种计费方式https://ecs-buy.aliyun.com/wizard?spm=5176.13...

Kubernetes Job讲解

kubernetes Job讲解[TOC] 需求来源Job 背景问题我们可以通过Pod来直接运行任务进程吗?这样做将会产生以下几种问题:1. 我...

Kubernetes DaemonSet讲解

Kubernetes DaemonSet讲解[TOC] 需求来源背景问题我们可以让每个集群内的节点都运行一个相同的Pod吗?如果这样做,以下的...

Kubernetes Pod中断预算【PDB】

Kubernetes Pod中断预算【PDB】[TOC] 尽管Deployment或ReplicaSet一类的控制器能够确保相应Pod对象的副本数量不断逼近期...

Kubernetes Velero 备份的运用

Velero 的运用[TOC] Velero简介Velero是一个开源工具,可以安全地备份,恢复和迁移Kubernetes集群和持久卷。它既可以在本...

Kubernetes 应用配置管理

Kubernetes 应用配置管理[TOC] 需求来源背景问题除了依托容器镜像来定义运行的Container,Pod还需要解决如下问题:1. 不可...

Kubernetes 应用存储和持久化数据卷

Kubernetes 应用配置管理[TOC] Volumes介绍Pod Volumes1. 如果一个Pod中某一个容器异常退出,被kubelet拉起如何保证之前的...

Kubernetes 应用存储和持久化数据卷:存储快照与拓扑调度

Kubernetes 应用存储和持久化数据卷:存储快照与拓扑调度[TOC] 基本知识存储快照产生背景1. 如何保证重要数据在误操作之后...

Kubernetes网络(IPVLAN与MACVLAN)

Kubernetes网络模型[TOC] 三种网络模型 在k8s中一般常见的网络模型支持三种,虚拟网桥、多路复用和硬件交换。 虚拟网...

Kubernetes IP Address

Kubernetes IP Address[TOC] IP AddressIP地址是在计算机网络中被用来唯一标识设备的一组数字。IPv4地址由32位二进制数值...

Dapr 官方教程第二章(Hello World Kubernetes)

Dapr 官方教程第二章(Hello World Kubernetes)[TOC] 本教程将帮助您在 Kubernetes 集群中使用 Dapr。您将从Hello World部...

Kubernetes 搭建RabbitMq集群环境

Kubernetes 搭建RabbitMq集群环境[TOC] 由于Kubectl RabbitMQ 插件在官方是基于krew进行安装的所以我们首先需要安装krew插...

Kubernetes 删除命名空间

Kubernetes 删除命名空间[TOC] 可以直接通过如下命令删除k8s中命名空间下的所有资源。kubectl delete ns [namespace] ...

Kubernetes top之安装metrics-server

Kubernetes top之安装metrics-server[TOC] 一般我们需要知道kubernetes的pod与node的cpu与内存使用情况时,我们可以通过ku...

Kubernetes ExternalName Service

Kubernetes ExternalName Service[TOC] ExternalName 的服务与普通服务的区别在于:将服务映射到 DNS 名称。如下图所示: ...

Kubernetes 自定义Endpoint资源

Kubernetes 自定义Endpoint资源[TOC] 当pod需要服务发布出去的时候中间所关联的还有一个Endpoint这个资源,它能确定服务关...
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术