1. minikube 多集群运行

kvm2 驱动依赖 kvm 环境。

1.1. CentOS/Redhat 安装 KVM 环境

判读主机是否支持虚拟化

cat /proc/cpuinfo | egrep '(vmx|svm)'

安装核心软件包安装

yum install kvm libvirt python-virtinst qemu-kvm virt-viewer bridge-utils qemu-img virt-manager libvirt libvirt-python libvirt-client

验证内核模块是否加载:

lsmod | grep kvm

启动虚拟机管理接口服务:

systemctl start libvirtd
或
/etc/init.d/libvirtd start

设置开机启动:

chkconfig libvirtd on
或
systemctl enable libvirtd

启动libvirtd后,会自动创建了一个网卡,并启动 dnsmasq 服务,用来为虚拟机分配IP地址

1.2. 安装 Kubernetes 多集群

使用 kvm2 驱动安装 kubernetes 集群不能使用 root 用户,需要切换到普通用户只执行。

创建普通用户

useradd minikube
usermod -G libvertd minikube

配置 sudo 权限

visudo 添加
minikube        ALL=(ALL)       NOPASSWD: ALL
#!/bin/bash -x

VERSION=$1

if [ $VERSION = "v1.19" ];then
    if [ -f /usr/local/bin/minikube-v1.19.0 ];then
        echo "/usr/local/bin/minikube-v1.19.0 already exist."
    else
        curl -Lo minikube-v1.19.0 https://github.com/kubernetes/minikube/releases/download/v1.19.0/minikube-linux-amd64 && chmod +x minikube-v1.19.0 && sudo mv minikube-v1.19.0 /usr/local/bin/
    fi
    minikube-v1.19.0 start -p k8s-v1.19.16 --kubernetes-version v1.19.16 \
      --registry-mirror=https://registry.docker-cn.com \
      --image-mirror-country=cn \
      --driver=kvm2 \
      --extra-config=kubelet.cgroup-driver=systemd \
      --cni=calico
    minikube-v1.19.0 -p k8s-v1.19.16 image load registry.cn-hangzhou.aliyuncs.com/google_containers/node:v3.14.1
    minikube-v1.19.0 -p k8s-v1.19.16 image load registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controllers:v3.14.1
    minikube-v1.19.0 -p k8s-v1.19.16 image load gcr.io/k8s-minikube/storage-provisioner:v5
    minikube-v1.19.0 -p k8s-v1.19.16 ssh sudo docker tag gcr.io/k8s-minikube/storage-provisioner:v5 registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v5
elif [ $VERSION = "v1.20" ];then
    if [ -f /usr/local/bin/minikube-v1.20.2 ];then
        echo "/usr/local/bin/minikube-v1.20.2 already exist."
    else
        curl -Lo minikube-v1.20.0 https://github.com/kubernetes/minikube/releases/download/v1.20.0/minikube-linux-amd64 && chmod +x minikube-v1.20.0 && sudo mv minikube-v1.20.0 /usr/local/bin/
    fi

    minikube-v1.20.0 start -p k8s-v1.20.2 --kubernetes-version v1.20.2 \
      --registry-mirror=https://registry.docker-cn.com \
      --image-mirror-country=cn \
      --driver=kvm2 \
      --extra-config=kubelet.cgroup-driver=systemd \
      --cni=calico
elif [ $VERSION = "v1.13" ];then
    if [ -f /usr/local/bin/minikube-v1.13.0 ];then
        echo "/usr/local/bin/minikube-v1.13.0 already exist."
    else
        curl -Lo minikube-v1.13.0 https://github.com/kubernetes/minikube/releases/download/v1.13.0/minikube-linux-amd64 && chmod +x minikube-v1.13.0 && sudo mv minikube-v1.13.0 /usr/local/bin/minikube-v1.13.0
    fi
    minikube-v1.13.0 start -p k8s-v1.13.9 --kubernetes-version v1.13.9 \
      --registry-mirror=https://registry.docker-cn.com \
      --image-mirror-country=cn \
      --driver=kvm2 \
      --extra-config=kubelet.cgroup-driver=systemd \
      --cni=calico
    # calico use label 
    kubectl label node k8s-v1.13.9 kubernetes.io/os=linux
else
  echo "not support"
fi

1.3. 使用查看

  • 查看启动的虚拟机列表
$ sudo virsh list
 Id    名称                         状态
----------------------------------------------------
 10    k8s-v1.13.9                    running
 12    k8s-v1.20.2                    running
 14    k8s-v1.19.16                   running
 15    k8s-v1.18.20                   running
  • 查看 kubernets 集群
$ kubectl config get-contexts
CURRENT   NAME           CLUSTER        AUTHINFO       NAMESPACE
          k8s-v1.13.9    k8s-v1.13.9    k8s-v1.13.9    
*         k8s-v1.18.20   k8s-v1.18.20   k8s-v1.18.20   default
          k8s-v1.19.16   k8s-v1.19.16   k8s-v1.19.16   default
          k8s-v1.20.2    k8s-v1.20.2    k8s-v1.20.2    default
  • 切换 Kubrnetes 集群
$ kubectl config use-context k8s-v1.20.2
Switched to context "k8s-v1.20.2".

$ kubectl get node
NAME          STATUS   ROLES                  AGE    VERSION
k8s-v1.20.2   Ready    control-plane,master   6h4m   v1.20.2
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-01-08 10:04:16

results matching ""

    No results matching ""