本文介绍如何在 Kubernetes 集群上部署 KubeZoo. 虽然 KubeZoo 可以对接任何标准的 Kubernetes 集群,但是作为样例,
本文会以 kind
集群作为上游集群.
请安装最新版本的
通过运行下面的命令在本地构建 kubezoo 的环境
make local-up
当所有流程都准备就绪后,kubezoo 将运行在本地的 6443 端口,请确保该端口没有被别的程序占用,你会看到以下输出
Export kubezoo server to 6443
Forwarding from 127.0.0.1:6443 -> 6443
Forwarding from [::1]:6443 -> 6443
$ kubectl api-resources --context zoo
NAME SHORTNAMES APIVERSION NAMESPACED KIND
...
tenants tenant.kubezoo.io/v1alpha1 false Tenant
$ kubectl apply -f config/setup/sample_tenant.yaml --context zoo
tenant.tenant.kubezoo.io/111111 created
租户名称必须是有效的6字符RFC 1123DNS标签前缀([A-Za-z0-9][A-Za-z0-9\-]{5}
)。
$ kubectl get tenant 111111 --context zoo -o jsonpath='{.metadata.annotations.kubezoo\.io\/tenant\.kubeconfig\.base64}' | base64 --decode > 111111.kubeconfig
$ kubectl apply --kubeconfig 111111.kubeconfig -f- <<EOF
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: test
image: busybox
command:
- tail
args:
- -f
- /dev/null
resources:
limits:
cpu: 0.5
memory: '0.5Gi'
requests:
cpu: 0.5
memory: '0.5Gi'
EOF
pod/test created
以租户的身份获取 pod
$ kubectl get po --kubeconfig 111111.kubeconfig
NAME READY STATUS RESTARTS AGE
test 1/1 Running 0 44s
以集群管理员的身份获取 pod
$ kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
111111-default test 1/1 Running 0 2m28s
default kubezoo-0 1/1 Running 0 34m
default kubezoo-etcd-0 1/1 Running 0 34m
default test 1/1 Running 0 2m41s
...