K3s - 轻量级 Kubernetes
http://docs.rancher.cn/docs/k3s/_index
https://github.com/k3s-io/k3s/releases
https://github.com/k3s-io/k3s-ansible

https://docs.rancher.cn/docs/k3s/_index
为什么叫 K3s?
我们希望安装的 Kubernetes 在内存占用方面只是一半的大小。Kubernetes 是一个 10 个字母的单词,简写为 K8s。所以,有 Kubernetes 一半大的东西就是一个 5 个字母的单词,简写为 K3s。K3s 没有全称,也没有官方的发音




https://www.cnblogs.com/k3s2019/p/13646252.html
https://rancher2.docs.rancher.cn/docs/k3s/_index
K3s 是一个完全符合 Kubernetes 的发行版,有以下增强功能。
- 打包为单个二进制文件。
- 基于 sqlite3 的轻量级存储后端作为默认存储机制。 etcd3,MySQL,Postgres 仍然可用。
- 封装在简单的启动程序中,该启动程序处理很多复杂的 TLS 和选项。
- 默认情况下是安全的,对轻量级环境有合理的默认值。
- 添加了简单但功能强大的“batteries-included”功能,例如:本地存储提供程序,服务负载均衡器,Helm controller 和 Traefik ingress controller。
- 所有 Kubernetes control-plane 组件的操作都封装在单个二进制文件和进程中。这使 K3s 可以自动化和管理复杂的集群操作,例如分发证书。
- 外部依赖性已最小化(仅需要现代内核和 cgroup 挂载)。 K3s 软件包需要依赖项,包括:
- containerd
- Flannel
- CoreDNS
- CNI
- 主机实用程序 (iptables, socat, etc)
- Ingress controller (traefik)
- 嵌入式 service loadbalancer
- 嵌入式 network policy controller
Master
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--docker" sh -s - server
Node
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--docker" K3S_URL=https://192.168.15.252:6443 K3S_TOKEN=K10bb35019b1669197e06f97b6c14bb3b3c7c7076cd20afe1f550d6793d02b9eed8::server:9599c8b3ffbbd38b7721207183cd6a62 sh -
安装
[root@rancher-server ~]# curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -[INFO] Finding release for channel stable[INFO] Using v1.20.5+k3s1 as release[INFO] Downloading hash http://rancher-mirror.cnrancher.com/k3s/v1.20.5-k3s1/sha256sum-amd64.txt[INFO] Downloading binary http://rancher-mirror.cnrancher.com/k3s/v1.20.5-k3s1/k3s[INFO] Verifying binary download[INFO] Installing k3s to /usr/local/bin/k3sLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.combase | 3.6 kB 00:00:00docker-ce-stable | 3.5 kB 00:00:00extras | 2.9 kB 00:00:00updates | 2.9 kB 00:00:00(1/2): extras/7/x86_64/primary_db | 232 kB 00:00:00(2/2): updates/7/x86_64/primary_db | 7.1 MB 00:00:01Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest versionNothing to doLoaded plugins: fastestmirror, langpacksLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.comrancher-k3s-common-stable | 2.9 kB 00:00:00rancher-k3s-common-stable/primary_db | 2.2 kB 00:00:01Resolving Dependencies--> Running transaction check---> Package k3s-selinux.noarch 0:0.3-0.el7 will be installed--> Finished Dependency ResolutionDependencies Resolved=================================================================================================================================================Package Arch Version Repository Size=================================================================================================================================================Installing:k3s-selinux noarch 0.3-0.el7 rancher-k3s-common-stable 14 kTransaction Summary=================================================================================================================================================Install 1 PackageTotal download size: 14 kInstalled size: 82 kDownloading packages:warning: /var/cache/yum/x86_64/7/rancher-k3s-common-stable/packages/k3s-selinux-0.3-0.el7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID e257814a: NOKEYPublic key for k3s-selinux-0.3-0.el7.noarch.rpm is not installedk3s-selinux-0.3-0.el7.noarch.rpm | 14 kB 00:00:01Retrieving key from https://rpm.rancher.io/public.keyImporting GPG key 0xE257814A:Userid : "Rancher (CI) <ci@rancher.com>"Fingerprint: c8cf f216 4551 26e9 b9c9 18be 925e a29a e257 814aFrom : https://rpm.rancher.io/public.keyRunning transaction checkRunning transaction testTransaction test succeededRunning transactionInstalling : k3s-selinux-0.3-0.el7.noarch 1/1Verifying : k3s-selinux-0.3-0.el7.noarch 1/1Installed:k3s-selinux.noarch 0:0.3-0.el7Complete![INFO] Creating /usr/local/bin/kubectl symlink to k3s[INFO] Creating /usr/local/bin/crictl symlink to k3s[INFO] Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr[INFO] Creating killall script /usr/local/bin/k3s-killall.sh[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env[INFO] systemd: Creating service file /etc/systemd/system/k3s.service[INFO] systemd: Enabling k3s unit[INFO] systemd: Starting k3s[root@rancher-server ~]# kubectl get nodeNAME STATUS ROLES AGE VERSIONrancher-server NotReady control-plane,master 9s v1.20.5+k3s1[root@rancher-server ~]#[root@rancher-server ~]# kubectl get csWarning: v1 ComponentStatus is deprecated in v1.19+NAME STATUS MESSAGE ERRORscheduler Healthy okcontroller-manager Healthy ok[root@rancher-server ~]#[root@rancher-server ~]# kubectl get nodeNAME STATUS ROLES AGE VERSIONrancher-server Ready control-plane,master 43s v1.20.5+k3s1
[root@rancher-server ~]# kubectl -n kube-system get podNAME READY STATUS RESTARTS AGElocal-path-provisioner-5ff76fc89d-7ln66 1/1 Running 0 2m50smetrics-server-86cbb8457f-m78sj 1/1 Running 0 2m50scoredns-854c77959c-q2ffz 1/1 Running 0 2m50shelm-install-traefik-8kblc 0/1 Completed 0 2m50ssvclb-traefik-pb78l 2/2 Running 0 111straefik-6f9cbd9bd4-bcx6c 1/1 Running 0 111s[root@rancher-server ~]#
[root@rancher-server ~]# kubectl -n kube-system get allNAME READY STATUS RESTARTS AGEpod/local-path-provisioner-5ff76fc89d-7ln66 1/1 Running 0 4m5spod/metrics-server-86cbb8457f-m78sj 1/1 Running 0 4m5spod/coredns-854c77959c-q2ffz 1/1 Running 0 4m5spod/helm-install-traefik-8kblc 0/1 Completed 0 4m5spod/svclb-traefik-pb78l 2/2 Running 0 3m6spod/traefik-6f9cbd9bd4-bcx6c 1/1 Running 0 3m6sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEservice/kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 4m19sservice/metrics-server ClusterIP 10.43.112.206 <none> 443/TCP 4m18sservice/traefik-prometheus ClusterIP 10.43.219.182 <none> 9100/TCP 3m6sservice/traefik LoadBalancer 10.43.153.111 192.168.6.99 80:32445/TCP,443:30528/TCP 3m6sNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGEdaemonset.apps/svclb-traefik 1 1 1 1 1 <none> 3m6sNAME READY UP-TO-DATE AVAILABLE AGEdeployment.apps/local-path-provisioner 1/1 1 1 4m19sdeployment.apps/metrics-server 1/1 1 1 4m18sdeployment.apps/coredns 1/1 1 1 4m19sdeployment.apps/traefik 1/1 1 1 3m6sNAME DESIRED CURRENT READY AGEreplicaset.apps/local-path-provisioner-5ff76fc89d 1 1 1 4m5sreplicaset.apps/metrics-server-86cbb8457f 1 1 1 4m5sreplicaset.apps/coredns-854c77959c 1 1 1 4m5sreplicaset.apps/traefik-6f9cbd9bd4 1 1 1 3m6sNAME COMPLETIONS DURATION AGEjob.batch/helm-install-traefik 1/1 60s 4m16s[root@rancher-server ~]# kubectl get nsNAME STATUS AGEdefault Active 4m38skube-system Active 4m38skube-public Active 4m38skube-node-lease Active 4m38s[root@rancher-server ~]#
卸载
卸载K3S#服务器/usr/local/bin/k3s-uninstall.sh#工作节点/usr/local/bin/k3s-agent-uninstall.sh
