草庐IT

【华为云CCE】 k8s部署nacos集群

布克酥 2023-07-15 原文

业务场景:

        华为CCE,根据自己的nacos镜像,部署nacos集群。由于公司使用的是华为云CCE内网环境,不能通过外网下载镜像,只能根据公司自己的镜像进行部署。看了网上华为云CCE部署nacos集群,都是通过官方的k8s-nacos,使用helm进行部署。这个方式不太适合公司的业务场景,公司还是希望通过CCE页面进行容器部署,经过一段时间的研究,终于实现。话不多说,上过程

前期准备

1、购买CCE资源,加3台节点,这里不多说

2、本地下载nacos镜像

3、登录华为云CCE,镜像仓库 》 组织管理 》 创建组织,我组织名称 bukesu

4、上传镜像,在我的镜像出选择客户端上传,如下:

5、修改镜像名称

根据4中要求修改镜像的组织名称等

docker tag nacos/nacos-server:latest swr.cn-east-3.myhuaweicloud.com/bukesu/nacos/nacos-server:latest

6、在上面第4步,客户端上传 中获取临时登录指令,复制命令执行

 7、推送镜像到仓库

docker push swr.cn-east-3.myhuaweicloud.com/bukesu/nacos/nacos-server:latest

然后查看CCE镜像仓库中就有nacos镜像了

8、自己准备一个mysql数据库,并初始化nacos需要的配置表

 部署nacos集群

工作负载基本信息

1、进入云容器引擎,工作负载 》有状态负载 》 创建有状态负载

2、下一步选择镜像

容器设置

设置容器基本信息

设置如下环境变量

    PREFER_HOST_MODE    hostname     
    SPRING_DATASOURCE_PLATFORM    mysql     
    MYSQL_SERVICE_HOST    ip     
    MYSQL_SERVICE_DB_NAME    nacos     
    MYSQL_SERVICE_PORT    3306     
    MYSQL_SERVICE_USER    root 
    MYSQL_SERVICE_PASSWORD    密码   

        

工作负载访问设置

设置实例间发现服务,需要设置服务名称,和四个容器端口如下:

设置完成点击下一步。

点击创建

查看工作负载详情

 添加访问方式

点击访问方式  》 添加Service,集群内访问模式,配置如下

 再次点击添加Service,节点访问模式,配置如下

创建完成后,网络管理如下:

 此时可以通过节点访问中的访问地址,访问nacos,如下:

到这里还是单节点,所以接下来需要将3个节点都拿出来,

节点ip 组成如下:

pod名称.实例间发现服务域名:8848

所以三个节点的ip分别是:

nacos-cluster-0.nacos-hs.default.svc.cluster.local:8848

nacos-cluster-1.nacos-hs.default.svc.cluster.local:8848

nacos-cluster-2.nacos-hs.default.svc.cluster.local:8848

将这三个ip用逗号连在一起变成:

nacos-cluster-0.nacos-hs.default.svc.cluster.local:8848,nacos-cluster-1.nacos-hs.default.svc.cluster.local:8848,nacos-cluster-2.nacos-hs.default.svc.cluster.local:8848

 返回工作负载,点击更新升级 > 高级设置:

 添加环境变量:NACOS_SERVERS,设置成三个节点ip连接在一起,如下

 确定  》  提交 ,然后升级,等待一会儿。当三个节点都启动后,访问nacos地址

到此处,集群就构建完成了。虽然有些繁琐,但是满足了公司业务的要求。

个人学习总结,如有不对之处,还请指出! 

有关【华为云CCE】 k8s部署nacos集群的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  3. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  4. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  5. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  6. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  7. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  8. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  9. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

  10. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

随机推荐