一. 基于阿里云的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

  

 

posted on 2025-07-28 17:09  爱技术努力学技术  阅读(104)  评论(0)    收藏  举报