基本信息

!!! warning “”

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

cluster-import

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

!!! warning “获取 Api Server”

  1. ```shell
  2. cat ~/.kube/config | grep server: | awk '{print $2}'
  3. ```
  4. 注意:如果 server IP 127.0.0.1,需要将 IP 替换为任意 master 节点 IP

!!! warning “获取 Router” 装有 kube-proxy 的任意 K8s 集群节点的 IP 地址

  1. ```shell
  2. kubectl -n kube-system get pod -o wide | grep kube-proxy
  3. ```
  4. 注意:获取任意节点的 IP 地址

!!! warning “获取 Token”

  1. === "KubeOperator 创建集群"
  2. ```shell
  3. kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ko-admin | awk '{print $1}') | grep token: | awk '{print $2}'
  4. ```
  5. === "自建集群"
  6. !!! warning ""
  7. 创建 Service Account
  8. ```yaml
  9. apiVersion: v1
  10. kind: ServiceAccount
  11. metadata:
  12. name: kubeoperator-user
  13. namespace: kube-system
  14. ```
  15. !!! warning ""
  16. 创建 ClusterRoleBinding
  17. ```yaml
  18. apiVersion: rbac.authorization.k8s.io/v1
  19. kind: ClusterRoleBinding
  20. metadata:
  21. name: kubeoperator-user
  22. roleRef:
  23. apiGroup: rbac.authorization.k8s.io
  24. kind: ClusterRole
  25. name: cluster-admin
  26. subjects:
  27. - kind: ServiceAccount
  28. name: kubeoperator-user
  29. namespace: kube-system
  30. ```
  31. !!! warning ""
  32. 获取 Token
  33. ```shell
  34. kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kubeoperator-user | awk '{print $1}') | grep token: | awk '{print $2}'
  35. ```

非 KubeOperator 创建集群

使用工具

!!! warning “仓库配置”

  1. - 工具中涉及到的镜像来源于 nexus 镜像仓库。在启用工具之前,需要在所有 K8s 集群节点上对 nexus 镜像仓库进行 http 授信。
  2. ```shell
  3. vim /etc/docker/daemon.json
  4. ```
  5. ```json
  6. {
  7. ...
  8. "insecure-registries" : [ "...", "kubeoperator-ip:8082", "..." ]
  9. ...
  10. }
  11. 注意:kubeoperator-ip 为 KubeOperator 部署机 IP
  12. ```
  13. ```shell
  14. # 重新启动 docker 服务使得配置生效
  15. systemctl restart docker.service
  16. ```

KubeOperator 创建集群

获取容器运行时参数

!!! warning “Docker”

  1. ```shell
  2. # 集群任意节点执行
  3. cat /etc/docker/daemon.json
  4. ```
  5. ```json
  6. {
  7. ...
  8. "bip": "172.17.0.1/16", # Container 子网
  9. "data-root": "/var/lib/docker", # Docker 数据路径
  10. ...
  11. }
  12. ```

!!! warning “Containerd”

  1. ```shell
  2. # 集群任意节点执行
  3. cat /etc/containerd/config.toml
  4. ```
  5. ```yaml
  6. ...
  7. root = "/var/lib/containerd" # Containerd 数据路径
  8. ...
  9. ```

获取容器网络参数

!!! warning “”

  1. === "flannel"
  2. !!! warning "网络模式"
  3. ```shell
  4. # 集群任意节点执行
  5. kubectl -n kube-system get cm kube-flannel-cfg -o yaml
  6. ```
  7. ```json
  8. {
  9. ...
  10. net-conf.json: |
  11. {
  12. "Network": "10.0.0.0/14",
  13. "Backend": {
  14. "Type": "vxlan" # 网络模式为 vxlan
  15. }
  16. }
  17. ...
  18. }
  19. ```
  20. !!! warning "多网络设置"
  21. ```shell
  22. # 集群任意节点执行
  23. kubectl -n kube-system get daemonsets.apps kube-flannel-ds -o yaml
  24. ```
  25. ```yaml
  26. ...
  27. containers:
  28. - args:
  29. - --ip-masq
  30. - --kube-subnet-mgr
  31. - --iface=ens192 # 多网络设置为启用,网卡名称为 ens192
  32. ...
  33. ```
  34. === "calico"
  35. !!! warning "网络模式"
  36. ```shell
  37. # 集群任意节点执行
  38. kubectl -n kube-system get cm calico-config -o yaml
  39. ```
  40. ```yaml
  41. ...
  42. containers:
  43. - env:
  44. - name: CALICO_IPV4POOL_IPIP
  45. value: "off" # off 代表网络模式为 bgp,Always 代表网络模式为 ipip
  46. ...
  47. ```
  48. !!! warning "多网络设置"
  49. ```shell
  50. # 集群任意节点执行
  51. kubectl -n kube-system get daemonsets.apps calico-node -o yaml
  52. ```
  53. ```yaml
  54. ...
  55. containers:
  56. - env:
  57. - name: DATASTORE_TYPE
  58. value: kubernetes
  59. - name: IP_AUTODETECTION_METHOD
  60. value: interface=ens192 # 多网络设置为网卡,网卡名称为 ens192
  61. value: cidr=192.168.64.0/24 # 多网络设置为网段,网段为 192.168.64.0/24
  62. ...
  63. ```