杀鸡就要用牛刀——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 安装使用

加载中...

(。・∀・)ノ゙嗨,欢迎来到 lookas 的小站!

这里是 lookas 记录一些事情的地方,可能不时会有 lookas 的一些神奇的脑洞或是一些不靠谱的想法。

总之多来看看啦。