文章

打造高效 K8S 本地环境

打造高效MacOS系统环境可以参考:打造高效MacOS系统环境。这篇文章的目标:

打造类云厂商的本地云服务环境,可以支持动态的分配磁盘存储、快速Expose端口本地访问容器应用、使用Dashboard访问集群整体情况。

Rancher Desktop

https://rancherdesktop.io/

img-shadow

该应用提供了一个轻量级的Kubernetes解决方案,内置了 K3S,非常适合开发和学习。

启动后,你可以得到如下功能:

  - Kubernetes Cloud
  - Docker Cli
  - Docker-Componse Cli

这样几乎可以满足本地所有的容器化述求了。

Cluster Dashboard

点击菜单栏图标,打开Open cluster Dashboard, 这里可以通过 Dashboard 方便的管理 K8S Cluster

image-20240519141850129

转发本地端口

点击菜单图标,打开 Open main widndow --> Port Forwrod,如下图将 MySQL 容器应用进行 3306 端口转发:

image-20240522212603233

本地应用访问验证:

image-20240522212702453

如果使用 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 会自动帮你重新新建一个新的,并且使用我们改动的配置。

image-20240522213511636

K8S 脚本使用,例如在 Statefulset 中:

   volumeClaimTemplates:
     - metadata:
         name: data
       spec:
         storageClassName: "local-path"
         accessModes: [ "ReadWriteOnce" ]
         resources:
           requests:
             storage: 10Gi

查看:

image-20240522213910600

最后我们可以随时删除 K8S 应用,再需要使用的时候再启动起来,数据也会存储到本地等再次启动的时候加载,这样我们也不会再丢失数据了。

写在最后

到这里你就可以拥有类似于云厂商的云原生环境了。

推荐阅读

K8S持久化存储详解

打造高效MacOS系统环境

License:  CC BY 4.0