(1)使用其中一个k8s节点master01,安装docker

[root@master01 ~]# yum install -y docker-ce

(2)安装git

[root@master01 ~]# yum install -y git

(3)克隆zrlog源码

[root@master01 ~]# git clone https://gitee.com/94fzb/zrlog-docker.git

(4)编译

[root@master01 ~]# cd zrlog-docker
下载Skywalking的java agent
[root@master01 zrlog-docker]# which wget &> /dev/null || yum install -y wget
[root@master01 zrlog-docker]# wget  https://archive.apache.org/dist/skywalking/java-agent/8.15.0/apache-skywalking-java-agent-8.15.0.tgz
[root@master01 zrlog-docker]# tar zxf apache-skywalking-java-agent-8.15.0.tgz
##将刚刚解压的包,用zip压缩
[root@master01 zrlog-docker]# which zip &>/dev/null || yum install -y zip
[root@master01 zrlog-docker]# zip -r java-agent.zip skywalking-agent

##编辑zrlog包里的启动脚本run.sh,目的是为了增加skywalking的java agent
[root@master01 zrlog-docker]# which unzip &>/dev/null || yum install -y unzip
[root@master01 zrlog-docker]# wget http://dl.zrlog.com/release/zrlog.zip
[root@master01 zrlog-docker]# mkdir zrlog
[root@master01 zrlog-docker]# unzip zrlog.zip -d zrlog/
[root@master01 zrlog-docker]# vi zrlog/bin/run.sh ##内容改为如下,原本内容需要注释掉
java -javaagent:/opt/tomcat/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=app1 -Dskywalking.collector.backend_service=192.168.1.60:11800 -Xmx128m -Dfile.encoding=UTF-8 -jar zrlog-starter.jar
#说明:
javaagent指定skywalking-agent.jar文件路径
skywalking.agent.service_name: 本应用在skywalking中的名称
skywalking.collector.backend_service: skywalking 服务端地址grpc上报地址默认端口是 11800

##将zrlog重新打包
[root@master01 zrlog-docker]# cd zrlog
[root@master01 zrlog]# zip -r zrlog.zip ./*
[root@master01 zrlog]# cd ..
[root@master01 zrlog-docker]# /bin/mv zrlog/zrlog.zip ./

修改Dockerfile
[root@master01 zrlog-docker]# vi Dockerfile #改为如下
FROM registry.cn-hangzhou.aliyuncs.com/abroad_images/openjdk:17
MAINTAINER “xiaozhang” xiaozhang@163.com
CMD [“/bin/bash”]
ARG DUMMY
RUN mkdir -p /opt/tomcat
RUN curl -o /opt/tomcat/ROOT.zip http://dl.zrlog.com/release/zrlog.zip?${DUMMY}
COPY zrlog.zip /opt/tomcat/ROOT.zip
RUN cd  /opt/tomcat && jar -xf ROOT.zip
ADD /java-agent.zip /opt/tomcat/java-agent.zip
RUN cd /opt/tomcat && jar -xf java-agent.zip
ADD /bin/run.sh /run.sh
RUN chmod a+x /run.sh
RUN rm /opt/tomcat/ROOT.zip

CMD /run.sh
##到此结束

##编译成镜像
[root@master01 zrlog-docker]# sh build.sh

(5)安装zrlog应用

[root@master01 zrlog-docker]# docker run -itd -p 28080:8080 -e DOCKER_MODE='true' zrlog /run.sh

查看容器

[root@master01 zrlog-docker]# docker ps
CONTAINER ID   IMAGE     COMMAND     CREATED          STATUS          PORTS                                         NAMES
b59e3d69bc70   zrlog     "/run.sh"   41 seconds ago   Up 41 seconds   0.0.0.0:28080->8080/tcp, :::28080->8080/tcp   angry_elion

2、配置java应用

(1)使用helm安装一个数据库

[root@master01 skywalking]# helm search repo mysql
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
bitnami/mysql           9.14.1          8.0.35          MySQL is a fast, reliable, scalable, and easy t...
bitnami/phpmyadmin      13.0.0          5.2.1           phpMyAdmin is a free software tool written in P...
bitnami/mariadb         14.1.0          11.1.2          MariaDB is an open source, community-developed ...
bitnami/mariadb-galera  10.0.3          11.1.2          MariaDB Galera is a multi-primary database clus...
[root@master01 ~]# helm pull --untar bitnami/mysql
[root@master01 ~]# cd mysql/
[root@master01 mysql]# vi values.yaml
# 第21行定义sc
21   storageClass: "nfs-client"
# 第85-88行修改国外镜像为国内镜像
85 image:
86   registry: registry.cn-hangzhou.aliyuncs.com
87   repository: abroad_images/mysql
88   tag: 8.0.35-debian-11-r0
# 第1039-1042行修改国外镜像为国内镜像
1039   image:
1040     registry: registry.cn-hangzhou.aliyuncs.com
1041     repository: abroad_images/os-shell
1042     tag: 11-debian-11-r90
# 第1073-1076行修改国外镜像为国内镜像
1073   image:
1074     registry: registry.cn-hangzhou.aliyuncs.com
1075     repository: abroad_images/mysqld-exporter
1076     tag: 0.15.0-debian-11-r70
[root@master01 mysql]# helm install zrlog-mysql  .
NAME: zrlog-mysql
LAST DEPLOYED: Sat Nov  4 19:00:05 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.14.1
APP VERSION: 8.0.35

** Please be patient while the chart is being deployed **

Tip:

  Watch the deployment status using the command: kubectl get pods -w --namespace default

Services:

  echo Primary: zrlog-mysql.default.svc.cluster.local:3306

Execute the following to get the administrator credentials:

  echo Username: root
  MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default zrlog-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)

To connect to your database:

  1. Run a pod that you can use as a client:

      kubectl run zrlog-mysql-client --rm --tty -i --restart='Never' --image  registry.cn-hangzhou.aliyuncs.com/abroad_images/mysql:8.0.35-debian-11-r0 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash

  2. To connect to primary service (read/write):

      mysql -h zrlog-mysql.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"

验证

[root@master01 mysql]# kg po | grep mysql
zrlog-mysql-0                                1/1     Running     0          13m

(2)创建数据库

[root@master01 mysql]# MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default zrlog-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)
[root@master01 mysql]# kubectl run zrlog-mysql-client111 --rm --tty -i --restart='Never' --image  registry.cn-hangzhou.aliyuncs.com/abroad_images/mysql:8.0.35-debian-11-r0 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash
[root@master01 mysql]# mysql -h zrlog-mysql.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD" -e"create database zrlog"
I have no name!@zrlog-mysql-client111:/$ mysql -h zrlog-mysql.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD" -e "create database zrlog"

(3)浏览器输入http://192.168.1.60:28080进行访问测试

image-20231104190953646

查看数据服务器地址为10.0.194.31

[root@master01 mysql]# kg svc | grep mysql
zrlog-mysql                                   ClusterIP   10.0.194.31   <none>        3306/TCP              10m
zrlog-mysql-headless                          ClusterIP   None          <none>        3306/TCP              10m

查看数据库密码为SI1k6ff4ZF

[root@master01 mysql]# kubectl get secret --namespace default zrlog-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d
SI1k6ff4ZF

根据查询填写信息后,点击【下一步】

image-20231104193342831

填写网站信息后,点击【下一步】

image-20231104193539561

image-20231104193555896

点击【点击查看】即可查看博客网站目前信息

image-20231104193709752

点击【管理】后,输入账号密码

image-20231104193924197

点击【文章撰写】,填写相关内容后,点击【发布】

image-20231104194046508

(4)浏览器输入http://192.168.1.60:8080进行访问测试

点击【普通服务】-【服务】-【Service】即可查看服务

image-20231104204759903

点击【普通服务】-【服务】-【Topology】即可查看服务走向

image-20231104204925839