如何在本地集群中获取Minikube节点

11

我正在尝试使用VM和Minikube设置本地集群,因为我读到只有在本地才能使用它,但我想加入第二台机器,并寻找一种创建联接和哈希的方法。

2个回答

21

如果您的minikube机器正在使用VirtualBox,您可以轻松完成它。

  1. 启动minikube:

$ minikube start --vm-driver="virtualbox"
  • 检查minikube中kubeadm、kubelet和kubectl的版本,并打印加入命令:

  • $ kubectl version
    
    $ minikube ssh
    $ kubelet --version
    $ kubeadm token create --print-join-command
    
  • 在VirtualBox中创建一个新的虚拟机。我使用Vagrant创建了一个Ubuntu 16lts虚拟机进行测试。请确保minikube和新的虚拟机位于同一个host-only VM网络中。 您可以使用最适合您的任何工具,但是不同Linux发行版的软件包安装过程可能会有所不同。

  • (在新的虚拟机上) 添加Kubernetes仓库:

  • $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
    $ cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
    deb http://apt.kubernetes.io/ kubernetes-xenial main
    EOF
    $ apt-get update
    
  • (在新虚拟机上)安装与原虚拟机相同版本的kubelet、kubeadm以及其他工具(在我的情况下是1.10.0版本)。

  • $ apt-get -y install ebtables ethtool docker.io apt-transport-https kubelet=1.10.0-00 kubeadm=1.10.0-00
    
  • (在新的虚拟机上。)使用第二步骤中的加入命令。IP地址应来自VM Host-Only-Network。在我的情况下,仅具有Nat网络效果不佳。

  • $ kubeadm join 192.168.xx.yy:8443 --token asdfasf.laskjflakflsfla --discovery-token-ca-cert-hash sha256:shfkjshkfjhskjfskjdfhksfh...shdfk
    
  • (在主机上)向集群添加网络解决方案:

    $ kubectl apply -f https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml
    
  • (在主机上)使用kubectl检查您的节点和Pod:

  • $ kubectl get nodes:
    
    NAME            STATUS    ROLES     AGE       VERSION
    minikube        Ready     master    1h        v1.10.0
    ubuntu-xenial   Ready     <none>    36m       v1.10.0
    
    $ kubectl get pods --all-namespaces -o wide
    NAMESPACE     NAME                                       READY     STATUS    RESTARTS   AGE       IP           NODE
    kube-system   calico-etcd-982l8                          1/1       Running   0          10m       10.0.2.15    minikube
    kube-system   calico-kube-controllers-79dccdc4cc-66zxm   1/1       Running   0          10m       10.0.2.15    minikube
    kube-system   calico-node-9sgt5                          1/2       Running   13         10m       10.0.2.15    ubuntu-xenial
    kube-system   calico-node-qtpg2                          2/2       Running   0          10m       10.0.2.15    minikube
    kube-system   etcd-minikube                              1/1       Running   0          1h        10.0.2.15    minikube
    kube-system   heapster-6hmhs                             1/1       Running   0          1h        172.17.0.4   minikube
    kube-system   influxdb-grafana-69s5s                     2/2       Running   0          1h        172.17.0.5   minikube
    kube-system   kube-addon-manager-minikube                1/1       Running   0          1h        10.0.2.15    minikube
    kube-system   kube-apiserver-minikube                    1/1       Running   0          1h        10.0.2.15    minikube
    kube-system   kube-controller-manager-minikube           1/1       Running   0          1h        10.0.2.15    minikube
    kube-system   kube-dns-86f4d74b45-tzc4r                  3/3       Running   0          1h        172.17.0.2   minikube
    kube-system   kube-proxy-vl5mq                           1/1       Running   0          1h        10.0.2.15    minikube
    kube-system   kube-proxy-xhv8s                           1/1       Running   2          35m       10.0.2.15    ubuntu-xenial
    kube-system   kube-scheduler-minikube                    1/1       Running   0          1h        10.0.2.15    minikube
    kube-system   kubernetes-dashboard-5498ccf677-7gf4j      1/1       Running   0          1h        172.17.0.3   minikube
    kube-system   storage-provisioner                        1/1       Running   0          1h        10.0.2.15    minikube
    

    请分享Vagrantfile文件。 - Abdennour TOUMI
    为什么需要“网络解决方案”?它有什么作用?我担心它只适用于k8s 1.7。如果它对多节点是必需的,为什么不内置于k8s中?我阅读了yaml文件,它是一个daemonset、etcd组件、一堆pod和一个service。 - Shorin
    需要网络解决方案才能与不同节点上的Pod进行通信。最新版本的k8s仍然需要它。它没有内置到k8s中,因为存在多个网络插件。由您决定要使用哪个插件。192.168.0.0/16子网是calico插件的默认设置。如果要使用flannel,则需要在将其应用于集群之前调整其yaml文件。 - VAS
    我卡在第六步了。https://stackoverflow.com/questions/55179194/can-join-the-cluster-but-unable-to-fetch-kubeadm-config - joe

    2

    使用minikube无法实现此功能。在minikube中,操作域是单个笔记本电脑或本地计算机。您无法加入其他节点,您需要使用类似kubeadm的工具构建整个集群。


    1
    这可能在2018年是正确的,但截至2021年,您可以使用minikube在一个物理盒子上模拟集群的多个节点。请参见minikube node add和其他命令。 https://minikube.sigs.k8s.io/docs/commands/node/#synopsis-1 - zuraff

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接