通过jenkins交付微服务到kubernetes(7)

创建数据库

MariaDB [(none)]> create database tb_order; MariaDB [(none)]> create database tb_product; MariaDB [(none)]> create database tb_stock; 进入order数据库,把我们根目录下的sql语句导入我们的数据库中 MariaDB [(none)]> use tb_order; MariaDB [tb_order]> source /root/order.sql; 进入product数据库,把我们根目录下的sql语句导入我们的数据库中 MariaDB [tb_order]> use tb_product ; MariaDB [tb_product]> source /root/product.sql 进入stock数据库,把我们根目录下的sql语句导入我们的数据库中 MariaDB [tb_product]> use tb_stock ; Database changed MariaDB [tb_stock]> source /root/stock.sql; MariaDB [tb_stock]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tb_order | | tb_product | | tb_stock | | test | +--------------------+ 7 rows in set (0.00 sec)

6、将eureaka集群部署到k8s中

[root@k8s-master ~]# yum install java-1.8.0-openjdk maven -y 软件包 1:java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64 已安装 将eureka-service进行maven编译可以执行的jar包 [root@k8s-master simple-microservice-dev1]# mvn clean package -D maven.test.skip=true

会在target下面生成jar包

[root@k8s-master eureka-service]# ls Dockerfile pom.xml src target

将这个eureka制作成一个镜像,然后编排yaml文件好让这个容器运行起来

[root@k8s-master1 eureka-service]# cat Dockerfile FROM java:8-jdk-alpine RUN apk add -U tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime COPY ./target/eureka-service.jar ./ EXPOSE 8888 CMD java -jar -Deureka.instance.hostname=${MY_POD_NAME}.eureka.ms /eureka-service.jar

构建并上传到我们的harbor仓库中,
[root@k8s-master eureka-service]# docker build -t eureka .

这里需要我们去我们的Harbor创建一个项目仓库的名称,这里是创建的microservice,并达成推送我们镜像的tag名称,这样推送的时候会直接找我们镜像仓库的地址
[root@k8s-master eureka-service]# docker tag eureka 192.168.30.27/microservice/eureka:latest
上传到我们的harbor上

这里需要登录一下我们的harbor仓库,才能上传

[root@k8s-master ~]# docker login 192.168.30.27 Username: admin Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded [root@k8s-master eureka-service]# docker push 192.168.30.27/microservice/eureka:latest

创建k8s登录harbor信息认证,这里并提前创建好命名空间ms,这样k8s才能到harbor仓库拉取镜像有这个secret
先创建一个ms的命名空间

[root@k8s-master eureka-service]# kubectl create ns ms namespace/ms created [root@k8s-master eureka-service]# kubectl get ns NAME STATUS AGE default Active 68m ingress-nginx Active 55m kube-node-lease Active 68m kube-public Active 68m kube-system Active 68m ms Active 4s [root@k8s-master k8s]# kubectl create secret docker-registry registry-pull-secret --docker-server=192.168.30.27 --docker-username=admin --docker-password=Harbor12345 --docker-email=admin@zhaocheng.com -n ms

查看状态

[root@k8s-master ~]# kubectl get pod,svc,ing -n ms NAME READY STATUS RESTARTS AGE![](https://s4.51cto.com/images/blog/202003/28/0c07c95b7ce22d59b778082427c7d2bd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) pod/eureka-0 1/1 Running 1 16h pod/eureka-1 1/1 Running 0 16h pod/eureka-2 1/1 Running 1 16h

访问eureka

通过jenkins交付微服务到kubernetes


三、在Kubernetes中部署jenkins

通过jenkins交付微服务到kubernetes


在k8s中去部署jenkins需要注意的是本身它需要一个存储,就是它需要存储这些插件和配置的job都是需要存储的,而我们部署到k8s中这个pod是不固定的,有可能在第一个节点也有可能在第二个节点,那就需要保证这个jenkins这个存储功能换个节点也能实时读取到,这就用到了k8s的pv和pvc了,就会使用到持久化存储,这样的话就会用到pv的自动供给,然后用jenkins持久化目录到pv上,持久到远程的存储上

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/205c9d93803e5eb47c9e3dd7d0adc197.html