基于K8S的CI&CD--交付dubbo微服务至kubernetes集群

该博客详细介绍了如何在Kubernetes集群上使用Jenkins、Maven和Docker实现Dubbo微服务的CI&CD流程。包括Jenkins的配置、Docker底包镜像制作、dubbo服务提供者和消费者的构建与部署,以及dubbo-monitor工具的准备和应用。同时,文章涵盖了服务的更新与扩容操作。
摘要由CSDN通过智能技术生成

交付dubbo微服务至kubernetes集群

主机名 角色 ip
node7-11.host.com k8s代理节点1,zk1 10.4.7.11
node7-12.host.com k8s代理节点2,zk2 10.4.7.12
node7-21.host.com k8s运算节点1,zk3 10.4.7.21
node7-22.host.com k8s运算节点2,jenkins 10.4.7.22
node7-200.host.com k8s运维节点(docker仓库) 10.4.7.200

在这里插入图片描述

准备工作

检查Jenkins

以容器方式部署Jenkins,参考文章 部署Jenkins
进入jenkins的docker容器里:

[root@node7-21 src]# kubectl exec -it jenkins-66dc5d6969-7hgx7 -n infra /bin/sh
# ssh -i /root/.ssh/id_rsa -T git@gitee.com  
# docker ps -a
  • 检查ssh连接git仓库,确认能拉到代码。
  • 检查jenkins容器里的docker客户端可用

安装maven

[root@node7-200 src]# wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
[root@node7-200 src]# cd /data/nfs-volume/jenkins_home/
[root@node7-200 jenkins_home]# tar xfv /opt/src/apache-maven-3.6.1-bin.tar.gz
[root@node7-21 src]# kubectl exec -it jenkins-66dc5d6969-7hgx7 -n infra /bin/sh

#java -version 
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

[root@node7-200 jenkins_home]# mv apache-maven-3.6.1/ maven-3.6.1-8u232
[root@node7-200 maven-3.6.1-8u232]# ls
bin boot conf lib LICENSE NOTICE README.txt
[root@node7-200 maven-3.6.1-8u232]# cp conf/settings.xml conf/settings.xml.bak
[root@node7-200 maven-3.6.1-8u232]# vi conf/settings.xml

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  <mirrorOf>central</mirrorOf>
</mirror>

制作dubbo微服务的底包镜像

[root@node7-200 ~]# docker pull docker.io/stanleyws/jre8:8u112
[root@node7-200 ~]# docker tag fa3a085d6ef1 harbor.od.com/public/jre:8u112
[root@node7-200 ~]# docker push harbor.od.com/public/jre:8u112
[root@node7-200 ~]# cd /data/dockerfile/
[root@node7-200 dockerfile]# mkdir jre8 && cd jre8
[root@node7-200 jre8]# vi Dockerfile

FROM harbor.od.com/public/jre:8u112
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
    echo 'Asia/Shanghai' >/etc/timezone
ADD config.yml /opt/prom/config.yml
ADD jmx_javaagent-0.3.1.jar /opt/prom/
WORKDIR /opt/project_dir
ADD entrypoint.sh /entrypoint.sh
CMD ["/entrypoint.sh"]

[root@node7-200 jre8]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar -O jmx_javaagent-0.3.1.jar
[root@node7-200 jre8]# vi config.yml

---
rules:
  - pattern: '.*'

[root@node7-200 jre8]# vi entrypoint.sh

#!/bin/sh
M_OPTS="-Duser.timezone=Asia/Shang
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值