不同云服务器下,ubuntu下开k3s集群

首先先感谢老哥的文章:h构建多云环境下的K3S集群,但是我尝试在centos 8.2上面前面一直执行报错

不同云服务器下,ubuntu下开k3s集群
并且安装glibc 2.17时还会报错make版本太低,所以直接放弃centos,投入ubuntu的怀抱

现在腾讯云的活动确实不错,【腾讯云】云产品限时秒杀,爆款2核4G云服务器首年74元,点进去之后三年8M 2c4g轻量应用服务器222元,月流量1200G,好了,说说k3s吧,K3s相对比K8s更加轻量,对于服务器的要求较低:

  • 系统内核版本:Linux 3.10+ (CentOS 7, Debian 8/9, Ubuntu 14.04+)
  • K3S Server端最低内存要求:512 MB
  • K3S Agent端内存最低要求:75MB
  • 磁盘空间最低要求:200 MB
  • 支持的硬件架构:x86_64, ARMv7, ARM64

实际使用过程中,可以在各种环境中进行使用(k3s在小到树莓派或大到 AWS a1.4xlarge 32GiB服务器的环境中),也就是使用场景可以小到一个家庭内部的小盒子(斐讯N1)
由于我之前买了一个三年的阿里云服务器(1M 1c2g),准备拿阿里云服务器做server,腾讯云服务器做agent做一个单master,单node的k3s集群,不同云服务器见通过内网是访问不了的(可以拓展一下场景,比如家内的linux服务器和外网的云服务器之间也是内网不通的),就需要wireguard来帮助我们做好vpn的功能,服务器的内核建议升级到5.6以上(centos和ubuntu下 uname -r查看),如果内核版本不够高,需要先升级内核,我这里说一下ubuntu的升级方法

以下内容需要在两台服务器上都进行执行

* server 阿里云 1M 1c2g ubuntu 20.04
* agent 腾讯云 8M 2c4g ubuntu 20.04

1.升级内核

kernel.ubuntu.com中寻找自己要下载的内核版本,然后点进去,例如我选择的 5.17.7

不同云服务器下,ubuntu下开k3s集群
然后服务器上执行 dpkg --print-architecture查看一下自己的服务器是amd还是arm等,在上面打开的链接中选择好指定的架构,下载带有下面image和modules、generic的deb文件
  • linux-image-X.Y.Z-generic-*.deb
  • linux-modules-X.Y.Z-generic-.deb
    然后上传到服务器上,当然我们也可以这样
mkdir kernel
cd kernel
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.15.7/amd64/linux-image-unsigned-5.15.7-051507-generic_5.15.7-051507.202112080459_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.15.7/amd64/linux-modules-5.15.7-051507-generic_5.15.7-051507.202112080459_amd64.deb

下载速度有点慢,你可以直接进入我的阿里云盘下载,链接我设置的永久有效
下载完成之后,执行命令:

sudo dpkg --install *.deb
sudo reboot

服务器重启之后再用 uname -r查看一下,现在内核版本已经更新到了5.15.7了,服务器内核已经执行成功之后,我们可以安装wireguard了

2.安装wireguard

 sudo apt update
 sudo apt upgrade -y
 sudo apt install -y iptables wireguard

在我们的server服务器执行 hostnamectl set-hostname k3s-master
在我们的agent服务器执行 hostnamectl set-hostname k3s-node1

3.安装k3s及配置

接下来,两台服务器都安装k3s

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

稍等一会儿,查看我们的 ip addr

///10.43.0.1我们当作server服务器的内网IP
kube-ipvs0: <broadcast,noarp> mtu 1500 qdisc noop state DOWN group default
    inet 10.43.0.1/32 scope global kube-ipvs0
       valid_lft forever preferred_lft forever
</broadcast,noarp>

下面的内容需要分别执行

server服务器

nano /etc/systemd/system/k3s.service

//k3s.service&#x53EA;&#x9700;&#x8981;&#x4FEE;&#x6539;ExecStart&#x90E8;&#x5206;&#xFF0C;&#x5185;&#x7F51;IP10.43.0.1

[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target
After=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
EnvironmentFile=/etc/systemd/system/k3s.service.env
KillMode=process
Delegate=yes
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s \
    server --flannel-backend wireguard --tls-san &#x516C;&#x7F51;&#x5730;&#x5740;,&#x5185;&#x7F51;&#x5730;&#x5740; --node-ip &#x5185;&#x7F51;&#x5730;&#x5740; --node-external-ip &#x516C;&#x7F51;&#x5730;&#x5740; --no-deploy servicelb \
    --disable traefik
    --kube-proxy-arg "proxy-mode=ipvs" "masquerade-all=true" \
    --kube-proxy-arg "metrics-bind-address=0.0.0.0"

nano /etc/systemd/system/k3s.service.env //&#x7136;&#x540E;&#x76F4;&#x63A5;Ctrl+X &#x6309;y&#x9000;&#x51FA;&#x6765;

获取token

cat /var/lib/rancher/k3s/server/node-token
&#x5185;&#x5BB9;&#x7C7B;&#x4F3C;&#x5982;&#x4E0B;&#xFF1A;
K10fc6653356f8b0c457cd1a8e41d87b7d33b49a97f4e6b8qweqweqwewq12788a06e85647454::server:53c2qweqwe2222w4d8145be9e7

agent服务器

nano /etc/systemd/system/k3s.service

//k3s.service&#x53EA;&#x9700;&#x8981;&#x4FEE;&#x6539;ExecStart&#x90E8;&#x5206;

///&#x5185;&#x7F51;IP&#x6211;&#x4EEC;&#x5199;&#x6210;10.43.0.2
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target
After=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
EnvironmentFile=/etc/systemd/system/k3s.service.env
KillMode=process
Delegate=yes
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s agent\
    --node-external-ip &#x516C;&#x7F51;IP \
    --node-ip  &#x5185;&#x7F51;IP\
    --kube-proxy-arg "proxy-mode=ipvs" "masquerade-all=true" \
    --kube-proxy-arg "metrics-bind-address=0.0.0.0"

&#x8BBE;&#x7F6E;&#x5F53;&#x524D;&#x670D;&#x52A1;&#x5668;&#x7684;&#x8BBE;&#x5907;&#x53D8;&#x91CF;
nano /etc/systemd/system/k3s.service.env

&#x6B64;&#x5904;&#x5B9A;&#x4E49;&#x96C6;&#x7FA4;&#x7684;api service&#x8BBF;&#x95EE;&#x5730;&#x5740;&#x4EE5;&#x53CA;token&#x5185;&#x5BB9;&#x4E3A;&#xFF1A;
K3S_URL=https://server&#x7684;&#x516C;&#x7F51;&#x5730;&#x5740;:6443
K10fc6653356f8b0c457cd1a8e41d87b7d33b49a97f4e6b8qweqweqwewq12788a06e85647454::server:53c2qweqwe2222w4d8145be9e7

然后server服务器和agent服务器都执行

systemctl daemon-reload
systemctl restart k3s

如果长时间Hold不执行下去,Ctrl+C取消,执行 systemctl status k3s -r&#x6216;&#x8005;ajournalctl -u k3s.service -r查看输出日志

如果报错信息是
Failed to connect to proxy" error="x509: certificate is valid for 10.43.0.1, 127.0.0.1, 172.28.115.105, not xxx.xxx.xxx.xxx(server&#x7684;&#x516C;&#x7F51;IP)
先将两个服务器的K3s都停掉,然后全部执行

systemctl stop k3s
cd /var/lib/
rm -rf rancher
reboot

一般重启之后就好了

不同云服务器下,ubuntu下开k3s集群

下面是服务器的端口开发截图

不同云服务器下,ubuntu下开k3s集群

Original: https://www.cnblogs.com/spatxos/p/15692108.html
Author: spatxos
Title: 不同云服务器下,ubuntu下开k3s集群

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582914/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球