K3s安装文档
学习内容
- 用脚本快速安装k3s
- 用脚本 docker容器 快速安装k3s
- 离线安装k3s
- 用脚本快速安装k3s 高可用
两台虚拟机
主机名 | ip |
---|---|
k3ss | 192.168.56.160 |
k3sa | 192.168.56.161 |
快速入门
单节点架构
Red Hat 和 CentOS 的额外准备
建议运行以下命令,关闭 firewalld:
systemctl disable firewalld –now
安装脚本
k3ss节点
多张网卡指定一个网卡地址 INSTALL_K3S_EXEC=”–advertise-address 192.168.56.160″
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION="v1.20.7+k3s1" INSTALL_K3S_EXEC="--advertise-address 192.168.56.160" sh -
在k3ss 获取token
cat /var/lib/rancher/k3s/server/node-token
k3sa节点
可以使用以下方法加速安装:
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION="v1.20.7+k3s1" INSTALL_K3S_EXEC="--node-ip 192.168.56.161" K3S_URL=https://192.168.56.160:6443 K3S_TOKEN=K10bc90a278d95b6935fd373997f394aa0ebf52b7932a5e7d9d4dc1a15a8f91cdad::server:a1d6672aaaf6b65ce2c2b7bd64ba11be sh -
设置K3S_URL
参数会使 K3s 以 worker 模式运行。K3s agent 将在所提供的 URL 上向监听的 K3s 服务器注册。K3S_TOKEN
使用的值存储在你的服务器节点上的 /var/lib/rancher/k3s/server/node-token 路径下。
注意
每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主机名,请传递K3S_NODE_NAME
环境变量,并为每个节点提供一个有效且唯一的主机名。
查看
kubectl get nodes
K3s worker 节点的角色默认为none
,如果修改?
可以通过kubectl label node ${node} node-role.kubernetes.io/worker=worker
为节点增加 worker 角色。
安装helm
wget http://rancher-mirror.cnrancher.com/helm/v3.5.4/helm-v3.5.4-linux-amd64.tar.gz
tar -zxvf helm-v3.5.4-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
vi /etc/profile
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
source /etc/profile
helm version
// 暂未确认 开始
安装rancher
helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable
kubectl create namespace cattle-system
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.crds.yaml
kubectl create namespace cert-manager
# 添加 Jetstack Helm 仓库
helm repo add jetstack https://charts.jetstack.io
# 更新本地 Helm chart 仓库缓存
helm repo update
# 安装 cert-manager Helm chart
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--version v1.3.1
#kubectl delete namespace cert-manager
#安装完 cert-manager 后,您可以通过检查 cert-manager 命名空间中正在运行的 Pod 来验证它是否已正确部署:
kubectl get pods --namespace cert-manager
`NAME READY STATUS RESTARTS AGE`
`cert-manager-5c6866597-zw7kh 1/1 Running 0 2m`
`cert-manager-cainjector-577f6d9fd7-tr77l 1/1 Running 0 2m`
`cert-manager-webhook-787858fcdb-nlzsq 1/1 Running 0 2m`
helm install rancher rancher-stable/rancher \
--version 2.5.8 \
--namespace cattle-system \
--set hostname=ra
// 暂未确认结束
重启 K3s
systemd
手动重启 k3s server:
sudo systemctl restart k3s
手动重启 k3s agent:
sudo systemctl restart k3s-agent
卸载
要从 server 节点卸载 K3s,请运行:
/usr/local/bin/k3s-uninstall.sh
要从 agent 节点卸载 K3s,请运行:
/usr/local/bin/k3s-agent-uninstall.sh
Docker 部署rancher ks3
主机名 | ip | 作用 |
---|---|---|
k3ss | 192.168.56.160 | k3s 主节点 rancher管理平台 |
k3sa | 192.168.56.161 | k3s 工作节点 |
docker 作为容器 k3ss节点
多张网卡指定一个网卡地址 INSTALL_K3S_EXEC=”–advertise-address 192.168.56.160″
curl https://releases.rancher.com/install-docker/19.03.sh | sh
curl https://releases.rancher.com/install-docker/19.03.sh | sh
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION="v1.20.7+k3s1" INSTALL_K3S_EXEC="--docker --advertise-address 192.168.56.160" sh -
在k3ss 获取token
cat /var/lib/rancher/k3s/server/node-token
k3sa节点
可以使用以下方法加速安装:
curl https://releases.rancher.com/install-docker/19.03.sh | sh
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION="v1.20.7+k3s1" INSTALL_K3S_EXEC="--docker --node-ip 192.168.56.161" K3S_URL=https://192.168.56.160:6443 K3S_TOKEN=K101f342d196240d1c4b0610003a2c7c9e288f5875537de3a6aee6f887a7ac31d9c::server:dda1e16d88ad7cf1792d1feb9979df60 sh -
部署rancher
docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /opt/rancher:/var/lib/rancher --privileged rancher/rancher:v2.5.7
启用集群监控
作为系统管理员或集群所有者,您可以通过配置来监控您的 Kubernetes 集群。
先决条件: 如果需要启用 node-exporter 的话,请确保放行在内网中每个节点的 9796 端口的流量,因为 Prometheus 将从此处抓取节点指标。
- 在全局页面中导航到您想要配置的集群。
- 在导航栏中下拉工具,选择监控。
- 查看资源消耗建议,以确保您有足够的资源用于 Prometheus 及其相关组件。根据需要,配置 Prometheus 选项。
- 单击启动。
结果:将部署 Prometheus 服务以及两个监控应用商店应用。这两个监控应用商店应用是cluster-monitoring
和monitoring-operator
,它们会被添加到集群的系统(System)
项目中。当这两个应用处于Active
后,您可以通过 Rancher 集群仪表盘开始查看集群指标或直接从 Grafana中查看。
Grafana 实例的默认用户名和密码为 “admin/admin”。然而,Grafana 仪表板是通过 Rancher 认证代理提供服务的,因此只有当前通过认证进入 Rancher 服务器的用户才能访问 Grafana 仪表板
离线部署
概述
离线安装的过程主要分为以下两个步骤:
步骤 1:部署镜像,本文提供了两种部署方式,分别是部署私有镜像仓库和手动部署镜像。请在这两种方式中选择一种执行。
步骤 2:安装 K3s,本文提供了两种安装方式,分别是单节点安装和高可用安装。完成镜像部署后,请在这两种方式中选择一种执行。
离线升级 K3s 版本:完成离线安装 K3s 后,您还可以通过脚本升级 K3s 版本,或启用自动升级功能,以保持离线环境中的 K3s 版本与最新的 K3s 版本同步。
请按照下文的操作指导进行离线安装和升级。
部署私有镜像仓库
前提条件
本文档假设您已经在离线环境中创建了节点,并且在您的堡垒机上有一个 Docker 私有镜像仓库。
如果你还没有建立私有的 Docker 镜像仓库,请参考Docker 官方文档建立私有的 Docker 镜像仓库。
安装docker(在线安装docke)
创建镜像仓库 YAML
请按照私有镜像仓库配置指南 创建并配置registry.yaml
文件。
完成后,现在可以转到下面的安装 K3s部分,开始安装 K3s。
手动部署镜像
前提条件
我们假设您已经在离线环境中创建了节点。这种方法需要您手动将必要的镜像部署到每个节点,适用于运行无法部署镜像仓库的边缘部署场景。
操作步骤
请按照以下步骤准备镜像目录和 K3s 二进制文件。
-
从K3s GitHub Release页面获取你所运行的 K3s 版本的镜像 tar 文件。
-
将 tar 文件放在
images
目录下,例如:sudo mkdir -p /var/lib/rancher/k3s/agent/images/ sudo cp ./k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/ docker load < k3s-airgap-images-amd64.tar
-
将 k3s 二进制文件放在
/usr/local/bin/k3s
路径下,并确保拥有可执行权限。完成后,现在可以转到下面的安装 K3s部分,开始安装 K3s。
cd /usr/local/bin
//赋予文件可执行权限
chmod +x install.sh
//赋予文件可执行权限
chmod +x k3s
安装 K3s
前提条件
只有在完成上述部署私有镜像仓库或手动部署镜像后,才能安装 K3s。
操作步骤
- 从K3s GitHub Release页面获取 K3s 二进制文件,K3s 二进制文件需要与离线镜像的版本匹配。
- 获取 K3s 安装脚本:https://get.k3s.io。或者 http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh
- 将二进制文件放在每个节点的
/usr/local/bin
中,并确保拥有可执行权限。将安装脚本放在每个节点的任意位置,并将其命名为install.sh
。
安装选项
您可以在离线环境中执行单节点安装,在一个 server(节点)上安装 K3s,或高可用安装,在多个 server(节点)上安装 K3s。
cd /usr/local/bin
//赋予文件可执行权限
chmod +x install.sh
//赋予文件可执行权限
chmod +x k3s
yum install -y k3s-selinux-0.2-1.el7_8.noarch.rpm
单节点安装
-
在 server 节点上运行以下命令:
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="--advertise-address 192.168.56.160" ./install.sh
报错
安装依赖(下载 https://rpm.rancher.io/k3s/stable/common/centos/7/noarch/k3s-selinux-0.2-1.el7_8.noarch.rpm)
yum install -y k3s-selinux-0.2-1.el7_8.noarch.rpm
-
然后,要选择添加其他 agent,请在每个 agent 节点上执行以下操作。注意将
myserver
替换为 server 的 IP 或有效的 DNS,并将mynodetoken
替换 server 节点的 token,通常在/var/lib/rancher/k3s/server/node-token
。INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken ./install.sh
报错
安装依赖(下载 https://rpm.rancher.io/k3s/stable/common/centos/7/noarch/k3s-selinux-0.2-1.el7_8.noarch.rpm)
yum install -y k3s-selinux-0.2-1.el7_8.noarch.rpm
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="--node-ip 192.168.56.161" K3S_URL=https://192.168.56.160:6443 K3S_TOKEN=K1099a66ce47d9473c8f41c7b578b8324d0ae735897f1a06be08187d363df807d05::server:be48e82653e10c679b23862ca22da576 ./install.sh
高可用安装
主机名 | ip |
---|---|
k3ss1 | 192.168.56.160 |
k3ss2 | 192.168.56.161 |
k3sa1 | 192.168.56.163 |
k3sa2 | 192.168.56.164 |
k3sm | 192.168.56.169 |
您需要调整安装命令,以便指定INSTALL_K3S_SKIP_DOWNLOAD=true
并在本地运行安装脚本。您还将利用INSTALL_K3S_EXEC='args'
为 k3s 提供其他参数。
例如,使用外部数据库实现高可用安装指南的第二步提到了以下内容:
curl -sfL https://get.k3s.io | sh -s - server \
--datastore-endpoint="mysql://username:password@tcp(hostname:3306)/database-name"
由于在离线环境中无法使用curl
命令进行安装,所以您需要参考以下示例,将这条命令行修改为离线安装:
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --datastore-endpoint=mysql://username:password@tcp(hostname:3306)/database-name' ./install.sh
systemctl disable firewalld --now
cat /var/lib/rancher/k3s/server/node-token
测试高可用代码
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn NSTALL_K3S_VERSION="v1.20.7+k3s1" INSTALL_K3S_EXEC='server --advertise-address 192.168.56.161 --datastore-endpoint=mysql://root:Cobbler1234!@tcp(192.168.0.229:43306)/k3sdata' sh -
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--node-ip 192.168.56.163" INSTALL_K3S_VERSION="v1.20.7+k3s1" K3S_URL=https://192.168.56.169:6443 K3S_TOKEN=K10b3c6c50e92650f1fec20d757d5231d33a3c217e403fb5442e36a72a13b53ecf2::server:a2c84481af547f730ac89a9bce234768 sh -
k3ss1
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --advertise-address 192.168.56.160 --datastore-endpoint=mysql://root:Cobbler1234!@tcp(192.168.0.229:43306)/k3sdata' ./install.sh
k3ss2
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --advertise-address 192.168.56.161 --datastore-endpoint=mysql://root:Cobbler1234!@tcp(192.168.0.229:43306)/k3sdata' ./install.sh
k3ss3
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --advertise-address 192.168.56.162 --datastore-endpoint=mysql://root:Cobbler1234!@tcp(192.168.0.229:43306)/k3sdata' ./install.sh
k3sm
error_log stderr notice;
worker_processes auto;
events {
multi_accept on;
worker_connections 1024;
}
stream {
upstream kube_apiserver {
server 192.168.56.160:6443;
server 192.168.56.161:6443;
server 192.168.56.162:6443;
}
server {
listen 6443;
proxy_pass kube_apiserver;
proxy_timeout 30;
proxy_connect_timeout 2s;
}
}
docker run –name k3sproxy -p 6443:6443 -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx:1.17
k3sa1
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="--node-ip 192.168.56.163" K3S_URL=https://192.168.56.169:6443 K3S_TOKEN=K10d09538969d21ab3fae92fa6e6930b3e664b0a40d1fcf60d2fb332fbc379a255d::server:d7a490730be1bbb9a69ace45bea38955 ./install.sh
注意
K3s 还为 kubelets 提供了一个--resolv-conf
标志,这可能有助于在离线网络中配置 DNS。
启用自动升级功能
除了可以通过脚本升级 K3s 以外,您还可以启用自动升级功能,以保持离线环境中的 K3s 版本与最新的 K3s 版本同步。
从 v1.17.4+k3s1 开始,K3s 支持自动升级。要在离线环境中启用此功能,您必须确保所需镜像在您的私有镜像仓库中可用。
-
你将需要与你打算升级到的 K3s 版本相对应的 rancher/k3s-upgrade 版本。注意,镜像标签将 K3s 版本中的
+
替换为-
,因为 Docker 镜像不支持+
。 -
你还需要在你要部署的
system-upgrad-controller manifest
YAML 中指定的system-upgrad-controller
和kubectl
的版本。在这里检查 system-upgrad-controller 的最新版本,并下载system-upgrad-controller.yaml
来确定你需要推送到私有镜像仓库的版本。例如,在system-upgrade-controller
的 v0.4.0 版本中,在 manifest YAML 中指定了这些镜像:rancher/system-upgrade-controller:v0.4.0 rancher/kubectl:v0.17.0
-
将必要的 rancher/k3s-upgrade、rancher/system-upgrade-controller 和 rancher/kubectl 镜像添加到您的私有镜像仓库中以后 ,就可以按照K3s 自动升级指南进行操作。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10094.html