server1 为master
server2 为work
环境:关闭防火墙,关闭swap分区,关闭软件安装限制,阿里云网络yum源
临时关闭防火墙:systemctl stop firewalld
关闭软件安装限制进入vi /etc/selinux/config
关闭swap分区
Swapoff -a
Swap后参数都为0就表示关闭
硬件:裸机k8s内存<2,内核<2
配置主机名
Server1和server2:
hostnamectl set-hostname master
hostnamectl set-hostname work
vi /etc/hosts
配置网桥
Server1和server2:
Vi/etc/modules-load.d/k8s.conf
Vi/etc/sysctl.d/k8s.conf
sysctl –system #刷新配置文件
modprobe br_netfilter
modprobe overlay
查看文件
Vi/etc/sysctl.d/k8s.conf
sysctl –system #刷新配置文件
modprobe br_netfilter
modprobe overlay
查看文件
添加docker源
安装最新的kubectl kubelet kubeadm
yum install kubectl kubelet kubeadm -y
#开启kubelet,开机自启
systemctl start kubelet.service
systemctl enable kubelet.service
安装containerd
yum install containerd -y
systemctl enable containerd.service#开启
修改containerd的配置文件
Vi/etc/containerd/config.tuoml
systemctl daemon-reload
systemctl restart containerd#重启
使用crictl下载镜像之后,会自动创建一个k8s.io,镜像默认放在k8s.io
安装crictl
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.20.0/crictl-v1.20.0-linux-amd64.tar.gz
sudo tar zxvf crictl-v1.20.0-linux-amd64.tar.gz -C /usr/local/bin
进入vi /etc/crictl.yaml配置地址
下载镜像
kubeadm --config=kubeadm.yml config images list
配置master的images文件vi images.sh
server1 master:
配置work的images文件vi images.sh
Server2 work:
Server1 master:
通过kubeadm生成默认config文件
kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm.yml
配置kubeadm.yml文件
advertiseAddress:master的ip
imageRepository: registry.aliyuncs.com/google_containers #谷歌镜像地址
初始化master集群
kubeadm init --config=kubeadm.yml --upload-certs --ignore-preflight-errors=ImagePull
master生成一串密钥
Server2 Work:
查看效果
master节点配置calico,作为网络组件。
Server1和server2:
下载calico.yaml文件
wget https://docs.projectcalico.org/v3.14/manifests/calico.yaml --no-check-certificate
server1 master:
kubectl apply -f calico.yaml加载calico文件,稍等一会变为Ready就成功了