Как перенести kubeconfig на windows 10 - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь установить миникуб уже два дня. Я столкнулся с проблемой после проблемы. На этот раз я поставил в тупик.

  • установить миникуб на windows 10
  • Docker работает с гипервизором в течение нескольких месяцев
  • с последующим windows с использованием choco, игнорируя все с помощью установки hyperv.

W0107 08: 23: 27.485052 3337 общих. go: 77] ваш файл конфигурации использует устаревший API spe c : "kubeadm.k8s.io/v1beta1". Пожалуйста, используйте 'kubeadm config migrate --old-config old.yaml --new-config new.yaml', который запишет новый аналогичный spe c, используя более новую версию API.

Из того, что я понимаю, есть новый конфиг. что мне нужно мигрировать в. для этого мне нужно использовать kubeadm, но я не смог найти никакой информации о том, где найти эти файлы или как выполнить миграцию. Вот что я попробовал.

Из командной строки с повышенными привилегиями я запустил:

  • minikube s sh

Затем я нашел kubeadm в следующий каталог.

  • cd /var/lib/minikube/binaries/v1.17.0

, где я начал бросать в него несколько случайных команд в надежде на некоторую помощь

$ ./kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:17:50Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}


$ ./kubeadm config view
failed to load admin kubeconfig: open /home/docker/.kube/config: no such file or directory
To see the stack trace of this error execute with --v=5 or higher

$ ./kubeadm init --config defaults
unable to read config from "defaults" : open defaults: no such file or directory
To see the stack trace of this error execute with --v=5 or higher

Как говорится в сообщении об ошибке, я дал этому go. Это тоже не сработало

$ ./kubeadm config migrate --old-config old.yaml --new-config new.yaml
open old.yaml: no such file or directory
To see the stack trace of this error execute with --v=5 or higher

После поиска в журналах я обнаружил, что он пытается загрузить следующий файл конфигурации, поэтому я попытался загрузить его как старый, надеясь, что он достаточно умен, чтобы собственный новый.

./kubeadm config migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-config new.yaml
open /var/tmp/minikube/kubeadm.yaml: permission denied 
To see the stack trace of this error execute with --v=5 or higher

Хорошо, тогда давайте проверим права доступа к файлу

$ ls -la /var/tmp/minikube/kubeadm.yaml
-rw-r----- 1 root root 1156 Jan  1  0001 /var/tmp/minikube/kubeadm.yaml

Ну, это нехорошо, давайте попробуем обновить его

$ chmod u=r /var/tmp/minikube/kubeadm.yaml
chmod: changing permissions of '/var/tmp/minikube/kubeadm.yaml': Operation not 
 permitted

ок

$ sudu chmod u=r /var/tmp/minikube/kubeadm.yaml
-bash: sudu: command not found

edit sudo

 $ sudo chmod u=r /var/tmp/minikube/kubeadm.yaml 
 $ ls -la /var/tmp/minikube/kubeadm.yaml
 -r--r----- 1 root root 1156 Jan  1  0001 /var/tmp/minikube/kubeadm.yaml

update 777

$ sudo chmod 777 /var/tmp/minikube/kubeadm.yaml
$ ls -la /var/tmp/minikube/kubeadm.yaml
-rwxrwxrwx 1 root root 1156 Jan  1  0001 /var/tmp/minikube/kubeadm.yaml
fig new.yamlconfig migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-conf
W0107 13:19:23.298409    4361 validation.go:28] Cannot validate kube-proxy config - no validator is available
W0107 13:19:23.298437    4361 validation.go:28] Cannot validate kubelet config - no validator is available
failed to write the new configuration to the file "new.yaml": open new.yaml: permission denied
To see the stack trace of this error execute with --v=5 or higher

Все еще нет кубиков. похоже, это очень ограниченная оболочка bash.

имеет файл

Хорошо, благодаря некоторым chmod 777, я знаю, что есть файл, но что мне с ним делать?

./kubeadm config migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-config /home/docker/new.yaml
W0107 13:22:21.615314    6352 validation.go:28] Cannot validate kube-proxy config - no validator is available
W0107 13:22:21.615375    6352 validation.go:28] Cannot validate kubelet config - no validator is available

Похоже, что документации о том, как с этим бороться, почти нет или нет, я опубликовал этот вопрос на форуме. # 6227 любая помощь будет принята с благодарностью. Я попытался удалить мини-куб и добавить его снова с теми же результатами.

текущий статус

sudo chmod 777 /var/tmp/minikube/kubeadm.yaml
ls -la /var/tmp/minikube/kubeadm.yaml
cd /var/lib/minikube/binaries/v1.17.0
./kubeadm config migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-config /home/docker/new.yaml
sudo chmod 777 /var/tmp/minikube 
mv /var/tmp/minikube/kubeadm.yaml /var/tmp/minikube/kubeadmold.yaml
mv /home/docker/new.yaml /var/tmp/minikube/kubeadm.yaml

minikube start --vm-driver=hyperv --v=7 --alsologtostderr

Без изменений то же сообщение об ошибке.

1.16.0

C:\Windows\system32>minikube start --vm-driver=hyperv --kubernetes-version=1.16.0
* minikube v1.6.0 on Microsoft Windows 10 Pro 10.0.18363 Build 18363
* Selecting 'hyperv' driver from user configuration (alternates: [])
* Creating hyperv VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
X minikube is unable to connect to the VM: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address

This is likely due to one of two reasons:

- VPN or firewall interference
- hyperv network configuration issue

Suggested workarounds:

- Disable your local VPN or firewall software
- Configure your local VPN or firewall to allow access to fe80::215:5dff:fe37:c505
- Restart or reinstall hyperv
- Use an alternative --vm-driver

1 Ответ

0 голосов
/ 14 января 2020

Поскольку вы можете видеть kubeadm версию, она предполагает, что вы использовали Kubernetes kubeadm , который немного отличается от Minikube.

Kubeadm инструмент, чтобы заставить Kubernetes работать на существующей машине. Он настроит и запустит все необходимые Kubernetes компоненты. Используя Kubeadm, вы можете создать кластер с несколькими узлами (kubeadm join).

Minikube - это инструмент, который запускает один Kubernets Cluster локальный узел.

Там Это уже хорошее объяснение в этом Stackoverflow вопрос.

Я не думаю, что Kubeadm configuration из Linux будет работать на Windows. Как вы упомянули в комментарии, что вы хотите запустить Minikube в windows для изучения Kubernetes, я предоставлю пошаговое руководство по запуску Minikube в Windows 10.

Установка Minikube на Windows 10

Поскольку у вас уже есть docker, я пропущу эти шаги установки.

1. Скачать kubectl и minikube.

Новейшая версия предоставляется в официальных документах kubernetes .

kubectl v1.17 и миникуб от github (minikube-windows-amd64.exe).

2. Добавьте в PATH папку формы в Environment Variables.

Создайте папку, куда вы будете вставлять kubectl.exe и переименовывать minikube.exe файл. Добавить эту папку в PATH. (Если кому-то понадобится , вот учебник ).

3. Создайте внешний Virtual Switch Manager в Hyper-V.

Go до Hyper-V. В правом меню выберите Virtual Switch Manager. Выберите External и назовите его Primary Virtual Switch. Затем примените.

4. Проверьте версии minikube и kubeadm.

PS C:\WINDOWS\system32> kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"windows/amd64"}​
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:12:17Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}​
PS C:\WINDOWS\system32> minikube version​
minikube version: v1.6.2​
commit: 54f28ac5d3a815d1196cd5d57d707439ee4bb392

5. Создайте Minikube Cluster.

Запустите PowerShell от имени администратора.

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

PS C:\WINDOWS\system32> minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
* minikube v1.6.2 on Microsoft Windows 10 Enterprise 10.0.17134 Build 17134​
* Selecting 'hyperv' driver from user configuration (alternates: [])​
* Creating hyperv VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...​
* Preparing Kubernetes v1.17.0 on Docker '19.03.5' ...​
* Pulling images ...​
* Launching Kubernetes ...​
* Waiting for cluster to come online ...​
* Done! kubectl is now configured to use "minikube"​

Теперь вы можете использовать kubectl команды и уже ресурсы по умолчанию, необходимые для запуска Minikube.

PS C:\WINDOWS\system32> kubectl get pods --all-namespaces​
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE​
kube-system   coredns-6955765f44-c4cbj           1/1     Running   0          31m​
kube-system   coredns-6955765f44-rqfth           1/1     Running   0          31m​
kube-system   etcd-minikube                      1/1     Running   0          31m​
kube-system   kube-addon-manager-minikube        1/1     Running   0          31m​
kube-system   kube-apiserver-minikube            1/1     Running   0          31m​
kube-system   kube-controller-manager-minikube   1/1     Running   0          31m​
kube-system   kube-proxy-j6q29                   1/1     Running   0          31m​
kube-system   kube-scheduler-minikube            1/1     Running   0          31m​
kube-system   storage-provisioner                1/1     Running   0          31m

Кроме того, вы можете проверить эту статью о запуске Minikube на windows.

Также вы можно рассмотреть Docker для Windows, который будет делать многие вещи автоматически, однако он установит более старую версию kubernetes (на данный момент 1.14).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...