跳转至

集群导入

基本信息⚓︎

  • 支持导入非 KubeOperator 创建的集群
  • 导入非 KubeOperator 创建的集群不支持扩缩容、升级、备份等 Day2 操作

cluster-import

获取架构

选择集群节点的 CPU 架构类型(支持 amd64、arm64 和混合架构三种类型)

获取 Api Server

cat ~/.kube/config | grep server: | awk '{print $2}'

注意:如果 server IP 为 127.0.0.1,需要将 IP 替换为任意 master 节点 IP

获取 Router

装有 kube-proxy 的任意 K8s 集群节点的 IP 地址

kubectl -n kube-system get pod -o wide | grep kube-proxy

注意:获取任意节点的 IP 地址

获取 Token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ko-admin | awk '{print $1}') | grep token: | awk '{print $2}'

创建 Service Account

apiVersion: v1
kind: ServiceAccount
metadata:
  name: kubeoperator-user
  namespace: kube-system

创建 ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubeoperator-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: kubeoperator-user
    namespace: kube-system

获取 Token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kubeoperator-user | awk '{print $1}') | grep token: | awk '{print $2}'

非 KubeOperator 创建集群⚓︎

使用工具⚓︎

仓库配置

  • 工具中涉及到的镜像来源于 nexus 镜像仓库。在启用工具之前,需要在所有 K8s 集群节点上对 nexus 镜像仓库进行 http 授信。
vim /etc/docker/daemon.json
{
    ...
    "insecure-registries" : [ "...", "kubeoperator-ip:8082", "..." ]
    ...
}

注意:kubeoperator-ip  KubeOperator 部署机 IP
# 重新启动 docker 服务使得配置生效
systemctl restart docker.service

KubeOperator 创建集群⚓︎

获取容器运行时参数⚓︎

Docker

# 集群任意节点执行
cat /etc/docker/daemon.json
{
    ...
    "bip": "172.17.0.1/16", # Container 子网
    "data-root": "/var/lib/docker", # Docker 数据路径
    ...
}

Containerd

# 集群任意节点执行
cat /etc/containerd/config.toml
...
root = "/var/lib/containerd" # Containerd 数据路径
...

获取容器网络参数⚓︎

网络模式

# 集群任意节点执行
kubectl -n kube-system get cm kube-flannel-cfg -o yaml
{
    ...
    net-conf.json: |
    {
      "Network": "10.0.0.0/14",
      "Backend": {
        "Type": "vxlan" # 网络模式为 vxlan
      }
    }
    ...
}

多网络设置

# 集群任意节点执行
kubectl -n kube-system get daemonsets.apps kube-flannel-ds -o yaml
...
containers:
- args:
  - --ip-masq
  - --kube-subnet-mgr
  - --iface=ens192 # 多网络设置为启用,网卡名称为 ens192
...

网络模式

# 集群任意节点执行
kubectl -n kube-system get cm calico-config -o yaml
...
containers:
- env:
  - name: CALICO_IPV4POOL_IPIP
    value: "off" # off 代表网络模式为 bgp,Always 代表网络模式为 ipip
...

多网络设置

# 集群任意节点执行
kubectl -n kube-system get daemonsets.apps calico-node -o yaml
...
containers:
- env:
  - name: DATASTORE_TYPE
    value: kubernetes
  - name: IP_AUTODETECTION_METHOD
    value: interface=ens192 # 多网络设置为网卡,网卡名称为 ens192
    value: cidr=192.168.64.0/24 # 多网络设置为网段,网段为 192.168.64.0/24
...