Назад | Перейти на главную страницу

Kubernetes minikube не запускается из-за ошибки: недопустимый пользовательский докер из 127.0.0.1

Мой сервер - это Fedora 27 с принудительным SELinux. Устанавливаю Kubernetes. Моя установка терпит неудачу рано, так как я даже не могу создавать кластеры. Ниже я получаю ошибку:

% minikube start --vm-driver kvm2 --logtostderr --v=10 
I0214 12:44:01.346196   10856 notify.go:109] Checking for updates...
I0214 12:44:01.768416   10856 start.go:96] Viper configuration:
Aliases:
map[string]string{}
Override:
map[string]interface {}{"v":"10"}
PFlags:
.........
Env:
map[string]string{}
Key/Value Store:
map[string]interface {}{}
Config:
..............
Defaults:
map[string]interface {}{"wantreporterror":false, "wantreporterrorprompt":true, "showdriverdeprecationnotification":true, "alsologtostderr":"false", "log_dir":"", "wantupdatenotification":true, "reminderwaitperiodinhours":24, "wantkubectldownloadmsg":true, "wantnonedriverwarning":true, "v":"0"}
Starting local Kubernetes v1.9.0 cluster...
Starting VM...
I0214 12:44:01.769248   10856 cluster.go:74] Skipping create...Using existing machine configuration
........
Found binary path at /usr/bin/docker-machine-driver-kvm2
Launching plugin server for driver kvm2
Plugin server listening at address 127.0.0.1:44533
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(minikube) Calling .GetState
I0214 12:44:01.916793   10856 cluster.go:83] Machine state:  Running
(minikube) Calling .DriverName
Waiting for SSH to be available...
Getting to WaitForSSH function...
(minikube) Calling .GetSSHHostname
(minikube) Calling .GetSSHPort
(minikube) Calling .GetSSHKeyPath
(minikube) Calling .GetSSHKeyPath
(minikube) Calling .GetSSHUsername
Using SSH client type: native
&{{{<nil> 0 [] [] []} docker [0x834be0] 0x834b90  [] 0s}  42660 <nil> <nil>}
About to run SSH command:
exit 0
Error dialing TCP: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
Error dialing TCP: ssh: handshake failed: ssh: unable to authenticate, attempted methods [publickey none], no supported methods remain

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

188:qemu     10734     1  9 12:43 ?        00:00:37 /usr/bin/qemu-system-x86_64 -machine accel=kvm -name guest=minikube,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-4-minikube/master-key.aes -machine pc-i440fx-2.10,accel=kvm,usb=off,dump-guest-core=off -m 1954 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid fef86dfc-66d5-4033-87a2-106f6b470737 -display none -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-4-minikube/monitor.sock,server,nowait -mon` chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot menu=off,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device lsi,id=scsi0,bus=pci.0,addr=0x4 -drive file=/home/gabx/.minikube/machines/minikube/boot2docker.iso,format=raw,if=none,id=drive-scsi0-0-2,readonly=on -device scsi-cd,bus=scsi0.0,scsi-id=2,drive=drive-scsi0-0-2,id=scsi0-0-2,bootindex=1 -drive file=/home/gabx/.minikube/machines/minikube/minikube.rawdisk,format=raw,if=none,id=drive-virtio-disk0,aio=threads -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -netdev tap,fd=25,id=hostnet0,vhost=on,vhostfd=27 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=a4:d6:75:fd:a0:af,bus=pci.0,addr=0x2 -netdev tap,fd=28,id=hostnet1,vhost=on,vhostfd=29 -device virtio-net-pci,netdev=hostnet1,id=net1,mac=a4:d6:75:fd:a0:af,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -object rng-random,id=objrng0,filename=/dev/random -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.0,addr=0x7 -msg timestamp=on

Итак, пользователь qemu запустил процесс, но я не знаю, так ли это будет.

Некоторая помощь по отладке:

$ journalctl -u sshd.service
Invalid user docker from 127.0.0.1 port 34998

$ journalctl -u libvirtd.service
Starting Virtualization daemon...
Feb 14 12:29:12 dahlia systemd[1]: Started Virtualization daemon.
Feb 14 12:29:13 dahlia dnsmasq[16256]: read /etc/hosts - 3 addresses
Feb 14 12:29:13 dahlia dnsmasq[16256]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Feb 14 12:29:13 dahlia dnsmasq-dhcp[16256]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Feb 14 12:29:13 dahlia dnsmasq[9727]: started, version 2.78 cachesize 150
Feb 14 12:29:13 dahlia dnsmasq[9727]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN2 DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Feb 14 12:29:13 dahlia dnsmasq[9727]: warning: no upstream servers configured
Feb 14 12:29:13 dahlia dnsmasq-dhcp[9727]: DHCP, IP range 192.168.39.2 -- 192.168.39.254, lease time 1h
Feb 14 12:29:13 dahlia dnsmasq-dhcp[9727]: DHCP, sockets bound exclusively to interface virbr0
Feb 14 12:29:13 dahlia dnsmasq[9727]: read /etc/hosts - 3 addresses
Feb 14 12:29:13 dahlia dnsmasq[9727]: read /var/lib/libvirt/dnsmasq/minikube-net.addnhosts - 0 addresses
Feb 14 12:29:13 dahlia dnsmasq-dhcp[9727]: read /var/lib/libvirt/dnsmasq/minikube-net.hostsfile
Feb 14 12:31:48 dahlia libvirtd[9650]: 2018-02-14 12:31:48.661+0000: 9650: info : libvirt version: 3.7.0, package: 3.fc27 (Fedora Project, 2017-12-04-17:14:09, buildhw-06.phx2.fedoraproj
Feb 14 12:31:48 dahlia libvirtd[9650]: 2018-02-14 12:31:48.661+0000: 9650: info : hostname: dahlia.thetradinghall.com
Feb 14 12:31:48 dahlia libvirtd[9650]: 2018-02-14 12:31:48.661+0000: 9650: error : virNetSocketReadWire:1808 : End of file while reading data: Input/output error

Последняя строка печатается каждый раз, когда я запускаю minikube.

НОТА:

  1. sshd работает на настраиваемом порту, пользователи входят в систему без пароля, но с ключом, а в конфигурации sshd есть эта строка:

    Разрешитьпользователь Пользователь1 пользователь2

  2. Iptables активен среди других строк:

    Цепочка ВПЕРЕД (policy DROP)

  3. запущены два процесса dnsmasq, один принадлежит root, а другой никто

    154:nobody 1681 1 0 Feb13 ? 00:00:01 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/minikube-net.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

  4. Здесь нет докер пользователь или группа на моей машине

  5. выполнение ошибок печати kubectl:

    % kubectl version

    Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1", GitCommit:"3a1c9449a956b6026f075fa3134ff92f7d55f812", GitTreeState:"archive", BuildDate:"2018-01-15T15:56:33Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
    The connection to the server localhost:8080 was refused - did you specify the right host or port?

    % kubectl cluster-info

    Kubernetes master is running at http://localhost:8080 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. The connection to the server localhost:8080 was refused - did you specify the right host or port

Спасибо за любую помощь и подсказку о том, как должна запускаться команда minikube и почему этот пользователь докера не может подключиться? Может ли это быть причиной моих проблем? Почему это сообщение подключение к серверу localhost: 8080 было отказано при запуске kubectl?

rm -rf ~/.minikube

и попробуй еще раз.

Я отказался от kvm2 на Fedora 27 и вернулся к VirtualBox за vm-драйвером.

Что касается других ваших вопросов-

  • qemu - это приложение для виртуальной машины. Это то, что запускает биты Kubernetes для minikube и что поддерживает vm-драйвер kvm2.
  • на вашем компьютере не обязательно должен быть пользователь докера. Пользователь докера существует на машине qemu.
  • minikube ssh - это сокращение от

    ssh -i ~ / .minikube / машины / minikube / id_rsa docker @

По сути, этот сбой означает, что ключ ssh внутри vm qemu отличается от того, что должно быть таким же ключом на вашем компьютере для этого vm. Другими словами, вещи залиты шлангами, надо начинать заново.