Im essayant de mettre en place un cluster local en utilisant VM et minikube, car l'ID lit sa seule possibilité de l'utiliser à des fins locales, mais j'aime rejoindre une machine secondaire et je cherche un moyen pour créer la jointure et le hachage.
Vous pouvez facilement le faire si votre machine minikube utilise VirtualBox.
Démarrez le minikube:
$ minikube start --vm-driver="virtualbox"
Vérifiez les versions de kubeadm, kubelet et kubectl dans minikube et imprimez la commande join:
$ kubectl version
$ minikube ssh
$ kubelet --version
$ kubeadm token create --print-join-command
Créez un nouveau VM dans VirtualBox. J'ai utilisé Vagrant pour créer Ubuntu 16lts VM pour ce test. Vérifiez que le minikube et le nouveau VM sont dans le même réseau Host = only VM. Vous pouvez utiliser tout ce qui vous convient le mieux, mais la procédure d'installation des packages serait différente pour différentes distributions Linux.
(Sur la nouvelle machine virtuelle.) Ajouter un référentiel avec 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
(Sur la nouvelle VM.) Installez la même version de kubelet kubeadm et d'autres outils sur la nouvelle VM (1.10.0 dans mon cas)
$ apt-get -y install ebtables ethtool docker.io apt-transport-https kubelet=1.10.0-00 kubeadm=1.10.0-00
(Sur la nouvelle VM.) Utilisez votre commande join à partir de l'étape 2. L'adresse IP doit provenir du VM Host-Only-Network. Seulement avoir des réseaux Nat n'a pas bien fonctionné dans mon cas .
$ kubeadm join 192.168.xx.yy:8443 --token asdfasf.laskjflakflsfla --discovery-token-ca-cert-hash sha256:shfkjshkfjhskjfskjdfhksfh...shdfk
(Sur l'hôte principal) Ajoutez une solution réseau au cluster:
$ kubectl apply -f https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml
(Sur l'hôte principal) Vérifiez vos nœuds et pods à l'aide de kubectl:
$ 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
Ce n'est pas possible avec minikube. Avec minikube, le domaine d'exploitation est un ordinateur portable unique ou une machine locale. Vous ne pouvez pas rejoindre un nœud supplémentaire, vous devrez créer un cluster entier en utilisant quelque chose comme kubeadm