GitLab+Jenkins+sonarqube+harbor+k8s安装

安装测试时间:2024年4月

机器:4台centos7

管理机:Jenkins、gitlab、sonarqube、harbor、Kuboard-Spray

k8s集群,1主2工

K8s集群:

安装docker:

yum update

安装Docker所需要的一些工具包:

sudo yum install -y yum-utils

连接仓库:

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo

(中央仓库)

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(阿里仓库)

安装:

yum install docker-ce docker-ce-cli containerd.io

启动:

systemctl start docker

开机启动:

systemctl enable docker

安装Kuboard-Spray以及k8s集群安装(集群安装的机器不能是本机):

官网地址:https://kuboard.cn/install/install-k8s.html#%E5%AE%89%E8%A3%85-kuboard-spray

docker run -d \

  --privileged \

  --restart=unless-stopped \

  --name=kuboard-spray \

  -p 80:80/tcp \

  -v /var/run/docker.sock:/var/run/docker.sock \

  -v ~/kuboard-spray-data:/data \

  eipwork/kuboard-spray:latest-amd64

  # 如果抓不到这个镜像,可以尝试一下这个备用地址:

  # swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard-spray:latest-amd64

(安装集群的软件,后续安装完成停止就可)

在资源包管理中选择相应的安装包,等待下载完成

下载完成进行安装配置

安装完成后打开设置的kuboard地址(第一个主节点的地址加上配置的端口,本次为9000)

Kubectl

最简单的方法:

复制主节点的/usr/local/bin/kubectl到需要安装的机器的相应位置

复制~/.kube到相应位置~/.kube

修改.kube中的config文件,修改里面server的地址指向主节点

Jenkins安装

安装jdk:

官网下载openjdk压缩包,上传到服务器上,也可以服务器通过wget下载

解压:

tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz

将解压后的文件移动到一个目录

编辑文件/etc/profile,在最下面添加环境变量,目录改为上方移动的目录

export JAVA_HOME=/opt/jdk/jdk17

export PATH=$JAVA_HOME/bin:$PATH

重新加载环境变量

source /etc/profile

验证

java --version

安装mvn:

官网下载包:https://maven.apache.org/download.cgi

下载后解压然后找个文件夹放着

和jdk一样修改环境变量:

MAVEN_HOME=/opt/apache-maven-3.9.6

export PATH=${MAVEN_HOME}/bin:${PATH}

检查:mvn -version

安装Jenkins:

Linux

选择长期支持版

sudo wget -O /etc/yum.repos.d/jenkins.repo \

    https://pkg.jenkins.io/redhat-stable/jenkins.repo

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

sudo yum upgrade

# Add required dependencies for the jenkins package

sudo yum install fontconfig java-17-openjdk

sudo yum install jenkins

sudo systemctl daemon-reload

sudo systemctl enable jenkins

sudo systemctl start jenkins

运行如果报错:

可能是java环境问题:

修改/usr/lib/systemd/system/jenkins.service文件

使用问题:

权限问题:/etc/sysconfig/jenkins添加

JENKINS_USER="root"

安装git:

yum install git

Sonarqube安装:

准备

编辑/etc/sysctl.conf文件加入(不同版本可能需要的资源不同,需要官网查看):

vm.max_map_count = 524288

fs.file-max = 3139374

编辑/etc/security/limits.conf文件加入(这是对全部用户修改,可以针对单独用户进行修改)

*       soft    nofile  131072

*       hard    nofile  131072

*       soft    nproc   8192

*       hard    nproc   8192

安装postgresql:

在官网上选择相应版本,会给出命令,然后安装就行

需要注意的是,16以后centos7好像就不能安装了

PostgreSQL: Linux downloads (Red Hat family)

修改/var/lib/pgsql/15/data/pg_hba.conf配置文件

重启数据库systemctl restart postgresql-15

su - postgres

psql

-- 创建用户 sonarqube,密码 sonarqube

CREATE USER sonarqube WITH PASSWORD 'sonarqube';

-- 创建数据库 sonarqube

CREATE DATABASE sonarqube OWNER sonarqube ENCODING 'UTF8';

-- 授权

GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;

\q

测试连接

# -h host

# -p 端口

# -d 数据库

# -U 用户

# -W 强制密码提示

psql -h 127.0.0.1 -p 5432 -d sonarqube -U sonarqube -W

安装sonarqube

官网下载sonarqube安装包,解压

Download | SonarQube | Sonar (sonarsource.com)

创建用户,因为sonarqube不能用管理员权限

groupadd sonarqube

useradd -g sonarqube sonarqube

建立安装目录,授权:

mkdir /opt/sonarqube

chown -R sonarqube:sonarqube /opt/sonarqube

chmod -R 777 /opt/sonarqube

su sonarqube

修改文件/opt/sonarqube/conf/sonar.properties:

sonar.jdbc.username=sonarqube

sonar.jdbc.password=1qazXSW@

sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube

sonar.web.port=11000

启动:

添加/etc/systemd/system/sonarqube.service

[Unit]

Description=SonarQube service

After=syslog.target network.target

[Service]

Type=simple

User=sonarqube

Group=sonarqube

#需修改jdk目录以及sonarqube目录

ExecStart=/bin/nohup /opt/jdk/jdk17/bin/java -Xms8m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/sonarqube-10.4.1.88267/lib/sonar-application-10.4.1.88267.jar

Restart=always

#重启时间

LimitNOFILE=131072

LimitNPROC=8192

[Install]

WantedBy=multi-user.target

gitLab安装:

下载rpm包:

Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

安装:

yum install gitlab-ce-16.10.1-ce.0.el7.x86_64.rpm

vim /etc/gitlab/gitlab.rb

#修改为本机地址

external_url 'http://172.16.4.141:12000'

gitlab-ctl reconfigure

#初始root密码:

cat /etc/gitlab/initial_root_password

Harbor安装:

Docker-compose安装

官网地址:

https://link.zhihu.com/?target=https%3A//github.com/docker/compose/releases

替换版本号:

curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Harbor安装:

https://github.com/goharbor/harbor/releases中下载包

#解压

tar -zxvf  harbor-offline-installer-v2.5.0.tgz

#复制配置文件

cp harbor.yml.tmpl harbor.yml

http安装:

将https部分都注释

vim /etc/docker/daemon.json

{

# 添加域名配置

"insecure-registries":["172.16.4.141:13000"]

}

./prepare

./install.sh

https安装:

(如果从http转为https需要运行./prepare,docker-compose down -v

,docker-compose up -d)

mkdir /opt/harbor/certs

cd certs

#创建CA私钥

openssl genrsa -out ca.key 4096

#自签名机构生成CA证书

openssl req -x509 -new -nodes -sha512 -days 3650 \

-subj "/C=CN/ST=Jangsu/L=Nanjing/O=example/OU=Personal/CN=cncf.net" \

-key ca.key \

-out ca.crt

#客户端私钥证书生成

openssl genrsa -out cncf.net.key 4096

openssl req -sha512 -new \

-subj "/C=CN/ST=Jangsu/L=Nanjing/O=example/OU=Personal/CN=cncf.net" \

-key cncf.net.key \

-out cncf.net.csr

#生成多个域名请求(修改域名的话修改下面DNS123的名字)

cat > v3.ext <<-EOF

authorityKeyIdentifier=keyid,issuer

basicConstraints=CA:FALSE

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

[alt_names]

DNS.1=cncf.com

DNS.2=harbor.cncf.net

DNS.3=harbor.cncf.local

EOF

openssl x509 -req -sha512 -days 3650 \

-extfile v3.ext \

-CA ca.crt -CAkey ca.key -CAcreateserial \

-in cncf.net.csr \

-out cncf.net.crt

让https解开注释修改下面的内容

certificate: /opt/harbor/certs/cncf.net.crt

private_key: /opt/harbor/certs/cncf.net.key

./prepare

./install.sh(新安装需要)

K8s使用harbor

修改节点/etc/hosts文件

添加上方的域名和其对应的地址

修改/etc/containerd/config.toml文件

[plugins."io.containerd.grpc.v1.cri".registry]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.cncf.net"]

          endpoint = ["https://harbor.cncf.net"]

      [plugins."io.containerd.grpc.v1.cri".registry.configs]

        [plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.cncf.net".tls]

          insecure_skip_verify = true

重启

systemctl restart containerd

k8s添加秘钥,秘钥为https中对应的文件

上方图片中的也可以修改为让http访问(没测试),http的秘钥为账号密码

[plugins."io.containerd.grpc.v1.cri".registry]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."172.16.4.141:13000"]

          endpoint = ["http://172.16.4.141:13000""]

      [plugins."io.containerd.grpc.v1.cri".registry.configs]

        [plugins."io.containerd.grpc.v1.cri".registry.configs."core.harbor.service.com".tls]

          insecure_skip_verify = true

Node安装:

高版本会出现问题,更新很麻烦

wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz

tar -xf node-v16.20.2-linux-x64.tar.xz

tar -xf node-v16.20.2-linux-x64.tar.xz

ln -s /opt/node16/bin/node /usr/local/bin

ln -s /opt/node16/bin/npm /usr/local/bin

Nacos安装:

Nacos官网使用案例:

Kubernetes Nacos | Nacos

问题:官方例子得安装nfs

本地使用:

#下载源

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

#安装源

yum localinstall mysql57-community-release-el7-11.noarch.rpm

#安装Mysql

yum install -y mysql-community-server

#可能会安装报错,说公钥不对,执行:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

#启动

systemctl start mysqld

#可能会报错217,权限问题不要用root权限,创建mysql用户,给与相应文件夹权限(有些错误可以直接启动/usr/sbin/mysqld方便查看,系统可能不显示这个错,相应目录在/etc/my.cnf)

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

chown -R mysql:mysql /var/lib/mysql

chown mysql:mysql /var/run/mysqld

#重启查看

systemctl restart mysqld

#改密码

grep 'temporary password' /var/log/mysqld.log

mysql -uroot -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

修改编码格式/etc/my.cnf:

[mysqld]

character-set-server=utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

重启

systemctl restart mysqld

创建数据库和表,sql文件需要去官网下载:

CREATE DATABASE nacos_devtest;

use nacos_devtest

source /home/nacos-k8s/deploy/mysql/mysql-schema.sql;

修改nacos-quick-start.yaml文件内容

kubectl create -f /home/nacos-k8s/deploy/nacos/nacos-quick-start.yaml

创建用户nacos:

CREATE USER 'nacos'@'localhost' IDENTIFIED BY '1qazXSW@';

CREATE USER 'nacos'@'%' IDENTIFIED BY '1qazXSW@';

GRANT ALL PRIVILEGES ON *.* TO 'nacos'@'localhost';

FLUSH PRIVILEGES;

修改/home/nacos-k8s/deploy/nacos/nacos-quick-start.yaml文件内容

删除service中的clusterIP:none

修改mysql地址以及密码

发布nacos:

kubectl create -f /home/nacos-k8s/deploy/nacos/nacos-quick-start.yaml

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值