Ubuntu部署k3s集群

背景

k3s是经过CNCF认证的由Rancher公司开发维护的一个轻量级的 Kubernetes 发行版,内核机制还是和 k8s 一样,但是剔除了很多外部依赖以及 K8s 的 alpha、beta 特性,同时改变了部署方式和运行方式,目的是轻量化 K8s。

k3s优点

1)安装简单,占用资源少,只需要512M内存就可以运行起来;
2)apiserver 、schedule 等组件全部简化,并以进程的形式运行在节点上,把程序都打包为单个二进制文件,每个程序只需要占用100M内存;
3)使用基于sqlite3的轻量级存储后端作为默认存储机制。同时支持使用etcd3、MySQL 和PostgreSQL作为存储机制;
4)默认使用 local-path-provisioner 提供本地存储卷;
5)默认安装了Helm controller 和 Traefik Ingress controller;
6)所有 Kubernetes control-plane 组件的操作都封装在单个二进制文件和进程中,使 K3s 具有自动化和管理包括证书分发在内的复杂集群操作的能力。
7)减少外部依赖,操作系统只需要安装较新的内核(centos7.6就可以,不需要升级内核)以及支持cgroup即可,k3s安装包已经包含了containerd、Flannel、CoreDNS,非常方便地一键式安装,不需要额外安装Docker、Flannel等组件。

k3s架构

单节点架构

在这里插入图片描述

  1. k3s server节点是运行k3s server命令的机器(裸机或者虚拟机),而k3s Agent 节点是运行k3s agent命令的机器。
  2. 单点架构只有一个控制节点(在 K3s 里叫做server node,相当于 K8s 的 master node),而且K3s的数据存储使用 sqlite 并内置在了控制节点上
  3. 在这种配置中,每个 agent 节点都注册到同一个 server 节点。K3s 用户可以通过调用server节点上的K3s API来操作Kubernetes资源。

高可用架构

在这里插入图片描述

虽然单节点 k3s 集群可以满足各种用例,但对于 Kubernetes control-plane 的正常运行至关重要的环境,您可以在高可用配置中运行 K3s。一个高可用 K3s 集群由以下几个部分组成:

  1. K3s Server 节点:两个或更多的server节点将为 Kubernetes API 提供服务并运行其他 control-plane 服务
  2. 外部数据库:与单节点 k3s 设置中使用的嵌入式 SQLite 数据存储相反,高可用 K3s 需要挂载一个external database外部数据库作为数据存储的媒介。

k3s官网

k3s部署

集群角色IP 配置
k3s server192.168.170.31 2C4G
k3s agent192.168.170.32 2C4G
k3s agent192.168.170.33 2C4G

前期部署

查看内核参数
root@k3s-01:~# cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

配置yum源
https://developer.aliyun.com/mirror/ 阿里源
root@k3s-01:~# cp /etc/apt/sources.list /etc/apt/sources.list.bak
root@k3s-01:~# cat /etc/apt/sources.list
deb http://mirrors.cloud.aliyuncs.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.cloud.aliyuncs.com/ubuntu/ focal main restricted universe multiverse
eb-src http://mirrors.cloud.aliyuncs.com/ubuntu/ focal-backports main restricted universe multiverse
......
非阿里云用户替换
root@k3s-01:~# sed -i 's/https:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/apt/sources.list
root@k3s-01:~# apt update

关闭防火墙
root@k3s-01:~# ufw status
Status: active
root@k3s-01:~# ufw disable

关闭selinux,默认是不安装selinux
root@k3s-01:~# getenforce
Command 'getenforce' not found, but can be installed with:
apt install selinux-utils

优化内核参数
root@k3s-01:~# vim /etc/sysctl.conf 或者  nano /etc/sysctl.conf
net.ipv4.ip_forward = 1  
net.ipv4.conf.all.proxy_arp = 1
root@k3s-01:~# sysctl -p /etc/sysctl.conf

关闭swap分区
root@k3s-01:~# cat /etc/fstab
#/swap.img	none	swap	sw	0	0
root@k3s-01:~# reboot
root@k3s-01:~# swapoff /swap.img 临时关闭

后期部署

k3s 集群默认安装最新版本 默认集成containerd、Flannel、CoreDNS等组件

国内脚本部署安装,如需二进制安装参考官网安装手册
root@k3s-01:~# curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh 

查看是否安装成功
root@k3s-01:~# k3s -v
k3s version v1.29.3+k3s1 (8aecc26b)
go version go1.21.8
root@k3s-01:~# kubectl get nodes
k3s-01   Ready      control-plane,master   18h   v1.29.3+k3s1

提取join token
root@k3s-01:~# cat /var/lib/rancher/k3s/server/node-token
K10af51222ff2cf3bac742104b414a61ad637e032643ced48565a19c42721e0993e::server:edge

agent加入k3s节点
root@k3s-02 ~# curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.170.31:6443 K3S_TOKEN=K10af51222ff2cf3bac742104b414a61ad637e032643ced48565a19c42721e0993e::server:edge sh -

root@k3s-03 ~# curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.170.31:6443 K3S_TOKEN=K10af51222ff2cf3bac742104b414a61ad637e032643ced48565a19c42721e0993e::server:edge sh -

查看集群状态
root@k3s-01:~# kubectl get nodes
NAME     STATUS     ROLES                 AGE   VERSION
k3s-03   Ready   worker                 	18h   v1.29.3+k3s1
k3s-02   Ready   worker                 	18h   v1.29.3+k3s1
k3s-01   Ready   control-plane,master  		18h   v1.29.3+k3s1

k3s也是systemd起的也可以查看
root@k3s-01:~# systemctl status k3s
● k3s.service - Lightweight Kubernetes
     Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)
  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值