k0smotron 一键创建 K8s Control Plane(K8s in K8s 模式)

想要在本地快速创建和管理多个 Kubernetes 集群吗?k0smotron 让这一切变得简单高效!

什么是 k0smotron?

k0smotron 是一个开源工具,它允许你在现有的 Kubernetes 集群(meta 管理集群)中创建和管理多个集群的控制平面。这意味着你可以在一个主集群中运行多个独立的 Kubernetes 集群控制面,完美适合多租户环境、测试场景和开发环境。

实战:使用 Kind 集群一键创建 k0smotron 控制面

步骤 1:创建 Kind 集群
bash 复制代码
cat > kind-cluster.yaml << EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  image: kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a
- role: worker
  image: kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a
- role: worker
  image: kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a
- role: worker
  image: kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a
EOF

kind create cluster --config kind-cluster.yaml
步骤 2:安装 k0smotron

k0smotron 依赖 cert-manager 组件,需预先在集群中安装:

bash 复制代码
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.1/cert-manager.yaml

然后,安装 k0smotron:

bash 复制代码
kubectl apply --server-side=true -f https://docs.k0smotron.io/stable/install.yaml
步骤 3:验证安装
bash 复制代码
kubectl get pods -n k0smotron
步骤 4:创建第一个集群控制面
bash 复制代码
kubectl apply -f - <<EOF
apiVersion: k0smotron.io/v1beta1
kind: Cluster
metadata:
  name: my-k0smotron
spec: {}
EOF
步骤 5:获取集群连接信息
bash 复制代码
kubectl get secret my-k0smotron-kubeconfig -o jsonpath='{.data.value}' | base64 -d > ~/.kube/child.conf
yaml 复制代码
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxx
    server: https://10.244.2.3:30443
  name: my-k0smotron-k0s
contexts:
- context:
    cluster: my-k0smotron-k0s
    user: my-k0smotron-admin
  name: my-k0smotron-admin@my-k0smotron-k0s
current-context: my-k0smotron-admin@my-k0smotron-k0s
kind: Config
preferences: {}
users:
- name: my-k0smotron-admin
  user:
    client-certificate-data: xxx
    client-key-data: xxx

默认使用 NodePort 连接新建的控制面:

bash 复制代码
kubectl get svc kmc-my-k0smotron

使用创建出的控制面集群

bash 复制代码
kubectl version --kubeconfig ~/.kube/child.conf
相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun5 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿6 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
不吃香菜kkk、6 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove6 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21
九皇叔叔6 天前
Kubernetes 资源管理方式详解:命令式与声明式管理
docker·容器·k8s