使用Kubeadm安装Kubernetes进行CICD
需三台服务器,安装Jenkins,docker,containerd,kubeadm
机器初始化并配置安装kubeadm所需的环境
规划如下:
ci-server 2C2G 192.168.19.10 Jenkins + harbor + Docker
k8s-master 2C2G 192.168.19.11 Kubernetes + containerd
k8s-node 1C2G 192.168.19.12 Kubernetes + containerd
安装
1、ci-server安装
(1)安装docker
INSTALL_DOCKER() {
yum install -y yum-utils devices-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker && systemctl enable docker
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fwvjnv59.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload && systemctl restart docker
}
INSTALL_DOCKER
(2)安装docker-compose和harbor
wget https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose --version
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz
tar -zxvf harbor-offline-installer-v2.10.0.tgz
cd harbor/
mv harbor.yml.tmpl harbor.yml
vim harbor.yml修改hostname、port、harbor_admin_password、和data目录
./prepare
./install.sh
# 安装完成,登录
# 修改/etc/docker/daemon.json
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fwvjnv59.mirror.aliyuncs.com"],
"insecure-registries": ["http://101.201.71.47:8000"]
}
EOF
systemctl daemon-reload && systemctl restart docker
# 使用
docker login 101.201.71.47:8000
docker tag kubernetesui/dashboard:v2.7.0 101.201.71.47:8000/library/dashboard:v2.7.0
docker push 101.201.71.47:8000/library/dashboard:v2.7.0
docker pull 101.201.71.47:8000/library/dashboard:v2.7.0
docker pull 101.201.71.47:8000/library/metrics-scraper:v1.0.8
# 使用systemd管理harbor进程
在/etc/systemd/system目录下创建harbor.service文件
tee /etc/systemd/system/harbor.service <<-'EOF'
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker-compose -f /opt/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /opt/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
EOF
systemctl enable harbor.service
(3)安装jenkins
yum install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64 java-11-openjdk-headless.x86_64 -y
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins -y
systemctl start jenkins.service
# 查看密码:
cat /var/lib/jenkins/secrets/initialAdminPassword
在安装插件前,需要先切换jenkins安装源,否则会很慢,修改jenkins插件安装的路径,加快插件安装的速度
# 将jenkins官方源,修改为jenkins清华源
sed -i 's/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' /var/lib/jenkins/updates/default.json
# 将谷歌的安装源,修改为百度的安装源
sed -i 's/http://www.google.com/https://www.baidu.com/g' /var/lib/jenkins/updates/default.json
# 测试,在jenkins上新建构建任务,构建操作执行shell,docker pull node:latest
# 因权限原因执行失败,需要将 jenkins 添加至 docker 的 group 中
gpasswd -a jenkins docker
newgrp docker
systemctl restart jenkins.service
# 此时再次构建,jenkins 构建成功
评论区