一. 基于阿里云的ECS环境搭建,使用了三台服务器用来安装搭建集群:
主机 |
ip |
配置 |
master |
192.168.102.110 |
8核,16g内存,500g SSD |
node1 |
192.168.102.111 |
8核,16g内存,500g SSD |
node2 |
192.168.102.112 |
8核,16g内存,500g SSD |
1.修改HOSTS,并做SSH免密登录配置:
vim /etc/hosts
192.168.102.110 k8s-master
192.168.102.111 k8s-node1
192.168.102.112 k8s-node2
2.配置免密登陆,三台服务器都要配置互相免密登陆
ssh-copy-id -p22 root@k8s-master
ssh-copy-id -p22 root@k8s-node1
ssh-copy-id -p22 root@k8s-node2
3.K8S安装过程中需要关闭SWAP分区,所有服务器节点上都需要关闭
swapoff -a 注:临时关闭
4.所有节点修改内核参数
vim /etc/profile
modprobe br_netfilter
修改完成重新加载配置:source /etc/profile
vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
重新加载配置:sysctl -p /etc/sysctl.d/k8s.conf
5. 如果你是物理机或内部云网络可能还需要安装ntpdate服务用来保证集群间服务器时间的一致性,我这里用的阿里云就不需要安装ntpdate服务,阿里云自有的ntpdate会完成时间同步
6. 在所有服务器的节点上配置k8s的yum源,我这里使用的全是阿里云的
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
二. 以上配置完成后需要先完成docker的安装
1.如果服务器上有自带的docker,那就需要先卸载掉
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate
2. 配置DOCKER的yum仓库,所有节点都需要配置
yum install -y yum-utils device-mapper-persistent-data lvm2
Dokcer镜像源换成阿里云的,默认的国外源速度太慢:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.配置完成后所有节点安装docker
yum install docker-ce-20.10.9-3.el7 docker-ce-cli-20.10.9-3.el7 docker-compose-plugin containerd.io
4.安装完成后启动docker,并设置为开机自启动
#启动docker
systemctl start docker
#设置开机自启
systemctl enable docker
#验证安装
docker -v
5.Docker安装完成后,配置上阿里云镜像的加速器,阿里云的加速地址只支持阿里云的产品使用,使用介绍:https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images?spm=a2c4g.11186623.help-menu-60716.d_2_14_0.147f62466GFIBl&scm=20140722.H_60750._.OR_help-T_cn~zh-V_1
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://p59n3y39.mirror.aliyuncs.com"]
}
重新加载并重启
sudo systemctl daemon-reload
sudo systemctl restart docke
三. Docker安装完成后,开始安装K8S
1.K8S主要有 kubeadm、kubelet、kubectl 这三大组件,所有节点都需要执行以下的安装
kubeadm:初始化k8s集群
kubelet: 在集群的每个节点上用来启动 Pod 和容器
kubectl:k8s集群通信的命令行工具,查看,创建,更新和删除各种资源
2. 执行安装,会根据镜像源中的资源安装最新的版本
yum install -y kubelet* kubeadm* kubectl*
3. 安装完成后所有节点设置开机自启动
systemctl enable kubelet
4. 将主节点的集群HOSTS解析添加到所有服务器上
192.168.102.110 cluster-endpoint
5. 在Master节点上对K8S集群进行初始化操作
kubeadm init \
--apiserver-advertise-address=192.168.102.110 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.23.17 \
--service-cidr=10.10.0.0/12 \
--pod-network-cidr=172.1.0.0/16
初始化执行后出现以下提示说明初始化成功:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
6. 在别外两台服务器上执行初始化生成的添加命令,将两个 k8snode节点加入到集群中
kubeadm join cluster-endpoint:6443 --token e8enii.joiejbxxxxxxxxx \
-discovery-token-ca-cert-hash sha256:3369575651862xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
也可以用命令再次自定义生成token :
kubeadm token create --print-join-command
7. 安装Calico网络插件,所有节点上都需要安装
下载calico.yml文件,并保存到本地,下载地址:https://docs.projectcalico.org
vim /opt/calico.yml 在文件中查找到 name: CALICO_IPV4POOL_CIDR将网络地址修改为172.1.0.0/16 如下所示
- name: CALICO_IPV4POOL_CIDR
value: "172.20.0.0/16"
8. 用kubectl进行安装;
kubectl apply -f calico.yaml
安装完成后可以用 kubectl get pod -A | grep calico 检查一下安装是否成功。
四. 安装 kuboard图形化工具,只在master节点安装既可
下载kuboard: wget https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
安装kuboard: kubectl apply -f kuboard-v3.yaml
安装完成后可以使用 kubectl get pods -n kuboard 查看一下安装状态
五. 集群主节点MASTER上安装Jenkins实现自动发布功能
1.配置jenkins的挂载目录
mkdir -p /opt/jenkins
chmod 777 /opt/jenkins
2.配置使用docker-commose.yml文件安装jenkins
vim docker-compose.yml
#设置外部的访问端口29780
version: '3.1'
services:
jenkins:
image: jenkins/jenkins
privileged: true
user: root
ports:
- 29780:8080
- 50000:50000
container_name: jenkins
volumes:
- /opt/jenkins:/var/jenkins_home
- /etc/localtime:/etc/localtime
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /etc/docker/daemon.json:/etc/docker/daemon.json
3. 使用docker-compose启动,要在docker-compose.yml的目录文件下启动
docker compose up -d
jenkins启动完成后,默认密码存放在/opt/jenkins/secrets/initialAdminPassword
爱技术就是不爱学技术,但为了完成新的工作任务,又不得不去学新技术,但非自愿!
浙公网安备 33010602011771号