GitLab+Jenkins+sonarqube+harbor+k8s安装
官网地址:https://kuboard.cn/install/install-k8s.html#%E5%AE%89%E8%A3%85-kuboard-spray。https://github.com/goharbor/harbor/releases中下载包。修改/usr/lib/systemd/system/jenkins.service文件。修改/var/lib/pgsql/15/data/p
安装测试时间: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:
选择长期支持版
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官网使用案例:
问题:官方例子得安装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
更多推荐
所有评论(0)