首页 > 其他分享 >云计算-代码开发流水线及CCE容器集群使用案例

云计算-代码开发流水线及CCE容器集群使用案例

时间:2024-01-20 21:31:52浏览次数:37  
标签:cce service redis test 集群 镜像 CCE 流水线 com

总结自己在使用华为云商业CI/CD代码流水和CCE容器集群部署案例

学无止尽啊

新项目构建镜像

使用华为codearts代码流水线,详细见官方文档

https://support.huaweicloud.com/productdesc-devcloud/devcloud_pdtd_00000.html

以部署report-service构建测试镜像为例

dockerfile文件

前端

FROM swr.cn-north-4.myhuaweicloud.com/ismart-common-service/share-elastic-filebeat:7.15.1


COPY filebeat_test.yml /usr/share/filebeat/filebeat.yml
COPY run.sh /usr/share/filebeat/


# 第2阶段
FROM swr.cn-north-4.myhuaweicloud.com/ismart-common-service/nginx:latest
COPY --from=build-filebeat /usr/share/filebeat /usr/share/filebeat

ENV LANG C.UTF-8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir -p /app && mkdir -p /config && chmod -R 777 /app

# 将当前文件夹的dist文件复制到容器的/usr/share/nginx/html目录
COPY ./dist /app/dist
COPY ./test/nginx.conf /etc/nginx/nginx.conf
COPY ./test /app/dist

VOLUME ["/var/log/nginx"]
WORKDIR  /app

EXPOSE 8090

# 同时运行nginx和filebeat服务
WORKDIR  /usr/share/filebeat/
RUN chmod -R 777 run.sh
ENTRYPOINT  ["/usr/share/filebeat/run.sh"]

# 华为云启动的时候挂载地址 容器外为/var/log/nginx/ismart-test/saasOperationPortal 容器内部地址/var/log/nginx

新建构建-普通方式构建

云计算-代码开发流水线及CCE容器集群使用案例_nginx

云计算-代码开发流水线及CCE容器集群使用案例_docker_02

后端-maven构建

#只打包不执行单元测试
# mvn package -Dmaven.test.skip=true

# 打包:跳过单元测试;每次构建检查更新
mvn clean package -Dmaven.test.skip=true -U -e -X -B

云计算-代码开发流水线及CCE容器集群使用案例_docker_03

前端-npm构建

最后一步,npm run build:test,会有环境的区分

export PATH=$PATH:/root/.npm-global/bin
#设置Devcloud镜像仓加速构建
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
npm config set prefix '~/.npm-global'
#如需安装node-sass
#npm config set sass_binary_site https://repo.huaweicloud.com/node-sass/
#npm install node-sass
#加载依赖
npm install
#默认构建
npm run build:test

云计算-代码开发流水线及CCE容器集群使用案例_nginx_04

Docker命令

前后端所有项目统一3个步骤:login + build + push

Login

是统一的

build

镜像组织

测试:test-cce-ismart-service

生产:prod-cce-ismart-service

镜像名称

自定义,命名规则:环境-项目名称 如 test-report-service

版本:v1.${BuildNumber}

指定dockerfile文件:./docker/Dockerfile_test . (注意:最后的点,不能忽略)

-t swr.cn-north-4.myhuaweicloud.com/test-cce-ismart-service/test-report-service:v1.${BuildNumber} -f ./docker/Dockerfile_test .

push

swr.cn-north-4.myhuaweicloud.com/test-cce-ismart-service/test-report-service:v1.${BuildNumber}

新建保存

云计算-代码开发流水线及CCE容器集群使用案例_nginx_05

新建构建-模板方式构建

填写完基本信息,进入构建模板,选择【自定义模板】,选择模板。

云计算-代码开发流水线及CCE容器集群使用案例_docker_06

云计算-代码开发流水线及CCE容器集群使用案例_redis_07


部署redis举例

实现实例重启时有初始密码

本地创建2个文件redis.conf、Dockerfile

密码尽量避免感叹号;注释另起一行,不能跟在后面。

#改成0.0.0.0,使redis可以外部访问
bind 0.0.0.0
#关闭保护模式;其他主机的客户端连接到Redis
protected-mode no
#用守护线程的方式启动
daemonize no
#数据库个数(可选)
databases 6
#给redis设置密码
requirepass 123456abc
#redis持久化  默认是no
appendonly yes


#dockerfile
FROM redis:7.0
LABEL key="xxxxx"
# 复制本地的配置文件到容器内部
COPY redis.conf /etc/redis.conf
WORKDIR /etc/
RUN ls
RUN cat redis.conf
ENTRYPOINT redis-server /etc/redis.conf

linux本地构建镜像

# 构建镜像
docker build -t test-redis:v20220705.1 -f ./Dockerfile .


上传到华为云

# 临时秘钥登录,联系SRE获取
docker login -u cn-north-1@1L4GO5C61BID9AT9LR1S -p ca82d247ec61664b1f30a20754b7ec4fdc5d78794d0f57644bf5d12bcb55a848 swr.cn-north-1.myhuaweicloud.com
# 打标
docker tag test-redis:v20220705.1 swr.cn-north-1.myhuaweicloud.com/test-cce-ismart-service/test-redis-fdd-7:v20220705.1
# 推送
docker push swr.cn-north-1.myhuaweicloud.com/test-cce-ismart-service/test-redis-fdd-7:v20220705.1

CCE集群部署负载

使用华为容器云cce集群,部署工作负载,详细参考官方文档

https://support.huaweicloud.com/function-cce/index.html

以report-service项目测试环境部署为例

创建无状态工作负载

云容器引擎cce-工作负载-无状态工作负载

选择集群 test-cce-ismart-service,选择命名空间 test

云计算-代码开发流水线及CCE容器集群使用案例_redis_08

填写负载基本信息

云计算-代码开发流水线及CCE容器集群使用案例_nginx_09

容器设置

选择测试镜像

test-cce-ismart-service/test-report-service:v1.2202060801

云计算-代码开发流水线及CCE容器集群使用案例_redis_10


云计算-代码开发流水线及CCE容器集群使用案例_docker_11

设置cpu,内存

资源限制中cpu最小单位为m,1core被划分为1000m,因此cpu最小可以设置0.001core即1m。

内存最小单位为MiB,最小可以设置为1MiB。

云计算-代码开发流水线及CCE容器集群使用案例_nginx_12

数据存储

云计算-代码开发流水线及CCE容器集群使用案例_docker_13

云计算-代码开发流水线及CCE容器集群使用案例_redis_14

配置项设置

云容器引擎cce-配置中心-配置项 ConfigMap

云计算-代码开发流水线及CCE容器集群使用案例_redis_15

负载访问设置

添加服务,选择负载均衡,私网,Test-私网-ELB-iSmart-Service

注:现在4个环境的elb都已创建好,如有其他需求,需向sre提新建elb的申请后,才可选择。

云计算-代码开发流水线及CCE容器集群使用案例_redis_16

注:不允许选择自动创建elb

云计算-代码开发流水线及CCE容器集群使用案例_docker_17

云计算-代码开发流水线及CCE容器集群使用案例_redis_18

负载均衡配置,无需变动

端口配置

云计算-代码开发流水线及CCE容器集群使用案例_docker_19

云计算-代码开发流水线及CCE容器集群使用案例_nginx_20

高级设置

无需变动

云计算-代码开发流水线及CCE容器集群使用案例_redis_21


创建完成

云计算-代码开发流水线及CCE容器集群使用案例_nginx_22

镜像触发

测试环境,可添加镜像的触发器

进入镜像详情,可通过 更新升级-点击镜像名称 进入;或搜索容器镜像服务swr 进入

注:触发器设置,如应用设置错误,在镜像版本更新时,会将错误项目的原有正确镜像替换,故操作需十分谨慎。创建完后,必须检查一下。

云计算-代码开发流水线及CCE容器集群使用案例_nginx_23

云计算-代码开发流水线及CCE容器集群使用案例_docker_24

一般镜像名称、负载应用名称保持一致,创建完成后,页面搜索一下,确保触发应用选择正确。

云计算-代码开发流水线及CCE容器集群使用案例_nginx_25

时间同步

新建负载时,直接选择打开即可

云计算-代码开发流水线及CCE容器集群使用案例_redis_26

标签:cce,service,redis,test,集群,镜像,CCE,流水线,com
From: https://blog.51cto.com/u_11555417/9346185

相关文章

  • k8s之构建Mysql和Wordpress集群
    一、实验目的基于Kubernetes集群实现多负载的WordPress应用。将WordPress数据存储在后端Mysql,Mysql实现主从复制读写分离功能。1、准备Kubernetes集群环境root@k8s-master01:~#kubectlgetnodesNAMESTATUSROLESAGEVERSIONk8s-master01Re......
  • Elasticesearch集群概念
    分布式集群单节点集群我们在包含一个空节点的集群内创建名为users的索引,为了演示目的,我们将分配3个主分片和一份副本(每个主分片拥有一个副本分片)//PUT请求:http://localhost:1001/users//请求体{"settings":{"number_of_shards":3,//创建三个主分片"number_......
  • ES--集群职责划分
     但是真实的集群一定要将集群职责分离:master节点:对CPU要求高,但是内存要求第data节点:对CPU和内存要求都高coordinating节点:对网络带宽、CPU要求高职责分离可以让我们根据不同节点的需求分配不同的硬件去部署。而且避免业务之间的互相干扰。......
  • scoop设置代理 , 解决”scoop fatal: unable to access“问题
    报错提示UpdatingScoop...fatal:unabletoaccess'https://github.com/ScoopInstaller/Scoop/':Failedtoconnecttogithub.comport443after21091ms:Couldn'tconnecttoserverRemove-Item:找不到路径“C:\Users\kai\scoop\apps\scoop\new”,因为该路......
  • 阿里云云原生弹性方案:用弹性解决集群资源利用率难题
    作者:赫曦随着上云的认知更加普遍,我们发现除了以往占大部分的互联网类型的客户,一些传统的企业,一些制造类的和工业型企业客户也都开始使用云原生的方式去做IT架构的转型,提高集群资源使用率也成为企业上云的一致共识。大家上云的同时,开始思考有没有云原生的方法能**更好地实现提高......
  • galera集群启服务脚本,根据需求可自改
    这么个玩意儿废了我小半天儿,学如逆水行舟啊[root@galera1shell_scripts]#catstartdb.sh##host_list={galera1,galera2,galera3}echo"taskstartat:$(date+%Y-%m-%d_%H:%M:%S)"bootstrap_tmpfile=/tmp/.db_stat.$(date+%Y%m%d%H%M)stop_db(){sshgalera3......
  • Shell - 集群监控脚本合集
      node_heart_check.sh#!/bin/bashscriptPath=$(dirname"$0")foripin`cat/etc/hosts|grep主机名关键字|awk'{print$2}'`;do#ping命令返回3次,自行中断ping-c3${ip}if[$?-ne0];thenecho${ip}"通信异常">>......
  • 阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统
    近日,阿里云分布式云容器平台ACKOne[1]发布“多集群网关”[2](ACKOneMulti-clusterGateways)新特性,这是ACKOne面向多云、多集群场景提供的云原生网关,用于对多集群南北向流量进行统一管理。基于ACKOne多集群网关可以快速构建多集群应用的同城容灾系统,帮助企业以更简......
  • Kubernetes集群中 Pod 中报pthread_create failed: Resource temporarily unavailable
    查看containerd日志显示如下信息OCIruntimeexecfailed:execfailed:unabletostartcontainerprocess:readinit-p:connectionresetbypeer:unknown"查看Pod日志中显示pthread_createfailed:Resourcetemporarilyunavailable通过监控系统查看节点的进程数t......
  • Hadoop集群搭建
    Hadoop集群搭建1、服务器配置服务器名称配置master2C2Gslave12C2Gslave21C2G1.1修改主机名#Centos永久修改主机名命令hostnamectlset-hostnamemaster1.2主机映射vim/etc/hosts#需要设置的服务器:ip为内网,其他服务器:ip为外网172.16.0.3mas......