我在Kubernetes的一些pod上创建了一个服务。我能够卷曲service-ip:port,我看到一些HTML。 我想在自己的PC上访问我的浏览器中的服务。 我需要在我的Vagrantfile中编辑什么来在我的localhost(PC)上映射我的流浪内部IP? 这是我的vagrant文件的一部分(我认为我必须编辑的部分)
# 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 :(得分:0)
您的服务需要是类型为NodePort,才能在vagrant VM的IP上访问。例如,如果您的pod由复制控制器启动。使用以下命令创建服务:
kubectl expose rc foobar --type=NodePort --port=80
这将返回一个随机端口。在该端口上的Vagrant节点VM上打开浏览器,您将获得服务。