一、前提条件

准备三台机器,且这三台机器网络互通,关闭了防火墙,和selinux,并配置三台机器名称分别为node1,node2,node3

二、为每台机器安装docker,及常见命令,安装常见容器mysql、redis

安装指定版本的docker和k8s匹配

yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6

保证买台机器的docker都可以正常运行,docker run hello-world三、安装安装Kubeadm引导创建集群、Kubelet管理pod向apiserver 汇报和Kubectl命令行工具

1安装:使用kubeadm初始化主节点,并在工作节点上安装kubelet和kubeadm。

(2)配置:通过kubectl配置集群通信,确保可以在所有节点上运行kubectl命令。

(3)验证集群状态:通过kubectl查看集群节点状态,确 

安装kunectl kubeadmin kubelet实施步骤

 1.下载k8s安装包地址配置

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

exclude=kubelet kubeadm kubectl

EOF

2. 安装

sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes

启动kubelet

sudo systemctl enable --now kubelet

验证步骤

systemctl status kubelet使用该命令查看kubectl状态

至此三个服务的安装包全部下载完闭

三、在master机器上下载需要的镜像

1、定义一个for循环,下载以下服务

sudo tee ./images.sh <<-'EOF'

#!/bin/bash

images=(

kube-apiserver:v1.20.9

kube-proxy:v1.20.9

kube-controller-manager:v1.20.9

kube-scheduler:v1.20.9

coredns:1.7.0

etcd:3.4.13-0

pause:3.2

)

for imageName in ${images[@]} ; do

docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName

done

EOF
给该脚本权限,让它去下k8s这些组件
chmod +x ./images.sh && ./images.sh

同样在node2上和node3上也执行以上脚本,将服务下载下来

2、初始化主节点

#主节点初始化

kubeadm init \

--apiserver-advertise-address=192.168.37.110 \

--control-plane-endpoint=cluster-endpoint \

--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \

--kubernetes-version v1.20.9 \

--service-cidr=10.96.0.0/16 \

--pod-network-cidr=192.168.50.0/24
#要求所有网络范围不重叠 --pod-network-cidr --service-cidr --apiserver-advertise-address 都不能重叠

3、安装网络插件

        pod网络有多种解决方案

Calico:一个基于BGP的网络解决方案,提供简单的网络配置。

Flannel:使用Overlay网络为Pod提供跨主机的通信能力。

Weave:另一个Overlay网络,提供灵活的网络策略和隔离。

我们这里安装Calico,以达到实现故障转移的需求

curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O

修改calico.yaml文件

在初始化主节点时,修改了--pod-network-cidr=192.168.0.0/16,那么我们就要进

入calico.yaml配置文件,修改后的ip地址写上去


kubectl apply -f calico.yaml通过该命令拉起calico服务

从上图可看出mster节点已经部署完成

四、work节点加入集群

kubeadm join cluster-endpoint:6443 --token 3e54se.alzs9d1mkf30f25w \

 --discovery-token-ca-cert-hash sha256:689c076e294bdbb588103a51aaa7248b8a0df34bde634a6189d311ad46a02856

  1. 使用kubectl get nodes 查看节点信息

至此,k8s集群搭建成功

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐