arm架构部署k8s集群
点击设置,再点击CD/DVD图标,弹出界面选中CD/DVD驱动器,选择上文所下载的centos8镜像。同步网络时间,三台服务器都执行 ntpdate ntp1.aliyun.com,通过网络同步时间。使用docker拉取下镜像, 结果还是失败,从docker hub 官方查找镜像,拉取官方镜像。点击硬盘图标,修改硬盘大小为20G,点击应用。打开虚拟机软件安装Centos8 系统,点击创建自定虚拟机
部署centos8
Centos8 镜像支持M芯片
链接: https://pan.baidu.com/s/1P-4fDndvdwlRaw27Skw8jQ?pwd=x5kv 提取码: x5kv
打开虚拟机软件安装Centos8 系统,点击创建自定虚拟机,再点击继续
选择Linux,其他Linux5.x kernel 64-bit Arm
选择新建虚拟磁盘,点击继续
选择自定设置,自定义的虚拟机存储位置,进行存储。
在此界面可以对cpu、内存、硬盘等进行修改。点击硬盘图标,修改硬盘大小为20G,点击应用。
点击设置,再点击CD/DVD图标,弹出界面选中CD/DVD驱动器,选择上文所下载的centos8镜像
点击启动图标
向上方向键选择install centos8 linux 8,点击回车开始安装系统
选择所使用的语言,点击继续
点击网络和主机名,配置网络
打开网卡开关,更改主机名并应用,完成。
软件选择,点击最小化安装。
选择安装目的地(可进行磁盘划分)
点击根密码,设置密码完成后,开始安装。
安装完后重启系统即可,编辑网络配置文件
cd /etc/sysconfig/network-scripts/
部署k8s
修改hostname
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
在每个节点上添加 hosts 信息
cat <<EOF >> /etc/hosts
172.16.202.100 master
172.16.202.101 node1
172.16.202.102 node2
EOF
不要禁用SELINUX,否则服务器无法启动
禁用防火墙
systemctl stop firewalld && systemctl disable firewalld
关闭 swap 分区,每台服务器都需要关闭
swapoff -a # 临时关闭,主机重启后k8s无法自动重启,需要重新关闭swap
vim /etc/fstab # 永久关闭
#注释下面这行,或使用 sed 命令注释 sed -ri 's/.*swap.*/#&/' /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
同步网络时间,三台服务器都执行 ntpdate ntp1.aliyun.com,通过网络同步时间
# 如果没有 ntpdate ,使用如下命令安装: yum install -y ntpdate
ntpdate ntp1.aliyun.com # 使用
date # 查看时间
允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
部署Docker环境
1、设置docker下载源
官方源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里云源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
安装
yum install docker-ce-3:20.10.17-3.el8.aarch64
systemctl enable docker && systemctl start docker
配置镜像加速
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://m24eqnhh.mirror.aliyuncs.com"]
}
EOF
重启docker
systemctl daemon-reload && systemctl restart docker
添加阿里的yum软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
在所有节点安装kubeadm、kubelet、kubectl
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
systemctl enable kubelet
kubeadm初始化,仅在master节点执行
kubeadm init \
--apiserver-advertise-address=172.16.202.100 \ #master节点ip
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.21.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
在master节点执行
# 在主节点执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#如果是root用户
export KUBECONFIG=/etc/kubernetes/admin.conf
加入master节点,node节点都需要执行
kubeadm join 172.16.202.100:6443 --token ms6617.5hbjusrd37ovnbh1 \
--discovery-token-ca-cert-hash sha256:1161e6266f482d5fdf436aa115a941657a2aee5ff0cc739d8c58adfc6a8441fb
部署calico
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
k8s的 coredns 的ImagePullBackOff 和ErrImagePull 问题解决
查看具体的pod的镜像
kubectl get pods coredns-545d6fc579-4jw9w -n kube-system -o yaml | grep image:
可以看到镜像registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
无法下载下来
使用docker拉取下镜像, 结果还是失败,从docker hub 官方查找镜像,拉取官方镜像
docker pull coredns/coredns:1.8.0
修改镜像的tag
sudo docker tag 296a6d5035e2 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
重新查看状态, 十分完美, 问题解决
更多推荐
所有评论(0)