k3s

k3s 是一个轻量级的 Kubernetes 发行版, K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
它适用于:

Edge
IoT
CI
Development
ARM
嵌入 K8s

安装方法前配置

关闭 swap
swapoff -a && 
sudo sed -i 's/^.*swap/#&/g' /etc/fstab

#设置唯一主机名
hostnamectl set-hostname node1

#安装docker 新版不再需要
#设置/etc/docker/daemon.json
#从1.24开始使用的是ctr和crictl的container
#装完后需要等待k3s拉取和启动容器,可以通过ctr命令查看



1. 下载k3s.sh
curl https://get.k3s.io > k3s.sh 保存为 ~/k3s.sh


2. 下载k3s文件 上传到~/
选择对应版本的二进制文件: https://github.com/rancher/k3s/releases
mv k3s /usr/local/bin/
chmod +x /usr/local/bin/k3s

master安装

export INSTALL_K3S_SKIP_DOWNLOAD=true
export INSTALL_K3S_VERSION=v1.23.8
export INSTALL_K3S_EXEC="--write-kubeconfig ~/.kube/config"
export INSTALL_K3S_EXEC="--write-kubeconfig ~/.kube/config --cluster-cidr  10.72.0.0/16 --service-cidr  10.73.0.0/16"
sh k3s.sh
## 查看token
cat /var/lib/rancher/k3s/server/node-token
#查看集群node
sudo k3s kubectl get nodes

worker安装

export INSTALL_K3S_SKIP_DOWNLOAD=true
export INSTALL_K3S_VERSION=v1.23.8
export K3S_URL=https://192.168.110.32:6443 
export K3S_TOKEN=K107b13f1bb986c999ee6d5bac3c5975cf5247b97718f6642111f4dd88d1dee70c2::server:8c2dc65bac9c581960986f1f372c91d2
sh k3s.sh

查看状态

#查看状态
sudo k3s kubectl get nodes
k3s kubectl cordon node3 #k3s kubectl uncordon node4
驱逐已经运行的业务容器
#k3s kubectl drain --ignore-daemonsets --delete-local-data node4
sudo k3s kubectl delete nodes node4
sudo k3s kubectl delete node node4
查看 serivce
sudo kubectl get svc
查看 pod
sudo kubectl get po -o wide
K3s worker 节点的角色默认为none,如果修改?
    kubectl label node work01 node-role.kubernetes.io/worker=worker
    kubectl label node work02 node-role.kubernetes.io/worker=worker

部署服务

sudo kubectl apply -f deployment.yml
sudo kubectl apply -f service.yml

安装时的一些参数解释

–bind-address:k3s监听的IP地址,非必选,默认是localhost。
–cluster-cidr:与Kubernetes一样,也就是Pod所在网络平面,非必选,默认是10.42.0.0/16。
–service-cidr:与Kubernetes一样,服务所在的网络平面,非必选,默认是10.43.0.0/16。
–kube-apiserver-arg:额外的API Server配置参数,具体可以参考Kuberntes官方网站了解支持的配置选项,非必选。
–write-kubeconfig:安装时顺便写一个Kubeconfig文件,方便使用kubectl工具直接访问。如果不加此参数,则默认的配置文件路径为/etc/rancher/k3s/k3s.yaml,默认只有root用户能读。
–write-kubeconfig-mode:与–write-kubeconfig一起使用,指定Kubeconfig文件的权限。
–node-label:顺便给节点打上一个asrole=worker的label,非必选。