美文网首页
联邦集群安装

联邦集群安装

作者: 朱溪江 | 来源:发表于2022-10-19 14:52 被阅读0次

    准备工作

    总结

    1. 联邦必须依托一套主的K8S集群,无法将联邦的控制平面独立出来
    2. 联邦参加实质上可以理解为数据库的主从同步,在V2版本中支持同步的类型有(ConfigMap,Deployment,Ingress,Jobs,Namespace,Secret,ServiceAccount,Service,CRD

    准备两套k8s集群

    1、安装helm v3,使其安装kubefed

    wget https://get.helm.sh/helm-v3.6.0-linux-amd64.tar.gz
    tar -xvf helm-v3.6.0-linux-amd64.tar.gz
    mv helm  /usr/local/bin/
    

    2.能翻的话直接用下面命令安装,一般是不行,用第二种方法

    helm repo add kubefed-charts https://raw.githubusercontent.com/kubernetes-sigs/kubefed/master/charts
    helm repo list
    helm repo update
    helm --namespace kube-federation-system upgrade -i kubefed kubefed-charts/kubefed --create-namespace
    

    直接github下载源码,如果还是慢的话,可以直接在网页版下载

    wget https://github.com/kubernetes-sigs/kubefed/releases/download/v0.9.2/kubefedctl-0.9.2-linux-amd64.tgz
    wget https://github.com/kubernetes-sigs/kubefed/archive/refs/tags/v0.9.2.zip
    

    3.安装kubefedctl 以及kubefed

    mv kubefedctl /usr/local/bin/
    
    cd /root/kubefed-0.9.2/charts
    helm  package kubefed/
    helm install kubefed  kubefed-0.0.5.tgz --namespace kube-federation-system --create-namespace
    kubectl  get po -n kube-federation-system
    

    等待启动完成

    此时联邦主控件已经安装完成。

    4. 配置多集群管理

    我们在主集群配置kubectl 能连接两套集群,可以将从集群的config文件拷贝进主机群的config中

    配置成功的效果

    5.集群管理

    5.1 集群注册

    设置host集群
    kubefedctl join k8s1-admin --host-cluster-context=k8s1-admin --v=2
    加入member集群
    kubefedctl join k8s2-admin --host-cluster-context=k8s1-admin --v=2
    

    查看联邦集群的成员情况,成功

    5.2 注销集群

    kubefedctl unjoin k8s2-admin --host-cluster-context=k8s1-admin --v=2

    [root@master ~]# kubectl  -n kube-federation-system get kubefedclusters.core.kubefed.io
    NAME         AGE   READY   KUBERNETES-VERSION
    k8s1-admin   82m   True    v1.17.0
    

    6.联邦命名空间管理

    6.1. 创建联邦命名空间 以及deployment
    注意: 此处k8s的namespace必须与Fedns匹配一致才能成功。
    [root@master TestFederated]# more ns.yml
    apiVersion: v1
    kind: Namespace
    metadata:
      name: fd1-namespace
    ---
    apiVersion: types.kubefed.io/v1beta1
    kind: FederatedNamespace
    metadata:
      name: fd1-namespace
      namespace: fd1-namespace
    spec:
      placement:
        clusters:
            - name: k8s1-admin
            - name: k8s2-admin
    

    此时1集群和2集群都创建fd1的命名空间

    创建fdDeployment资源

    apiVersion: types.kubefed.io/v1beta1
    kind: FederatedDeployment
    metadata:
      name: fd1-deployment
      namespace: fd1-namespace
    spec:
      template:
        metadata:
          labels:
            app: nginx
        spec:
          replicas: 2
          selector:
            matchLabels:
              app: nginx
          template:
            metadata:
              labels:
                app: nginx
            spec:
              containers:
              - image: nginx
                name: nginx
      placement:
        clusters:
            - name: k8s1-admin
            - name: k8s2-admin
    

    此时查看联邦集群中各个集群fd1-namespace 下Deployment详情

    相关文章

      网友评论

          本文标题:联邦集群安装

          本文链接:https://www.haomeiwen.com/subject/ubbezrtx.html