title: 开发者模式 keywords:

  • Harvester
  • harvester
  • Rancher
  • rancher
  • 开发者模式 description: 开发者模式用于测试和开发。

概述

开发者模式可用于测试和开发。

注意: 开发者模式用于本地测试和开发。

要求

  • Kubernetes 节点必须通过 host-check
  • 如果 Kubelet 的根目录不是 /var/lib/kubelet,你必须把一个绑定挂载创建到 /var/lib/kubelet,如下:

    1. KUBELET_ROOT_DIR="path to your kubelet root dir"
    2. echo "${KUBELET_ROOT_DIR} /var/lib/kubelet none bind 0 0" >> /etc/fstab
    3. mkdir -p /var/lib/kubelet && mount -a
  • Multus 在你的集群中安装,而且会创建一个对应的 NetworkAttachmentDefinition CRD。

  • Harvester Chart 已经包含 Kubevirt 和 Longhorn。

安装

如果是用于开发,你可以使用 Helm CLI 把 Harvester 安装到 Kubernetes 集群上。

如果需要了解安装和配置 Helm Chart 的更多信息,请参见 Harvester Helm Chart

  1. 创建 cattle-system 命名空间:

    1. kubectl create ns cattle-system
  2. 添加 rancher-latest Helm 仓库:

    1. helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
  3. 安装 Rancher Chart:

    1. helm install rancher rancher-latest/rancher \
    2. --namespace cattle-system \
    3. --set tls=external \
    4. --set rancherImagePullPolicy=IfNotPresent \
    5. --set rancherImage=rancher/rancher \
    6. --set rancherImageTag=v2.6.3-harvester1 \
    7. --set noDefaultAdmin=false \
    8. --set features="multi-cluster-management=false\,multi-cluster-management-agent=false" \
    9. --set useBundledSystemChart=true \
    10. --set bootstrapPassword=admin
  4. 把本地集群对象的 ‘status.provider’ 修改为 “harvester”:

    1. kubectl edit clusters.management.cattle.io local
  5. 克隆 GitHub 仓库:

    1. git clone https://github.com/harvester/harvester.git --depth=1
  6. 前往 Helm Chart:

    1. cd harvester/deploy/charts
  7. 创建 harvester-system 命名空间:

    1. kubectl create ns harvester-system
  8. 安装 Harvester CRD Chart:

    1. helm install harvester-crd ./harvester-crd --namespace harvester-system
  9. 安装 Harvester Chart:

    1. ## 为了使用服务类型的 LoadBalancer 以及在 control-plane 节点创建一个 VIP,你需要启用 kubevip。
    2. VIP_IP="replace with your vip ip, such as 192.168.5.10"
    3. VIP_NIC="replace with your vip interface name, such as eth0"
    4. helm install harvester ./harvester --namespace harvester-system \
    5. --set harvester-node-disk-manager.enabled=true \
    6. --set harvester-network-controller.enabled=true \
    7. --set harvester-load-balancer.enabled=true \
    8. --set kube-vip.enabled=true \
    9. --set kube-vip.config.vip_interface=${VIP_NIC} \
    10. --set kube-vip.config.vip_address=${VIP_IP} \
    11. --set service.vip.enabled=true \
    12. --set service.vip.ip=${VIP_IP}
    1. ## 在某些 Kubernetes 发行版(例如 kubeadm)中,我们需要修改 kube-vip nodeSelector 来匹配 control-plane 节点。
    2. --set kube-vip.nodeSelector."node-role\.kubernetes\.io/master"=""
  10. 暴露 Harvester UI。

    1. ## 参见 https://kube-vip.chipzoller.dev/docs/usage/cloud-provider/Add `cidr-cattle-system: ${VIP_IP}/32` to kubevip configMap.
    2. kubectl -n kube-system edit cm kubevip
    3. ## 将 Rancher 服务类型从 ClusterIP 修改为 LoadBalancer,然后你就可以通过 https://${VIP_IP} 访问 Harvester UI。
    4. kubectl -n cattle-system edit svc rancher

DigitalOcean 测试环境

你可以使用 DigitalOcean 作为云提供商(支持嵌套虚拟化),在 Rancher 中创建一个测试 Kubernetes 环境。

我们推荐使用 8 核, 16 GB RAM droplet,这将默认启用嵌套虚拟化。

下图显示了如何创建一个 Rancher 节点模板,让 Rancher 在 DigitalOcean 中配置这样的节点:

do.png

有关如何使用 Rancher 启动 DigitalOcean 节点的更多信息,请参见 Rancher 官方文档