当前位置:   article > 正文

使用kubekey快速搭建k8s集群

使用kubekey快速搭建k8s集群

项目仓库地址

  • https://github.com/kubesphere/kubekey/

支持的Kubernetes Versions

  • https://github.com/kubesphere/kubekey/blob/master/docs/kubernetes-versions.md

安装

  • 选择自己想要下载的版本
    • https://github.com/kubesphere/kubekey/releases
  • 复制下载链接并下载
    示例:
    wget https://github.com/kubesphere/kubekey/releases/download/v3.1.5/kubekey-v3.1.5-linux-amd64.tar.gz
    
    • 1
  • 解压到需要安装的位置
    示例:
    tar -xf kubekey-v*-linux-amd64.tar.gz -C /usr/local/bin
    echo "export PATH=$PATH:/usr/local/bin/kk" >> ~/.bashrc
    source ~/.bashrc
    
    • 1
    • 2
    • 3
  • 命令自动补全
    (存疑:执行后没有效果)
    echo "source <(kk completion -t bash)" >> ~/.bashrc
    source ~/.bashrc
    
    • 1
    • 2

搭建k8s集群

示例:

  • 生成一个配置文件
    kk create config --name config-cluster-example
    # 会生成一个config-cluster-example.yaml的配置文件
    
    • 1
    • 2
  • 编辑配置文件
    vim config-cluster-example.yaml
    
    • 1
  • 配置文件概述
    apiVersion: kubekey.kubesphere.io/v1alpha2
    kind: Cluster
    metadata:
      name: config-cluster-example
    spec:
      hosts: #配置集群的所有node信息,name是node的主机名,会自动把节点主机名改为name的值,address是节点ip,internalAddress是节点内网ip,user和password是登陆节点的用户名和密码,如果配置了ssh密钥登陆,可以删除user和password字段。
      - {name: node1, address: 172.16.0.2, internalAddress: 172.16.0.2, user: ubuntu, password: "Qcloud@123"}
      - {name: node2, address: 172.16.0.3, internalAddress: 172.16.0.3}
      roleGroups: # 指定节点的身份
        etcd:
        - node1
        control-plane: 
        - node1
        worker:
        - node1
        - node2
      controlPlaneEndpoint:
        ## Internal loadbalancer for apiservers 
        # internalLoadbalancer: haproxy
    
        domain: lb.kubesphere.local # apiServer监听的域名,默认即可
        address: "172.16.0.2" # apiServer监听的ip,需要自己指定
        port: 6443 # apiServer监听的端口号,默认即可
      kubernetes:
        version: v1.23.15 # 需要安装的集群版本,没有需求默认即可
        clusterName: cluster.local
        autoRenewCerts: true
        containerManager: docker
      etcd:
        type: kubekey
      network:
        plugin: calico
        kubePodsCIDR: 10.233.64.0/18
        kubeServiceCIDR: 10.233.0.0/18
        ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
        multusCNI:
          enabled: false
      registry:
        privateRegistry: ""
        namespaceOverride: ""
        registryMirrors: []
        insecureRegistries: []
      addons: []
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
  • 安装必要组件
    # 所有node都需要执行
    apt install -y socat ipset conntrack chrony ipvsadm ebtables
    
    • 1
    • 2
  • 创建集群
    kk create cluster -yf config-cluster-example.yaml
    
    • 1
  • 安装kubectl(已安装则不用再进行安装)
    # 命令自动补全
    echo "source <(kubectl completion bash)" >> ~/.bashrc
    source ~/.bashrc
    
    • 1
    • 2
    • 3

扩展操作

  • 删除集群
    kk delete cluster <clusterName>
    
    • 1
  • 查看kubekey版本
    kk version
    
    • 1
  • 更新集群版本
    kk upgrade -y --with-kubernetes <version> <clusterName> 或
    kk upgrade -y -f <config>.yaml # 推荐
    
    • 1
    • 2
  • 删除node
    kk delete node <nodeName>
    
    • 1
  • 添加node
    kk add -y nodes <nodeName>或
    kk add -y nodes -f <config>.yaml # 推荐
    
    • 1
    • 2
  • 在worker上可以管理集群
    mkdir -p .kube/config
    scp root@<master>:/etc/kubernetes/admin.conf ~/.kube/config # 从master上拷贝 集群管理员的权限
    echo "export KUBECONFIG=.kube/config/admin.conf" >> .bashrc
    source .bashrc
    
    # KubeKey 默认不会启用 kubectl 自动补全功能。
    # 将 completion 脚本添加到你的 ~/.bashrc 文件
    echo "source <(kubectl completion bash)" >> ~/.bashrc
    source ~/.bashrc
    # 将 completion 脚本添加到 /etc/bash_completion.d 目录
    kubectl completion bash >/etc/bash_completion.d/kubect
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 创建一个部署了 KubeSphere 的 Kubernetes 集群 的 配置文件

    例如 --with-kubesphere v3.1.0

    kk create config --with-kubesphere --name <clusterName>
    
    • 1
  • 创建一个部署了 KubeSphere 的 Kubernetes 集群

    例如 --with-kubesphere v3.1.0

    kk create cluster --with-kubesphere v3.1.0
    
    • 1
  • 从已有的集群创建配置文件
    kk create config --from-cluster cluster1 -f cluster2.yaml
    
    • 1
  • 创建容器是指定 container runtime

    可选:docker, crio, containerd and isula

    kk create cluster --container-manager <container_runtime> -f <config>.yaml
    
    • 1
  • 查看kubekey支持的kubernetes的版本
    kk version --show-supported-k8s
    
    • 1
  • 查看kubesphere安装
    kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yaml
    
    kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
    
    • 1
    • 2
    • 3
  • 查看kubesphere删除
    kubectl delete --force -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yaml
    
    kubectl delete --force -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
    
    • 1
    • 2
    • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/1006730
推荐阅读
相关标签
  

闽ICP备14008679号