k3sup 是一个轻量级实用程序,可以在任何本地或远程虚拟机上使用 k3s 从零到启动 k8s 集群。 只需要 ssh 访问和 k3sup 二进制文件,就能获得 kubectl 访问权限。
二进制:k3sup
脚本支持使用国内服务器进行下载,解决部分地区网络环境异常导致无法github,安装失败的问题。
该工具 k3sup 是一个客户端应用程序,您可以在自己的计算机上运行。它使用 SSH 连接到远程服务器,并在当前机器的磁盘上创建一个本地 KUBECONFIG 文件。 MacOS,Windows和Linux(包括ARM)客户端均可使用该工具。
某些 Linux 主机需配置允许 sudo 运行而无需重复密码:
# sudo visudo
# Then add to the bottom of the file
# replace "alex" with your username i.e. "ubuntu"
alex ALL=(ALL) NOPASSWD: ALL
在大多数情况下,Ubuntu 和他的发行版云映像不需要此步骤。
如果只需部署在本机,则可以使用shell运行 k3sup install --local 进行本地安装,不使用 SSH。
配置运行兼容操作系统(如 Ubuntu、Debian、Raspbian 或其他操作系统)的新机器。需确保以将客户机的 SSH 密钥复制到了目标部署机器。
例: 可以使用 ssh-copy-id user@IP 将 SSH 密钥复制到远程虚拟机。
- 运行
k3sup
:
export IP=192.168.0.1
k3sup install --ip $IP --user ubuntu
# Or use a hostname and SSH key for EC2
export HOST="ec2-3-250-131-77.eu-west-1.compute.amazonaws.com"
k3sup install --host $HOST --user ubuntu \
--ssh-key $HOME/ec2-key.pem
install
的子选项:
--cluster
- 使用嵌入式 etcd(嵌入式 HA)以集群模式启动此服务器--skip-install
- 如果已经安装了 K3s,只需运行此命令即可获取 kubeconfig--ssh-key
- 为远程登录的 SSH 密钥指定特定路径--local
- 在不使用 ssh 的情况下执行本地安装--local-path
- 默认值为 ./kubeconfig - 设置要保存群集的文件 kubeconfig 。默认情况下,此文件将被覆盖。--merge
- 将配置合并到现有文件中而不是覆盖(例如,要将配置添加到默认的kubectl配置中,请使用 --local-path ~/.kube/config --merge )。--net-switch
- 默认使用中国大陆服务器(rancher-mirror.rancher.cn)进行下载,设置为false则使用github仓库。--context
- 默认为 default - 设置 kubeconfig 上下文的名称。--ssh-port
- 默认值为 22 ,可以指定一个备用端口, 如:2222--no-extras
- 禁用“ServiceLB”和“Traefik”--k3s-extra-args
- 可选的额外参数传递给 k3s 安装程序,用引号括起来,即 --k3s-extra-args '--disable traefik' 或者 --k3s-extra-args '--docker' 。如果有多个参数,请在单引号内组合 --k3s-extra-args '--disable traefik --docker' 。--k3s-version
- 设置K3s的特定版本。例v1.21.1
--k3s-channel
- 根据发布通道设置特定版本的K3S,例stable
--ipsec
- 强制使用 k3s 的可选额外参数:--flannel-backend
option:ipsec
--print-command
- 打印出命令,通过SSH发送到远程计算机--datastore
- 用于将 SQL 连接字符串传递给 k3s --datastore-endpoint 的标志。必须使用 k3s 要求的格式。可参考文档.
通过运行 k3sup install --help
查看更多安装选项。
通过运行 k3sup join --help
查看更多节点加入选项。
- 使用master角色加入现有集群
Note the new
--server
flag
export USER=root
export SERVER_IP=192.168.0.100
export NEXT_SERVER_IP=192.168.0.101
k3sup join \
--ip $NEXT_SERVER_IP \
--user $USER \
--server-user $USER \
--server-ip $SERVER_IP \
--server \
--k3s-version v1.19.1+k3s1
- 实例:创建一个集群
集群存在两个master,一个agent
export SERVER1=104.248.135.109
export SERVER2=104.248.25.221
export AGENT1=104.248.137.25
- 安装第一个master
k3sup install --user root --ip $SERVER1 --datastore="${DATASTORE}" --token=${TOKEN}
- 安装第二个master
k3sup install --user root --ip $SERVER2 --datastore="${DATASTORE}" --token=${TOKEN}
- 安装 agent
k3sup join --user root --server-ip $SERVER1 --ip $AGENT1
注意,如果对代理和服务器使用不同的 SSH 用户名,则必须通过 --server-user
参数提供master的用户名。
- 安装后测试:
export KUBECONFIG=`pwd`/kubeconfig
kubectl get node
本项目fork自alexellis的k3sup