提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
公司项目逐渐增多,迭代也比较频繁,就需要有完善可靠的持续集成 CICD,这里记录一下环境的搭建过程
一、了解相关的概念
CI/CD: 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法,我的理解快速把开发人员的代码准确,安全的部署到线上
二、相关软件
1.Kubernetes
1)概念:kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用
2)环境准备:
我这里准备3台centos7.9主机
3)安装:
步骤1:3台主机关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
步骤2:安装kubernetes Master 在01机器
yum -y install etcd kubernetes-master
编辑:vi /etc/etcd/etcd.conf文件,修改结果如下:
配置:vi /etc/kubernetes/apiserver文件,配置结果如下:
主要改一下ip和端口参数
然后分别启动 etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服务,并设置开机启动。
启动命令:
systemctl restart etcd
systemctl enable etcd
...
在etcd中定义flannel网络
etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
步骤3:在02 03 node机 安装kubernetes Node和flannel组件应用
yum -y install flannel kubernetes-node
为flannel网络指定etcd服务,修改vi /etc/sysconfig/flanneld文件,配置结果如下图:
修改:vi /etc/kubernetes/config文件,配置结果如下图:
修改node机的kubelet配置文件vi /etc/kubernetes/kubelet
node节点机上启动kube-proxy,kubelet,docker,flanneld等服务,并设置开机启动。
另外一台也安装完
在master 上测试一下
kubectl get nodes
成功!
2. 安装 harbor镜像仓库
- 下载 https://github.com/goharbor/harbor/releases
解压
tar zxvf harbor-online-installer-v1.8.1.tgz
- 配置harbor.yml文件
解压后 进入 harbor 文件夹
复制默认 harbor.yml.tmpl
cp harbor.yml.tmpl harbor.yml
vi harbor.yml
hostname: 192.168.236.131
http:
port will redirect to https port
port: 80
harbor_admin_password: admin
database:
password: root123
data_volume: /data
https相关的没有配置我注释掉了,不然报错
4) 运行prepare文件 然后安装(需要对应docker版本,和 安装Docker Compose)
我安装的这个版本需要docker 1.7以上
./prepare
./install.sh
手动启动 docker-compose.yml所在目录下
docker-compose up -d
三、安装helm
二进制包地址 https://github.com.cnpmjs.org/helm/helm/releases
解压
tar -zxvf helm-v3.6.0-linux-amd64.tar.gz
helm拷贝到/usr/local/bin/
cp linux-amd64/helm /usr/local/bin/helm
添加公用的仓库 Azure 中国镜像源和阿里云的
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo update
这一步非常关键,它是helm与k8s通讯的保证,这一步就是把k8s环境变量KUBECONFIG进行配置
export KUBECONFIG=/root/.kube/config #可以写到/etc/profile里
source /etc/profile
安装 nfs
mkdir -p /data/nfs-data
chmod -R 777 /data/nfs-data
vim /etc/exports
添加以下内容
/data/nfs-data/ *(rw,sync,no_root_squash,no_subtree_check)