安装federation-v1

准备三个集群

准备三个kubernetes集群,它们的用处分别为

  • f-cluster:用来部署kubefed的组件, 192.168.1.103

  • a-cluster:联邦下的一个集群 192.168.1.101

  • b-cluster:联邦下的一个集群 192.168.1.102

安装kubectl

安装好kubectl并设置好kubeconfig,使用其能连上三个kubernetes集群,kubeconfig文件的内容应该如下:

apiVersion: v1
kind: Config
preferences: {}

clusters:
  - name: f-cluster
    cluster:
      server: https://192.168.1.103:6443
      certificate-authority-data: xxxxxxxxxxx
  - name: a-cluster
    cluster:
      server: https://192.168.1.101:6443
      certificate-authority-data: xxxxxxxxxxx
  - name: b-cluster
    cluster:
      server: https://192.168.1.102:6443
      certificate-authority-data: xxxxxxxxxxx

users:
  - name: f-admin
    user: 
      client-key-data: xxxxxxxxxxx
      client-certificate-data: xxxxxxxxxxxxx
  - name: a-admin
    user: 
      client-key-data: xxxxxxxxxxx
      client-certificate-data: xxxxxxxxxxxxx
  - name: b-admin
    user: 
      client-key-data: xxxxxxxxxxx
      client-certificate-data: xxxxxxxxxxxxx

contexts:
  - name: f-context
    context:
      cluster: f-cluster
      user: f-admin
  - name: a-context
    context:
      cluster: a-cluster
      user: a-admin
  - name: b-context
    context:
      cluster: b-cluster
      user: b-admin

current-context: f-context

执行命令kubectl config get-clusters查看集群信息

执行kubectl config get-contexts查看上下文信息

部署coredns-provider

coredns将数据存储在etcd中,所以我们先部署etcd集群,这里我们额外先部署好,假设coredns的etcd的URL为http://192.168.1.103:3379

接下来,我们也用helm来部署coredns服务:

Values.yaml文件的内容如下:

检查coredns与etcd的pod有正常运行

获取kubefed

从github上下载kubefed的压缩包(https://github.com/kubernetes-retired/federation/releases),比如我们下载的是release_v1.9.0-alpha.3_federation-client-linux-amd64.tar然后解压

部署kubefed的control plane

control-plane的apiserver需要使用etcd存储数据,我们先提前安装好一个etcd集群供它使用,假设etcd服务的地址为http://192.168.1.103:4379

接下来,你们执行以下命令来创建一个名字叫federation的集群联邦

其中coredns-provider.conf的内容如下:

添加集群

执行以下命令添加两个集群到联邦中

然后执行以下命令查看联邦中的集群

发布Deployment

通过联邦apiserver发布一个Deployment

查看a集群中的pod数目

查看b集群中的pod数目(在b集群上执行)

跨集群服务发现

to be continued

跨集群负载均衡

to be continued

FAQ

Q: 集群之间的网络怎么打通?

Reference

Last updated

Was this helpful?