1. 集群加入联邦
见上一篇教程
2. 创建名称空间
$ vim namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: my-test-namespace
$ kubectl apply -f namespace.yaml
$ vim federatednamespace.yaml
apiVersion: types.kubefed.io/v1beta1
kind: FederatedNamespace
metadata:
name: my-test-namespace
namespace: my-test-namespace
spec:
placement:
clusters:
- name: cluster
- name: host
# 这是我的两个集群,host作为KubeFed的control plan
$ kubectl apply -f federatednamespace.yaml
会在 host,cluster 两个集群中都创建名叫 my-test-namespace 的名称空间
- 创建联邦资源
configmap
secret
deployment
service
serviceaccount
之后就可以创建自己的 federateddeployment 了,
$ vim federateddeployment.yaml
apiVersion: types.kubefed.io/v1beta1
kind: FederatedDeployment
metadata:
name: my-test-deployment
namespace: my-test-namespace
spec:
template:
metadata:
labels:
app: ubuntu
spec:
replicas: 3
selector:
matchLabels:
app: ubuntu
template:
metadata:
labels:
app: ubuntu
spec:
containers:
- image: ubuntu
name: ubuntu
command: [ "/bin/bash", "-ce", "tail -f /dev/null" ]
placement:
clusters:
- name: cluster
- name: host
overrides:
- clusterName: cluster
clusterOverrides:
- path: "/spec/replicas"
value: 5
kubectl apply -f federateddeployment.yaml
此会在 cluster 的集群创建 5 个 ubuntu 的 pod,在 host 的集群上创建 3 个 ubuntu 的 pod。
- 清理
若要清理,只需删除命名空间:
$ kubectl delete ns my-test-namespace