2016-07-13 8 views
0

Я создал сервис на некоторых стручках в Кубернете. Я могу скручивать порт service-ip: и я вижу некоторый HTML. Я хочу получить доступ к сервису в своем браузере на своем ПК. Что мне нужно изменить в моем Vagrantfile для отображения моего внутреннего бранного IP-адреса на моем локальном хосте (ПК)? Это часть моего vagrantfile (я думаю, что та часть, где я должен внести изменения)Доступ к сервису Kubernetes (в Vagrant) на localhost

# Finally, fall back to VirtualBox 
    config.vm.provider :virtualbox do |v, override| 
     setvmboxandurl(override, :virtualbox) 
     v.memory = vm_mem # v.customize ["modifyvm", :id, "--memory", vm_mem] 
     v.cpus = $vm_cpus # v.customize ["modifyvm", :id, "--cpus", $vm_cpus] 

     # Use faster paravirtualized networking 
     v.customize ["modifyvm", :id, "--nictype1", "virtio"] 
     v.customize ["modifyvm", :id, "--nictype2", "virtio"] 
    end 
    end 

    # Kubernetes master 
    config.vm.define "master" do |c| 
    customize_vm c, $vm_master_mem 
    if ENV['KUBE_TEMP'] then 
     script = "#{ENV['KUBE_TEMP']}/master-start.sh" 
     c.vm.provision "shell", run: "always", path: script 
    end 
    c.vm.network "private_network", ip: "#{$master_ip}" 
    end 

    # Kubernetes node 
    $num_node.times do |n| 
    node_vm_name = "node-#{n+1}" 
    node_prefix = ENV['INSTANCE_PREFIX'] || 'kubernetes' # must mirror default in cluster/vagrant/config-default.sh 
    node_hostname = "#{node_prefix}-#{node_vm_name}" 

    config.vm.define node_vm_name do |node| 
     customize_vm node, $vm_node_mem 

     node_ip = $node_ips[n] 
     if ENV['KUBE_TEMP'] then 
     script = "#{ENV['KUBE_TEMP']}/node-start-#{n}.sh" 
     node.vm.provision "shell", run: "always", path: script 
     end 
     node.vm.network "private_network", ip: "#{node_ip}" 
    end 
    end 

Я попытался изменить node.vm.network "private_network", ip: "#{node_ip}" в node.vm.network "private_network", ip: "192.xx.xx.xx", но я не могу перезагрузить мой бродяга:

/opt/vagrant/embedded/lib/ruby/2.2.0/ipaddr.rb:559:in `in6_addr': invalid address (IPAddr::InvalidAddressError) 
+0

вы можете добавить 'p node_ip' после' node_ip = $ node_ips [n] 'для проверки значения - не может угадать, что такое значение от' node_ips', но оно жалуется на его недействительный IP-адрес, проверьте значение –

+0

$ node_ips = $ num_node.times.collect {| n | $ node_ip_base + "# {n + 3}"} находится в файле. Но я просто попытался изменить «# node_ip» на «192 ...» (hardcoded). И он жалуется? здесь https://www.vagrantup.com/docs/networking/private_network.html они, похоже, делают то же самое? – DenCowboy

+0

а ошибка возникает, когда у вас действительно есть ошибка в вашем IP-адресе. что-то вроде '192.168.32.310' (вне диапазона) или' 192.168.01.12'; вы можете использовать '192.168.33.10' в качестве примера действительного IP-адреса и проверить, не работает ли он –

ответ

0

Ваш сервис должен иметь тип NodePort, который должен быть достигнут на IP-адресе виртуальной виртуальной машины. Например, если ваши модули запускаются контроллером репликации. Создание услуг с:

kubectl expose rc foobar --type=NodePort --port=80

Это возвращает случайный порт. Откройте ваш браузер на виртуальной машине Vagrant node на этом порту, и вы достигнете своей службы.

+0

На данный момент я делаю это: --port = 80 --target-port = 8080 Таким образом, порт 8080 моего контейнера (контейнера) на 80 моей службы. Поэтому мне также нужно определить NodePort, который отобразит это на случайный порт на IP моей бродящей VM? – DenCowboy

 Смежные вопросы

  • Нет связанных вопросов^_^