fundamentals\raspberry\k3s部署日记

fundamentals\raspberry\k3s部署日记_第1张图片
fundamentals\raspberry\k3s部署日记_第2张图片

本文为树莓派折腾日记
那个风扇和 oled 是可以一起安装的,风扇只需要 一个 3v 电源,任意一个地线,就可以
看博主后天入职的心情,心情如果好,再共享用到的所有软件

操作系统选择


centos

centos 目前只有 32 位的系统,且 oled 不知道怎么弄,对于一个用习惯了xx云的人来说,centos 还是莫名的亲切

  • 没有找到在内核中开启 IIC 的办法
  • etcd 在 arm32 架构下执行失败,官方也没有 arm 的二进制包
    • 博主安装了 go 环境然后自行编译了一份 etcd 然后 ……
      • 对于树莓派来说,你这心跳的资源消耗让我很担心啊
      • etcd 在 arm64 位 cpu 上属于可用级别 arm 上处于 实现 级别,可能是能调好的,但我是不会闹了
  • 所以最后博主还是选用了 centos 安装了 k3s(k8s 阵亡{{{(>_<)}}})

raspbian

好!
对于官方rasbian系统,检查boot目录下是否有kernel8.img如果没有就 rpi-update然后添加arm_64bit=1到config.txt,执行uname -a 你会看到内核从v7l(armhf)变v8(arm64)了

使用 raspbian 64位 安装 k8s 应该还是带的动的,歪果仁都试过了,因为博主之前配置没有配置对,然后 k3s 一直重启,导致 cpu 一直 200% 。博主吓得从 k8s 改 k3s 了

ubuntu64

这个系统的好处是 64 位系统,但是那个开机速度???感觉卡卡的,故放弃了

 
 
 

环境准备


这里先上 centos 的,其他系统的之后补上

不要往 arm 的 cpu 里头写 amd64 的系统,不要问我为啥知道,我已经弄坏一张内存卡了o( ̄┰ ̄*)ゞ

国内源

# 你就把 mirrorlist 注释掉,然后把 前面那一段换成 mirrors.huaweicloud.com/centos-altarch/7
baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/os/$basearch/
......

扩容

fdisk /dev/mmcblk0
p
# 输入d再输入3(表示delete第三分区),再输入n,p新建一个主要分区,3则表示第三分区
d
3
xxxxx

# 重点,接下来输入 p  中打印的 /dev/mmcblk0p2 中 Start 的值不然系统会坏的(别问我为什么会知道的···)。
p # 可以看到扩容前后的结果
w # 输入w(保存并退出) #reboot 重启树莓派
resize2fs /dev/mmcblk0p3 #
df -h # 查看扩容后的正确容量

固定IP

/etc/sysconfig/network-scripts 中创建 ifcfg-ethxx,xx 通过 ifconfig 查看

# 使用 ifconfig 查看 #
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
BOOTPROTO=static
# Server IP #
IPADDR=192.168.137.10
# Subnet #
PREFIX=24
# Set default gateway IP #
GATEWAY=192.168.137.1
# Set dns servers #
DNS1=192.168.137.1
DNS2=8.8.8.8
DNS3=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
# Disable ipv6 #
IPV6INIT=no
NAME=eth0
# 使用'uuidgen eth0' 生成 #
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=eth0
ONBOOT=yes

 
 
 

k8s 环境配置


当然,我们安装的是 k3s 此处可以免了

  1. 关闭selinux
    sed -i "s/SELINUX\=.*/SELINUX=disabled/g" /etc/selinux/config
    
  2. 关闭防火墙
    systemctl disable firewalld && systemctl stop firewalld 
    
  3. 修改主机名
    hostnamectl set-hostname Role_name
    
  4. 添加hosts解析
    echo -e "192.168.137.10 kmaster10\n192.168.137.20 kworker20\n192.168.137.30 kworker30" >> /etc/hosts
    
  5. 设置k8s内核参数
    cat << EOF > /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    vm.swappiness=0
    EOF
    
    modprobe br_netfilter
    echo "modprobe br_netfilter" >> /etc/rc.local
    
    sysctl -p /etc/sysctl.d/k8s.conf
    
  6. 关闭系统swap
    swapoff -a
    # 修改fstab文件,关闭swap的自动挂载。
    
  7. 修改防火墙策略
    /sbin/iptables -P FORWARD ACCEPT
    echo  "sleep 60 && /sbin/iptables -P FORWARD ACCEPT" >> /etc/rc.local
    
  8. 安装依赖包
    yum install -y epel-release
    yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools conntrack-tools wget
    
  9. 时间同步
    yum -y install ntpdate
    /usr/sbin/ntpdate -u ntpserver1: ntp1.aliyun.com
    /usr/sbin/ntpdate -u ntp1.aliyun.com
    

 
 
 

安装 docker


# 不要按普通的 centos 的方式来安装,好像 centos raspberry pi 中可以直接安装
yum install docker

 
 
 

k3s 安装


博主试了 1.7x 结果暴毙,想想,版本太新了,换回了 1.0 版本。你看 1.0 版本之前有那么多 rc1 rc2 rc3 rc4… 靠谱了

  • 下载images
    https://github.com/rancher/k3s/releases/download/v1.0.0/k3s-airgap-images-arm.tar
  • 使用 docker 导入 k3s 镜像,这样就不会出现拉不下镜像k8s.gcr.io/pause:xx 了
    docker load -i k3s-airgap-images-arm.tar
  • 使用离线安装包
    mkdir -p /var/lib/rancher/k3s/agent/images
    cp k3s-airgap-images-arm.tar /var/lib/rancher/k3s/agent/images
    
  • 跳过下载,使用 docker 做为 k3s 的容器,不安装 traefik(博主怕卡)
    export INSTALL_K3S_SKIP_DOWNLOAD=true
    export INSTALL_K3S_EXEC="--docker --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666 --no-deploy traefik"
  • 下载下载二进制 k3s,将 k3s-armhf 改为 k3s 放在 /usr/local/bin
    https://github.com/rancher/k3s/releases/download/v1.0.0/k3s-armhf
  • 修改 docker 的 cgroup,kubelet文件驱动默认cgroupfs, 而我们安装的docker使用的文件驱动是systemd, 造成不一致, 导致镜像无法启动。
    # 修改docker.service
    vi /lib/systemd/system/docker.service
    
    # 找到
    --exec-opt native.cgroupdriver=systemd \
    # 修改为:
    --exec-opt native.cgroupdriver=cgroupfs \
    
    # 重启 docker
    systemctl daemon-reload
    systemctl restart docker
    
  • 下载 k3s 安装脚本
    https://raw.githubusercontent.com/rancher/k3s/release/v1.0/install.sh
    • master 端
      sh install.sh
    • worker 端添加 K3S_TOKEN 这样 worker 安装的是 agent
      # K3S_TOKEN去master的/var/lib/rancher/k3s/server/node-token 找.
      export K3S_URL=https://myserver:6443 
      export K3S_TOKEN=XXX
      
      sh install.sh
  • 最后,kubectl get nodes (NotReady 是因为我关机啦啊)
    fundamentals\raspberry\k3s部署日记_第3张图片

你可能感兴趣的:(java)