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/k3s
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 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:01
Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
Nothing to do
Loaded plugins: fastestmirror, langpacks
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
rancher-k3s-common-stable | 2.9 kB 00:00:00
rancher-k3s-common-stable/primary_db | 2.2 kB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package k3s-selinux.noarch 0:0.3-0.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================
Installing:
k3s-selinux noarch 0.3-0.el7 rancher-k3s-common-stable 14 k
Transaction Summary
=================================================================================================================================================
Install 1 Package
Total download size: 14 k
Installed size: 82 k
Downloading 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: NOKEY
Public key for k3s-selinux-0.3-0.el7.noarch.rpm is not installed
k3s-selinux-0.3-0.el7.noarch.rpm | 14 kB 00:00:01
Retrieving key from https://rpm.rancher.io/public.key
Importing GPG key 0xE257814A:
Userid : "Rancher (CI) <ci@rancher.com>"
Fingerprint: c8cf f216 4551 26e9 b9c9 18be 925e a29a e257 814a
From : https://rpm.rancher.io/public.key
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : k3s-selinux-0.3-0.el7.noarch 1/1
Verifying : k3s-selinux-0.3-0.el7.noarch 1/1
Installed:
k3s-selinux.noarch 0:0.3-0.el7
Complete!
[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 node
NAME STATUS ROLES AGE VERSION
rancher-server NotReady control-plane,master 9s v1.20.5+k3s1
[root@rancher-server ~]#
[root@rancher-server ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
[root@rancher-server ~]#
[root@rancher-server ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
rancher-server Ready control-plane,master 43s v1.20.5+k3s1
[root@rancher-server ~]# kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
local-path-provisioner-5ff76fc89d-7ln66 1/1 Running 0 2m50s
metrics-server-86cbb8457f-m78sj 1/1 Running 0 2m50s
coredns-854c77959c-q2ffz 1/1 Running 0 2m50s
helm-install-traefik-8kblc 0/1 Completed 0 2m50s
svclb-traefik-pb78l 2/2 Running 0 111s
traefik-6f9cbd9bd4-bcx6c 1/1 Running 0 111s
[root@rancher-server ~]#
[root@rancher-server ~]# kubectl -n kube-system get all
NAME READY STATUS RESTARTS AGE
pod/local-path-provisioner-5ff76fc89d-7ln66 1/1 Running 0 4m5s
pod/metrics-server-86cbb8457f-m78sj 1/1 Running 0 4m5s
pod/coredns-854c77959c-q2ffz 1/1 Running 0 4m5s
pod/helm-install-traefik-8kblc 0/1 Completed 0 4m5s
pod/svclb-traefik-pb78l 2/2 Running 0 3m6s
pod/traefik-6f9cbd9bd4-bcx6c 1/1 Running 0 3m6s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 4m19s
service/metrics-server ClusterIP 10.43.112.206 <none> 443/TCP 4m18s
service/traefik-prometheus ClusterIP 10.43.219.182 <none> 9100/TCP 3m6s
service/traefik LoadBalancer 10.43.153.111 192.168.6.99 80:32445/TCP,443:30528/TCP 3m6s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/svclb-traefik 1 1 1 1 1 <none> 3m6s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/local-path-provisioner 1/1 1 1 4m19s
deployment.apps/metrics-server 1/1 1 1 4m18s
deployment.apps/coredns 1/1 1 1 4m19s
deployment.apps/traefik 1/1 1 1 3m6s
NAME DESIRED CURRENT READY AGE
replicaset.apps/local-path-provisioner-5ff76fc89d 1 1 1 4m5s
replicaset.apps/metrics-server-86cbb8457f 1 1 1 4m5s
replicaset.apps/coredns-854c77959c 1 1 1 4m5s
replicaset.apps/traefik-6f9cbd9bd4 1 1 1 3m6s
NAME COMPLETIONS DURATION AGE
job.batch/helm-install-traefik 1/1 60s 4m16s
[root@rancher-server ~]# kubectl get ns
NAME STATUS AGE
default Active 4m38s
kube-system Active 4m38s
kube-public Active 4m38s
kube-node-lease Active 4m38s
[root@rancher-server ~]#
卸载
卸载K3S
#服务器
/usr/local/bin/k3s-uninstall.sh
#工作节点
/usr/local/bin/k3s-agent-uninstall.sh