Запуск OpenShift OKD 3.10 с Vagrant и Ansible - соединение отказано - PullRequest
0 голосов
/ 23 декабря 2018

Я уже несколько дней пытаюсь запустить Openshift на одной виртуальной машине, настроенной Vagrant и использующей ansible для установки.Я прошел через множество проблем с github openshift-ansible, но в конце концов мне все же не повезло.Это как далеко я получил.Итак, я начал с моего Vagrantfile и использовал CentosOS / 7 в качестве коробки.Поскольку они явно переключили файловую систему с xfs, это первая ошибка, которую я получил, поскольку докер не хотел работать.Поэтому я посмотрел список изменений VM-Box Centos и опустил его до V1804.02.Итак, это Vagrantfile, который у меня сейчас есть

Vagrantfile

$lab_openshift = <<SCRIPT
yum -y update
yum install -y epel-release git docker httpd-tools java-1.8.0-openjdk-headless
yum install -y ansible python-passlib
systemctl start docker
systemctl enable docker
git clone -b release-3.10 https://github.com/openshift/openshift-ansible /root/openshift-ansible
ssh-keygen -f /root/.ssh/id_rsa -N ''
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
ssh-keyscan 172.24.0.11 >> .ssh/known_hosts
cp .ssh/known_hosts /root/.ssh/known_hosts
ssh-copy-id -f -i /root/.ssh/id_rsa root@172.24.0.11
cp /home/vagrant/etc.ansible.hosts /etc/ansible/hosts
cp /home/vagrant/etc.selinux.config /etc/selinux/config

reboot
SCRIPT

Vagrant.configure(2) do |config|
 config.vm.define "openshift" do |conf|
    # conf.vm.box = "peru/my_centos-7-x86_64"
    # conf.vm.box_version = "20181211.01"
    conf.vm.box = "centos/7"
    config.vm.box_version = "1804.02"
    conf.vm.hostname = 'openshift.example.com'
    conf.vm.network "private_network", ip: "172.24.0.11"
    conf.vm.provision "file", source: "./etc.ansible.hosts", destination: "~/etc.ansible.hosts"
    conf.vm.provision "file", source: "./etc.selinux.config", destination: "~/etc.selinux.config"
    conf.vm.provider "virtualbox" do |v|
        v.memory = 6144
        v.cpus = 2
    end
    conf.vm.provision "shell", inline: $lab_openshift
 end
end

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

SELinux Conf

SELINUX=permissive

Теперь я начал с ansible hosts.localhost из инвентаря.Первая ошибка, которую я получил, была при проверке docker_image_availability.На GitHub ppl сказал, что вы должны просто отключить его.Так что это было первое изменение.Но вы все равно столкнетесь с некоторыми проблемами при установке (сообщения об ошибках не отображались).Таким образом, следующим изменением было изменение osm_etcd_image на osm_etcd_image = registry.access.redhat.com / rhel7 / etcd в соответствии с некоторыми проблемами с github, из-за которых у меня остался текущий доступный файл hosts

Hosts

#bare minimum hostfile

[OSEv3:children]
masters
nodes
etcd

[OSEv3:vars]

osm_etcd_image=registry.access.redhat.com/rhel7/etcd
openshift_deployment_type=origin
openshift_release=v3.10
openshift_portal_net=172.30.0.0/16
openshift_disable_check=disk_availability,memory_availability,docker_image_availability

openshift_node_groups=[{'name': 'node-config-all-in-one', 'labels': ['node-role.kubernetes.io/master=true', 'node-role.kubernetes.io/infra=true', 'node-role.kubernetes.io/compute=true']}]


[masters]
172.24.0.11 ansible_connection=local

[etcd]
172.24.0.11 ansible_connection=local

[nodes]
# openshift_node_group_name should refer to a dictionary with matching key of name in list openshift_node_groups.
172.24.0.11 ansible_connection=local openshift_node_group_name="node-config-all-in-one"

К сожалению, я по-прежнему не могу запустить кластер, поскольку он не может повторять попытки снова и снова

/ bin / oc get pod master-etcd-openshift.example.com -o json -n kube-system "

, который, кажется, отказывается от соединения и оставляет мне это сообщение об ошибке

Соединение с сервером openshift.example.com: 8443 было отказано - вы указали правильный хост или порт? \ n "

Теперь я только что нашел несколько оставшихся без ответа проблем с github по этой ошибке и, наконец, застрял.Может быть, у кого-то есть идея, что я делаю неправильно.

[править]

о, любые мои etc / hosts расширены на 172.24.0.11 openshift.example.com и пинг 172.24.0.11 и openshift.example.com успешно

Еще одна вещьСтоит отметить, что список контроллеров Docker -a также скажет мне, что один контейнер продолжает перезапускать, но не может это сделать

ab4651c81600 96f98d080ffd "/ bin / bash -c '#! / ...«Около минуты назад Exited (255) 35 секунд назадЯ не могу понять, что не так с моей конфигурацией

[/ edit]

[edit2]

The log of the k8s_api_master container is also not really helping me out

I1224 11:46:42.874204       1 plugins.go:84] Registered admission plugin "NamespaceLifecycle"
I1224 11:46:42.874390       1 plugins.go:84] Registered admission plugin "Initializers"
I1224 11:46:42.874400       1 plugins.go:84] Registered admission plugin "ValidatingAdmissionWebhook"
I1224 11:46:42.874408       1 plugins.go:84] Registered admission plugin "MutatingAdmissionWebhook"
I1224 11:46:42.874420       1 plugins.go:84] Registered admission plugin "AlwaysAdmit"
I1224 11:46:42.874425       1 plugins.go:84] Registered admission plugin "AlwaysPullImages"
I1224 11:46:42.874432       1 plugins.go:84] Registered admission plugin "LimitPodHardAntiAffinityTopology"
I1224 11:46:42.874440       1 plugins.go:84] Registered admission plugin "DefaultTolerationSeconds"
I1224 11:46:42.874446       1 plugins.go:84] Registered admission plugin "AlwaysDeny"
I1224 11:46:42.874458       1 plugins.go:84] Registered admission plugin "EventRateLimit"
I1224 11:46:42.874465       1 plugins.go:84] Registered admission plugin "DenyEscalatingExec"
I1224 11:46:42.874470       1 plugins.go:84] Registered admission plugin "DenyExecOnPrivileged"
I1224 11:46:42.874477       1 plugins.go:84] Registered admission plugin "ExtendedResourceToleration"
I1224 11:46:42.874483       1 plugins.go:84] Registered admission plugin "OwnerReferencesPermissionEnforcement"
I1224 11:46:42.874495       1 plugins.go:84] Registered admission plugin "ImagePolicyWebhook"
I1224 11:46:42.874503       1 plugins.go:84] Registered admission plugin "InitialResources"
I1224 11:46:42.874509       1 plugins.go:84] Registered admission plugin "LimitRanger"
I1224 11:46:42.874517       1 plugins.go:84] Registered admission plugin "NamespaceAutoProvision"
I1224 11:46:42.874524       1 plugins.go:84] Registered admission plugin "NamespaceExists"
I1224 11:46:42.874530       1 plugins.go:84] Registered admission plugin "NodeRestriction"
I1224 11:46:42.874538       1 plugins.go:84] Registered admission plugin "PersistentVolumeLabel"
I1224 11:46:42.874544       1 plugins.go:84] Registered admission plugin "PodNodeSelector"
I1224 11:46:42.874552       1 plugins.go:84] Registered admission plugin "PodPreset"
I1224 11:46:42.874559       1 plugins.go:84] Registered admission plugin "PodTolerationRestriction"
I1224 11:46:42.874566       1 plugins.go:84] Registered admission plugin "ResourceQuota"
I1224 11:46:42.874573       1 plugins.go:84] Registered admission plugin "PodSecurityPolicy"
I1224 11:46:42.874579       1 plugins.go:84] Registered admission plugin "Priority"
I1224 11:46:42.874590       1 plugins.go:84] Registered admission plugin "SecurityContextDeny"
I1224 11:46:42.874598       1 plugins.go:84] Registered admission plugin "ServiceAccount"
I1224 11:46:42.874604       1 plugins.go:84] Registered admission plugin "DefaultStorageClass"
I1224 11:46:42.874611       1 plugins.go:84] Registered admission plugin "PersistentVolumeClaimResize"
I1224 11:46:42.874619       1 plugins.go:84] Registered admission plugin "StorageObjectInUseProtection"
F1224 11:47:12.886869       1 start_api.go:68] dial tcp 127.0.0.1:2379: connect: connection refused

[/ edit2]

1 Ответ

0 голосов
/ 27 декабря 2018

Хорошо, потребовалось много работы, но я, наконец, выяснил, в чем проблема.В основном ваши localhosts должны указывать на ip, который вы определили в своем vagrantfile.иначе это не будет работать.Это контролируется в etc / hosts.Я также использую ястребиные метрики.Если вы не хотите, вам также не нужно устанавливать java-18.0-openjdk-headless

Vagrantfile

$lab_openshift = <<SCRIPT
yum -y update

yum install -y epel-release
echo "==================Installing PYTHON=================="
yum install -y python-pip python-devel python python-passlib

echo "==================Installing GIT=================="
yum install -y git

echo "==================Installing ANSIBLE=================="
yum install -y ansible

echo "==================Installing java-1.8.0-openjdk-headless================="
yum install -y java-1.8.0-openjdk-headless

cp /home/vagrant/etc.ansible.hosts /etc/ansible/hosts
cp /home/vagrant/etc.selinux.config /etc/selinux/config
cp /home/vagrant/etc.hosts /etc/hosts

git clone -b release-3.10 https://github.com/openshift/openshift-ansible /root/openshift-ansible


reboot
SCRIPT


Vagrant.configure(2) do |config|
 config.vm.define "openshift" do |conf|
    conf.vm.box = "centos/7"
    config.vm.box_version = "1804.02"
    conf.vm.hostname = 'openshift.example.com'
    conf.vm.network "private_network", ip: "172.24.0.11"
    conf.vm.provision "file", source: "./etc.ansible.hosts", destination: "~/etc.ansible.hosts"
    conf.vm.provision "file", source: "./etc.selinux.config", destination: "~/etc.selinux.config"
    conf.vm.provision "file", source: "./etc.hosts", destination: "~/etc.hosts"
    conf.vm.provider "virtualbox" do |v|
        v.memory = 6144
        v.cpus = 2
    end
    conf.vm.provision "shell", inline: $lab_openshift
 end
end

SELinux Config (etc.selinux.config)

SELINUX=permissive

etc / ansible / hosts (etc.ansible.hosts)

[OSEv3:children]
masters
nodes
etcd

[OSEv3:vars]

openshift_ip=172.24.0.11

openshift_deployment_type=origin
openshift_disable_check=memory_availability,disk_availability

ansible_service_broker_install=false
openshift_master_cluster_hostname=172.24.0.11
openshift_master_cluster_public_hostname=openshift.example.com
openshift_hostname=172.24.0.11
openshift_public_hostname=openshift.example.com
openshift_metrics_install_metrics=true
openshift_metrics_image_version=v3.10
openshift_master_default_subdomain=openshift.example.com

openshift_disable_check=disk_availability,memory_availability,docker_image_availability

    openshift_node_groups=[{'name': 'node-config-all-in-one', 'labels': ['node-role.kubernetes.io/master=true', 'node-role.kubernetes.io/infra=true', 'node-role.kubernetes.io/compute=true']}]


[masters]
172.24.0.11 ansible_connection=local

[etcd]
172.24.0.11 ansible_connection=local

[nodes]
172.24.0.11 ansible_connection=local openshift_node_group_name="node-config-all-in-one"

/ etc/ hosts (etc.hosts)

172.24.0.11    localhost   openshift.example.com   openshift
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
...