打造高效 K8S 本地环境
打造高效MacOS系统环境可以参考:打造高效MacOS系统环境。这篇文章的目标:
打造类云厂商的本地云服务环境,可以支持动态的分配磁盘存储、快速Expose端口本地访问容器应用、使用Dashboard访问集群整体情况。
Rancher Desktop
该应用提供了一个轻量级的Kubernetes解决方案,内置了 K3S,非常适合开发和学习。
启动后,你可以得到如下功能:
- Kubernetes Cloud
- Docker Cli
- Docker-Componse Cli
这样几乎可以满足本地所有的容器化述求了。
Cluster Dashboard
点击菜单栏图标,打开Open cluster Dashboard
, 这里可以通过 Dashboard
方便的管理 K8S Cluster
:
转发本地端口
点击菜单图标,打开 Open main widndow
--> Port Forwrod
,如下图将 MySQL 容器应用进行 3306 端口转发:
本地应用访问验证:
如果使用 kubectl
的话,可以查看如下脚本,关闭进行还是比较麻烦的:
## 后台运行
nohup kubectl port-forward svc/mysql 3306:3306 -n devops > port-forward.log 2>&1 &
## 关闭
ps aux | grep kubectl
kill <PID>
本地动态存储
Rancher Descktop 默认已经安装了 Local Path Provisioner,可以动态申请本地的磁盘存储,可以让你的 K8S 脚本使用类似于企业或生产环境的脚本只需要替换 StorageClassName
即可。如果你本地不是使用该应用,也可以参考这边文章进行本地安装:K8S持久化存储详解。
注意:改动了 paths 参数中的地址后,需要重启下 local path 的 Pod 应用,在 Dashboard 中的 Workloads中直接删除 Pod 应用即可。Rancher Desktop 会自动帮你重新新建一个新的,并且使用我们改动的配置。
在K8S
脚本使用,例如在 Statefulset
中:
volumeClaimTemplates:
- metadata:
name: data
spec:
storageClassName: "local-path"
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 10Gi
查看:
最后我们可以随时删除 K8S 应用,再需要使用的时候再启动起来,数据也会存储到本地等再次启动的时候加载,这样我们也不会再丢失数据了。
写在最后
到这里你就可以拥有类似于云厂商的云原生环境了。
推荐阅读