Arm架构安装Kubernetes(k8s)环境(Ubuntu18.04)

在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日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!