杀鸡就要用牛刀——K3s初探
2021-10-09
为什么会变成这样呢……第一次有了隔离开的应用。有了不用操心的兼容性。两件快乐事情重合在一起。而这两份快乐,又给我带来更多的快乐。得到的,本该是像梦境一般幸福的时间……但是,为什么,会变成这样呢……
入坑
接触 容器化技术 进而 容器编排技术 要从我的服务器洁癖开始说起。由于服务器上部署着不同的项目,而这些项目往往使用的编程语言以及其框架是不同的,而最令人头疼的是有些编程语言跨版本之间有一定的兼容性问题(说的就是你 PHP),更新包等时候总会出现一定的小问题,造成不同程度的宕机。同时不同项目混排在一台服务器上,其数据分布在服务器上不同的地方,不利于统一管理。忍无可忍的我,最后找到了容器这一条(看上去)“康庄大道”,从此入坑。
好吧好吧,反正这年头大家都在说云原生、敏捷开发、DevOps 什么的词,那就来学学吧。
介绍
K8s 是一个容器编排系统,其工作重点是将拆成散片的微服务们的,放在合适的地方运行,并且指导流量正确的通过他们。
最开始使用 Docker 是将其作为一个轻量化的虚拟机使用,通过使用 K8s ,我们可以很好的管理 Docker
K3s 是 K8s 的一种变体,我使用 K3s 主要是因为他很轻,一个 binary 包含所有功能,同时并不需要占用太多系统资源。
安装 k3s
卸载之前安装的 Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
src: https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine
安装 k3s
sudo su
curl -sfL https://get.k3s.io | sh -
k3s 使用
这是一些 k3s 常用的命令
# show dashboard web
ssh -L 8001:127.0.0.1:8001 <server>
sudo su
kubectl -n kubernetes-dashboard describe secret admin-user-token | grep '^token'; kubectl proxy
# open http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
# get container shell
kubectl get pod
kubectl exec -it <pod-name> -- /bin/bash
# restart
kubectl rollout restart deployment <deployment-name>
# storage 文件可以在 `/var/lib/rancher/k3s/storage` 里找到
20221107 更新
已经替换成 Canonical 家的 MicroK8s,更多参见 microk8s 安装使用