k3s部署(跨云)

相对于k8s, k3s更轻量, 暂用资源少, 启动更快, 同时基本拥有k8s全部功能, 所以, 如果平时学习或自己搭容器平台, 还是推荐k3s. 如果配合wireguard, 可以实现跨云部署

server部署(k8s称为master)

下载k3s二进制文件/usr/bin/k3s

编辑systemd配置文件

vim /etc/systemd/system/k3s-server.service
###########################################
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target

[Service]
Type=notify
KillMode=process
Delegate=yes
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/k3s \
    server \
    --node-external-ip <public-ip> \
    --no-deploy servicelb \
    --cluster-domain magina.k3s \
    --flannel-backend wireguard \
    --kube-proxy-arg "proxy-mode=ipvs" "masquerade-all=true" \
    --kube-proxy-arg "metrics-bind-address=0.0.0.0"

Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target
  • --node-external-ip: 如果是跨云服务, 需要指定公网IP
  • --no-deploy: 不使用k3s自带的负载均衡模块
  • --cluster-domain: 自定义域名, 微服务使用, 如果不指定, 默认cluster.local
  • --flannel-backend: 这里我是跨公有云部署, 使用wireguard模式, 如果是内网可以不指定, 默认vxlan

如果要使用wireguard, 请确保升级到最新内核版本, 参考升级centos7内核

yum install kmod-wireguard wireguard-tools -y

启动服务

systemctl start k3s-server

agent部署(k8s称为node或worker)

下载k3s二进制文件到/usr/bin/k3s

编辑systemd配置文件

vim /etc/systemd/system/k3s-agent.service
###########################################
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target

[Service]
Type=exec
KillMode=process
Delegate=yes
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/k3s agent \
    --server https://<server-ip>:6443 \
    --token xxxxxx::server:xxxxxx \
    --node-external-ip <public-ip> \
    --kube-proxy-arg "proxy-mode=ipvs" "masquerade-all=true"

Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target
  • --server: server服务的连接地址
  • --node-external-ip: 如果是跨云服务, 需要指定公网IP
  • --token: 在server服务器中查看cat /var/lib/rancher/k3s/server/token

启动服务

systemctl start k3s-agent

修改节点public-ip

kubectl edit node k3s-server-01

添加一行

分别修改每个节点, 然后重启各个节点

验证

查看节点

kubectl get no

查看系统服务

kubectl get po -nkube-system

查看网络

wg show flannel.1

展示评论