Jenkins+Argocd+Kubernetes+Gitlab+Harbor搭建CI/CD流程(三)之Kubernetes集群搭建

由于本次搭建CI/CD流程的资源有限,所以这里只能搭建一个单节点的kubernetes集群

一、安装docker

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl start docker && systemctl enable docker

二、配置镜像加速和信任的harbor仓库

vim /etc/docker/daemon.json
添加以下内容:
{
    "registry-mirrors": [
        "https://mirror.ccs.tencentyun.com"
    ],
    "insecure-registries": [
        "192.168.100.100:888"
    ]
}

harbor仓库后面会搭建的,这里提前就配置了信任的harbor仓库,因为harbor仓库是搭建在docker上的,后面搭建好harbor仓库再添加信任的harbor仓库的话,有可能会因为重启docker而导致harbor仓库出问题(假如遇到harbor仓库出问题的话,重启一下harbor仓库就行)

三、重启docker

systemctl daemon-reload && systemctl restart docker

四、安装sealos

本次使用sealos工具来搭建kubernetes集群,用sealos来搭建kubernetes集群真的是快速又简单,想当初刚刚学kubernetes的时候,用kubeadm来搭建kubernetes集群,坑又多又复杂,白白搭了老子两天时间。至于用sealos搭建出来的kubernetes集群与其他方式搭建出来的kubernetes集群相比优缺点在哪也不是本文的重点,这里就不过多赘述了。

sealos工具的官网:https://www.sealyun.com(上面有更加详细的使用说明)

wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos
chmod +x sealos
mv sealos /usr/bin

五、下载kubernetes安装包

这里建议下载1.20之前的版本,1.20之后的版本会报错,好像不支持docker

wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/d551b0b9e67e0416d0f9dce870a16665-1.18.0/kube1.18.0.tar.gz

六、搭建kubernetes集群

我搭建这个CI/CD流程的时候用的是云服务器,云服务器本来就关闭了防火墙,selinux和swap交换分区,同时所有的端口我都设置成开放的,所以直接init就完事了,假如你用的是虚拟机,可能你还需要执行刚刚说的那些步骤,这些步骤可以上网查一下或者看看别人搭建kubernetes的文章,总之遇到报错就查一下吧,会有解决的办法的

sealos init --passwd 123456 --master 192.168.100.100 --pkg-url /root/kube1.18.0.tar.gz --version v1.18.0

参数解释:
--passwd:服务器的密码
--master:master节点的IP地址
--pkg:k8s安装包的存放路径
--version:k8s集群的版本

Jenkins+Argocd+Kubernetes+Gitlab+Harbor搭建CI/CD流程(三)之Kubernetes集群搭建_第1张图片

这样就算搭建好了,当然你也可以用kubectl get node看一下节点状态,看看有没有Ready

 七、配置kubectl命令补全,去除master节点上的污点

由于单节点搭建,所以pod只能跑在master节点上,但master节点天生带有污点,所以要将污点去除(多节点搭建可以忽略这步)

配置kubectl命令补全:
source <(kubectl completion bash)

去除master节点上的污点:
kubectl taint node chezonghua node-role.kubernetes.io/master:NoSchedule-

注意:去除污点的时候,kubectl taint node 后面跟的是节点的名字,不知道的可以kubectl get node看一下,一般就是主机名

你可能感兴趣的:(kubernetes,jenkins,ci)