1
resposta

Minikube no virtualbox

Professor estou com uma duvida. Eu subi o minikube por uma máquina virtual através do vagrant. No vagrant coloquei a seguinte configuração:

Vagrant.configure("2") do |config|
    config.vm.box = "ubuntu/bionic64"
    config.vm.provider "virtualbox" do |vb|
        vb.memory = 2048
        vb.cpus = 2
        vb.gui = true
    end 
    config.vm.define "KuberCluster" do |dk1|
        dk1.vm.provider "virtualbox" do |vb| 
            vb.name= "KuberCluster"
            vb.memory = 2048
            vb.cpus = 2 
        end
        dk1.vm.network "private_network", ip: "192.168.1.21"
        dk1.vm.network "public_network"
        dk1.vm.network "forwarded_port", guest: 80, host: 8080, protocol: "tcp"
        dk1.vm.provision "shell", inline: "apt-get update"
        dk1.vm.provision "shell", inline: "apt-get install -y docker.io"
        dk1.vm.provision "shell", inline: "usermod -aG docker vagrant"
        dk1.vm.hostname = "KuberCluster"
    end
end

a partir daí subi o kubernetes dentro dele e esta nesta configuração:

vagrant@KuberCluster:/vagrant$ kubectl get pods -o wide
NAME              READY   STATUS    RESTARTS   AGE     IP           NODE       NOMINATED NODE   READINESS GATES
pod-1             1/1     Running   0          22m     172.18.0.4   minikube   <none>           <none>
pod-2             1/1     Running   0          2m40s   172.18.0.5   minikube   <none>           <none>
portal-noticias   1/1     Running   0          61m     172.18.0.3   minikube   <none>           <none>
vagrant@KuberCluster:/vagrant$
vagrant@KuberCluster:/vagrant$ kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        5d3h
svc-pod-1    NodePort    10.107.240.189   <none>        80:31833/TCP   64s
svc-pod-2    ClusterIP   10.103.104.216   <none>        9000/TCP       31m
vagrant@KuberCluster:/vagrant$

como faço para acessar a página deste nginx de dentro da maquina virtual no virtualbox feito pelo vagrant?

não sei se ficou claro.

abaixo as configurações do yaml

---- pod1 
apiVersion: v1
kind: Pod
metadata:
  name: pod-1
  labels:
    app: primeiro-pod
spec:
  containers:
    - name: container-pod-1
      image: nginx:latest
      ports: 
        - containerPort: 80 


--- pod2 
apiVersion: v1
kind: Pod
metadata:
  name: pod-2
  labels:
    app: segundo-pod
spec:
  containers:
    - name: container-pod-2
      image: nginx:latest
      ports: 
        - containerPort: 80

-- svc-pod-1 
apiVersion: v1
kind: Service
metadata:
  name: svc-pod-1
spec:
  type: NodePort
  ports:
    - port: 80
      #targetPort: 80
  selector:
    app: primeiro-pod

--- svc-pod-2 
apiVersion: v1
kind: Service
metadata:
  name: svc-pod-2
  label:
spec:
  type: ClusterIP
  selector:
    app: segundo-pod
  ports:
    - port: 9000
      targetPort: 80

1 resposta

Fala Willian, como você usou o Linux você precisa de dentro do Linux primeiro executar o comando

kubectl get nodes -o wide

Com isso você vai ter a informação do IP que você pode utilizar no campo INTERNAL_IP.

Depois você pega a porta que você mapeou pro seu serviço, pelo que vi é a 31833 que você postou ai ( ela é exibida no comando "kubectl get svc")

Com isso você roda o comando

curl <ip_do_seu_nó>:<porta_do_servico>

exemplo

curl 192.168.0.2:31833

Caso ele retorne um código com as tags html é sinal de que deu certo.

Como você não tem interface gráfica nessa máquina você não consegue abrir no navegador mas o comando "curl" faz exatamente o mesmo processo que digitar o endereço na barra do navegador e apertar um Enter.