k8s集群部署
bin/bashimages=(pause:3.2dodoneEOF给该脚本权限,让它去下载考k8s这些组件chmod同样在node2上和node3上也执行以上脚本,将服务下载下来。
一、前提条件
准备三台机器,且这三台机器网络互通,关闭了防火墙,和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
- 使用kubectl get nodes 查看节点信息
至此,k8s集群搭建成功
更多推荐
所有评论(0)