Не удается получить информацию о порте TCP от Kubernetes host-Openshift Origin-oc

Я следил за документацией по управлению локальными кластерами Openshift. После того как я побежал oc cluster up

[root@user ~]# oc cluster up
Starting OpenShift using openshift/origin:v3.6.0 ...
-- Checking OpenShift client ... OK
-- Checking Docker client ... OK
-- Checking Docker version ... 
   WARNING: Docker version is 1.21, it needs to be >= 1.22
-- Checking for existing OpenShift container ... OK
-- Checking for openshift/origin:v3.6.0 image ... OK
-- Checking Docker daemon configuration ... OK
-- Checking for available ports ... FAIL
   Error: Cannot get TCP port information from Kubernetes host
   Caused By:
     Error: cannot create container using image openshift/origin:v3.6.0
     Caused By:
       Error: Error response from daemon: SHM size must be greater then 0
[root@ip-172-31-0-186 ~]# oc cluster up --loglevel=5
-- Checking OpenShift client ... 
-- Checking Docker client ... 
I0803 04:30:33.543172    1417 up.go:590] No Docker environment variables found. Will attempt default socket.
I0803 04:30:33.543221    1417 up.go:595] No Docker host (DOCKER_HOST) configured. Will attempt default socket.
-- Checking Docker version ... 
I0803 04:30:33.543240    1417 helper.go:114] Retrieving Docker version
I0803 04:30:33.554087    1417 helper.go:120] Docker version results: &types.Version{Version:"1.9.1", APIVersion:"1.21", GitCommit:"78ee77d/1.9.1", GoVersion:"go1.4.2", Os:"linux", Arch:"amd64", KernelVersion:"3.10.0-693.el7.x86_64", Experimental:false, BuildTime:""}
I0803 04:30:33.554126    1417 helper.go:124] APIVersion: 1.21
I0803 04:30:33.554158    1417 up.go:686] Checking that docker API version is at least 1.22

   WARNING: Docker version is 1.21, it needs to be >= 1.22
-- Checking for existing OpenShift container ... 
I0803 04:30:33.554181    1417 helper.go:171] Inspecting docker container "origin"
I0803 04:30:33.555084    1417 helper.go:175] Container "origin" was not found
-- Checking for openshift/origin:v3.6.0 image ... 
I0803 04:30:33.555101    1417 helper.go:143] Inspecting Docker image "openshift/origin:v3.6.0"
I0803 04:30:33.556444    1417 helper.go:146] Image "openshift/origin:v3.6.0" found: &types.ImageInspect{ID:"c6d16974c8a3a5da3ab799533daa2dbd54e56b1f0ebbad59345154fc8e836ff2", RepoTags:[]string{"docker.io/openshift/origin:v3.6.0"}, RepoDigests:[]string{}, Parent:"395d30169bc02cca2e7083926b0fd6f2e6b7034a6de41a811cce0ab7c7473fca", Comment:"", Created:"2017-08-01T18:34:13.736398725Z", Container:"ae53137cc1b98b2f93051589d6aee252e505ac82f8e7a31f5ab49bfc0e9dc91a", ContainerConfig:(*container.Config)(0xc420277b00), DockerVersion:"1.12.6", Author:"", Config:(*container.Config)(0xc4202e2120), Architecture:"amd64", Os:"linux", Size:611206034, VirtualSize:974248741, GraphDriver:types.GraphDriverData{Name:"devicemapper", Data:map[string]string{"DeviceId":"7", "DeviceName":"docker-202:2-25214823-c6d16974c8a3a5da3ab799533daa2dbd54e56b1f0ebbad59345154fc8e836ff2", "DeviceSize":"107374182400"}}, RootFS:types.RootFS{Type:"", Layers:[]string(nil), BaseLayer:""}}
-- Checking Docker daemon configuration ... 
I0803 04:30:33.556503    1417 helper.go:65] Retrieving Docker daemon info
I0803 04:30:33.681753    1417 helper.go:71] Docker daemon info: &types.Info{ID:"IITV:S6LY:XNQS:LA63:VAH6:POZR:RGCW:MFWK:OTI7:DEII:AQK5:FDC6", Containers:0, ContainersRunning:0, ContainersPaused:0, ContainersStopped:0, Images:6, Driver:"devicemapper", DriverStatus:[][2]string{[2]string{"Pool Name", "docker-202:2-25214823-pool"}, [2]string{"Pool Blocksize", "65.54 kB"}, [2]string{"Base Device Size", "107.4 GB"}, [2]string{"Backing Filesystem", ""}, [2]string{"Data file", "/dev/loop0"}, [2]string{"Metadata file", "/dev/loop1"}, [2]string{"Data Space Used", "1.091 GB"}, [2]string{"Data Space Total", "107.4 GB"}, [2]string{"Data Space Available", "18.09 GB"}, [2]string{"Metadata Space Used", "1.339 MB"}, [2]string{"Metadata Space Total", "2.147 GB"}, [2]string{"Metadata Space Available", "2.146 GB"}, [2]string{"Udev Sync Supported", "true"}, [2]string{"Deferred Removal Enabled", "false"}, [2]string{"Deferred Deletion Enabled", "false"}, [2]string{"Deferred Deleted Device Count", "0"}, [2]string{"Data loop file", "/var/lib/docker/devicemapper/devicemapper/data"}, [2]string{"Metadata loop file", "/var/lib/docker/devicemapper/devicemapper/metadata"}, [2]string{"Library Version", "1.02.140-RHEL7 (2017-05-03)"}}, SystemStatus:[][2]string(nil), Plugins:types.PluginsInfo{Volume:[]string(nil), Network:[]string(nil), Authorization:[]string(nil)}, MemoryLimit:true, SwapLimit:true, KernelMemory:false, CPUCfsPeriod:true, CPUCfsQuota:true, CPUShares:false, CPUSet:false, IPv4Forwarding:true, BridgeNfIptables:true, BridgeNfIP6tables:true, Debug:false, NFd:15, OomKillDisable:true, NGoroutines:25, SystemTime:"2017-08-03T04:30:33.681150233-04:00", ExecutionDriver:"native-0.2", LoggingDriver:"json-file", CgroupDriver:"", NEventsListener:0, KernelVersion:"3.10.0-693.el7.x86_64", OperatingSystem:"Red Hat Enterprise Linux Server 7.4 (Maipo)", OSType:"", Architecture:"", IndexServerAddress:"https://index.docker.io/v1/", RegistryConfig:(*registry.ServiceConfig)(0xc4210fb700), NCPU:2, MemTotal:3973541888, DockerRootDir:"/var/lib/docker", HTTPProxy:"", HTTPSProxy:"", NoProxy:"", Name:"ip-172-31-0-186.us-west-2.compute.internal", Labels:[]string(nil), ExperimentalBuild:false, ServerVersion:"1.9.1", ClusterStore:"", ClusterAdvertise:"", SecurityOptions:[]string(nil)}
I0803 04:30:33.681847    1417 helper.go:42] Looking for "172.30.0.0/16" in []*registry.NetIPNet{(*registry.NetIPNet)(0xc4210f1a10), (*registry.NetIPNet)(0xc4210f1a70)}
I0803 04:30:33.681859    1417 helper.go:46] Found "172.30.0.0/16"
-- Checking for available ports ... 
I0803 04:30:33.681920    1417 run.go:181] Creating container named ""
config:
  image: openshift/origin:v3.6.0
  entry point:
    /bin/bash
  command:
    -c
    cat /proc/net/tcp && ( [ -e /proc/net/tcp6 ] && cat /proc/net/tcp6 || true)

host config:
  pid mode: host
  user mode: 
  network mode: host

FAIL
   Error: Cannot get TCP port information from Kubernetes host
   Caused By:
     Error: cannot create container using image openshift/origin:v3.6.0
     Caused By:
       Error: Error response from daemon: SHM size must be greater then 0

Я поместил файл конфигурации kubernetes в .kube/config, Все еще получаю ту же ошибку. Кластер Kubernetes должен быть в той же машине?

UPDATE-1

  1. Установите последнюю версию из документации Docker

  2. Чтобы разрешить зависимость, установлен контейнер-selinux (sudo yum установите ftp://fr2.rpmfind.net/linux/centos/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm)

  3. После того, как я пытаюсь вызвать кластер с oc cluster up, На этот раз это не удалось при настройке докера.

    [root @ ip-172-31-0-186 ~] # oc cluster up Запуск OpenShift с использованием openshift/origin:v3.6.0 ... - Проверка клиента OpenShift... ОК - Проверка клиента Docker... ОК - - Проверка версии Docker... OK - Проверка на наличие контейнера OpenShift ... OK - Проверка на openshift / origin: образ v3.6.0... OK - Проверка конфигурации демона Docker... FAIL Ошибка: не обнаружено аргумент --insecure-registry в демоне Docker Решение:

    Убедитесь, что демон Docker работает со следующим аргументом: --insecure-registry 172.30.0.0/16

Документы говорят, обновите --insecure-registry 172.30.0.0/16 в /etc/sysconf/docker, Но для новой версии докера в этом месте нет файла. Любым способом я создал и обновил /etc/sysconf/docker, Но все равно получаю вышеуказанную ошибку.

2 ответа

Решение

Хорошо, проблема в небезопасной конфигурации реестра. Укажите небезопасный реестр в daemon.json в /etc/docker с нижеприведенным конфигом

{
   "insecure-registries": [
     "172.30.0.0/16"
   ]
}

Это работает последний докер также.

Для любой конкретной версии Kubernetes или OpenShift поддерживаемая версия Docker немного отстает.

Поэтому я бы посоветовал вам установить докер не самый последний из документации докера. Но установите, используя менеджер пакетов вашего дистрибутива Linux. Для Fedora и CentOS просто сделайте:

sudo yum install -y docker

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

Теперь, когда вы установили докер с помощью менеджера пакетов, вы найдете /etc/sysconfig/docker, И вы можете добавить эту строку --insecure-registry 172.30.0.0/16,

НТН.

Другие вопросы по тегам