在Arm架构下已经写过Centos7系统的了,本来一开始在Arm架构下安装K8s就是使用的Ubuntu系统的但当时只有一台节点供实验使用。后来因为客户使用的是Centos7就在Centos上面测试集群了。
本来打算“过”七夕的谁料一个电话让我垂死病中惊坐起不得不加班折腾Ubuntu下的了。
貌似apt源找不到bionic版本的,只能只有xenial的顶替了。
# 前置步骤
## 系统
本案例系统为Ubuntu18.04
root@kpu1:~# lsb_release -sc bionic
## 修改主机名
hostnamectl --static set-hostname [hostname]
## 确保禁止掉swap分区
swapoff -a #修改/etc/fstab,注释掉swap那行,持久化生效
## 确保时区和时间正确
## 确保每个机器不会自动suspend(待机/休眠)
## 关闭防火墙
ufw disable
## 内核参数
echo ' net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward=1 net.ipv4.tcp_max_tw_buckets = 10000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 10 net.core.netdev_max_backlog = 65535 net.ipv4.tcp_max_syn_backlog = 65535 net.ipv4.tcp_syncookies = 1 net.core.somaxconn = 65535 net.ipv4.tcp_retries2 = 80 net.core.wmem_max = 21299200 net.core.rmem_max = 21299200 net.core.wmem_default = 21299200 net.core.rmem_default = 21299200 kernel.sem = 250 6400000 1000 25600 net.ipv4.tcp_rmem = 8192 250000 16777216 net.ipv4.tcp_wmem = 8192 250000 16777216 vm.overcommit_memory = 1 vm.swappiness=0 kernel.threads-max = 999999 vm.max_map_count = 999999 ' > /etc/sysctl.conf sysctl -p
## 修改host
本案例使用的机器
192.168.0.15 kpu1 192.168.0.40 kpu2 192.168.0.88 kpu3
# 安装前的一些操作
## 安装 apt 依赖包,用于通过HTTPS来获取仓库
apt-get install -d \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
## Docker源
添加 Docker 的官方 GPG 密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S]
使用以下指令设置稳定版仓库
add-apt-repository \ "deb https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \ $(lsb_release -cs) \ stable"
## kubeadm kubectl kubelet 源
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF
# 安装程序
## 更新 apt 包索引
apt-get update
## 安装Docker
要安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。列出您的仓库中可用的版本:
apt-cache madison docker-ce
由于我们安装的的1.14.x的k8s所以Docker版本使用8.09.9:
apt-get install docker-ce=5:18.09.9~3-0~ubuntu-bionic docker-ce-cli=5:18.09.9~3-0~ubuntu-bionic containerd.io
## Cgroup 驱动切换
在使用基于 Systemd 的机器上部署 Kubernetes 和 Docker 时,为了让更好的工作
docker info cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF
重载使其生效
systemctl daemon-reload systemctl restart docker docker info
## 安装kubelet kubeadm kubectl
由于安装1.14的版本所以还是要看看有没有相关的版本
apt-cache madison kubelet apt-cache madison kubeadm apt-cache madison kubectl
不同于之前,虽然安装旧的版本,但是小版本还是安装1.14最新的。
apt-get install kubelet=1.14.10-00 kubeadm=1.14.10-00 kubectl=1.14.10-00
## 替换kubeadm
重新编译了让证书有效期不是默认的12年。
## 导入基础镜像
## 安装etcd
## 初始化k8s
## 工作节点加入k8s集群
本来我还说有苦难一天无法解决的,不过还好在Centos系统编译的下载的基础镜像还能在Ubuntu上面使用这加快了我的测试速度,至于有没有其他问题暂时不知道了。
ChiuYut
2021年8月15日