k0s 是一个精简版的 Kubernetes,它将 Kubernetes 的所有组件全部封装在一个二进制文件中,使得安装、配置、更新都更为简单,同时也兼容 Kubernetes 的 API,适用于资源相对紧张的环境。
1. 创建相关目录
mkdir -pv /opt/k0s/{bin,conf,data}
2. 下载 k0s 二进制文件
cd /opt/k0s/bin
wget https://github.com/k0sproject/k0s/releases/download/v1.33.1%2Bk0s.0/k0s-v1.33.1+k0s.0-amd64
mv /opt/k0s/bin/k0s-v1.33.1+k0s.0-amd64 /opt/k0s/bin/k0s
chmod +x /opt/k0s/bin/k0s
示例主机 CPU 架构为 x86_64,因此使用 amd64 格式文件,若 CPU 为其他架构,则需使用与之对应的文件。
3. 配置环境变量
~/.bashrc
)vim ~/.bashrc
# k0s Env Begin
export K0S_HOME=/opt/k0s/bin
export PATH=$PATH:$K0S_HOME
# k0s Env End
source ~/.bashrc
/etc/profile
)vim /etc/profile
# k0s Env Begin
export K0S_HOME=/opt/k0s/bin
export PATH=$PATH:$K0S_HOME
# k0s Env End
source /etc/profile
4. 配置命令自动补全
k0s completion bash > /etc/bash_completion.d/k0s
5. 初始化集群、配置系统服务
k0s install controller --single --data-dir /opt/k0s/data
k0s install controller --enable-worker --no-taints --data-dir /opt/k0s/data
6. 刷新系统服务
systemctl daemon-reload
7. 启动 k0s 服务
k0s start
7. 检查 k0s 状态
k0s status
k0s kubectl get nodes
k0s kubectl get pods -n kube-system
或
watch "k0s kubectl get pods -n kube-system"
参考下方 “k0sctl” 部分的 “部署k0s”
1. 停止 k0s 服务
k0s stop
2. 备份当前 k0s 二进制文件
mv /opt/k0s/bin/k0s /opt/k0s/bin/k0s.bak.`date +%Y%m%d`_`date +%H%M%S`
3. 获取新版本 k0s 二进制文件
cd /opt/k0s/bin
wget https://github.com/k0sproject/k0s/releases/download/v1.33.1%2Bk0s.0/k0s-v1.33.1+k0s.0-amd64
mv /opt/k0s/bin/k0s-v1.33.1+k0s.0-amd64 /opt/k0s/bin/k0s
chmod +x /opt/k0s/bin/k0s
示例主机 CPU 架构为 x86_64,因此使用 amd64 格式文件,若 CPU 为其他架构,则需使用与之对应的文件。
4. 启动 k0s 服务
k0s start
1. 停止 k0s 服务
k0s stop
2. 重置 k0s 服务
k0s reset
3. 重启服务器
reboot
1. 创建相关目录(若前面已创建,则跳过)
mkdir -pv /opt/k0s/{bin,conf,data}
2. 下载 k0sctl 二进制文件
cd /opt/k0s/bin
wget https://github.com/k0sproject/k0sctl/releases/download/v0.24.0/k0sctl-linux-amd64
mv /opt/k0s/bin/k0sctl-linux-amd64 /opt/k0s/bin/k0sctl
chmod +x /opt/k0s/bin/k0sctl
示例主机 CPU 架构为 x86_64,因此使用 amd64 格式文件,若 CPU 为其他架构,则需使用与之对应的文件。
3. 配置环境变量(若前面已配置,则跳过)
~/.bashrc
)vim ~/.bashrc
# k0s Env Begin
export K0S_HOME=/opt/k0s/bin
export PATH=$PATH:$K0S_HOME
# k0s Env End
source ~/.bashrc
/etc/profile
)vim /etc/profile
# k0s Env Begin
export K0S_HOME=/opt/k0s/bin
export PATH=$PATH:$K0S_HOME
# k0s Env End
source /etc/profile
4. 配置命令自动补全
k0sctl completion > /etc/bash_completion.d/k0sctl
1. 创建相关目录(若前面已创建,则跳过)
mkdir -pv /opt/k0s/{bin,conf,data}
2. 初始化配置文件
cd /opt/k0s/conf
k0sctl init > /opt/k0s/conf/k0sctl.yaml
3. 按需修改配置文件
vim /opt/k0s/conf/k0sctl.yaml
按需修改,官方示例如下:
apiVersion: k0sctl.k0sproject.io/v1beta1
kind: Cluster
metadata:
name: my-k0s-cluster
user: admin
spec:
hosts:
- role: controller
installFlags:
- --debug
ssh:
address: 10.0.0.1
user: root
port: 22
keyPath: ~/.ssh/id_rsa
- role: worker
installFlags:
- --debug
ssh:
address: 10.0.0.2
k0s:
version: 0.10.0
config:
apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig
metadata:
name: my-k0s-cluster
spec:
images:
calico:
cni:
image: calico/cni
version: v3.16.2
options:
wait:
enabled: true
drain:
enabled: true
evictTaint:
enabled: false
taint: k0sctl.k0sproject.io/evict=true
effect: NoExecute
concurrency:
limit: 30
uploads: 5
此处使用的配置文件内容如下:
apiVersion: k0sctl.k0sproject.io/v1beta1
kind: Cluster
spec:
hosts:
- role: single
dataDir: /opt/k0s/data
k0s:
version: 1.33.1+k0s.0
4. 初始化集群
k0sctl apply --config /opt/k0s/conf/k0sctl.yaml
5. 配置集群认证信息
k0sctl kubeconfig > /opt/k0s/conf/kubeconfig
6. 检查集群状态
kubectl get nodes --kubeconfig /opt/k0s/conf/kubeconfig
kubectl get pods --kubeconfig /opt/k0s/conf/kubeconfig -n kube-system
或
watch "kubectl get pods --kubeconfig /opt/k0s/conf/kubeconfig -n kube-system"
1. 更新 k0sctl.yaml 文件中的版本信息
vim /opt/k0s/conf/k0sctl.yaml
新增或修改:
spec:
k0s:
version: 1.33.1+k0s.0
2. 应用更新后的 k0sctl.yaml 文件
k0sctl apply