Кубернетес - вход с Миникубе - PullRequest
0 голосов
/ 12 ноября 2018

Я изучаю kubernetes, играя с minikube.

Это мой файл развертывания модулей, который подходит.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      component: web
  template:
    metadata:
      labels:
        component: web
    spec:
      containers:
        - name: myapp
          image: myid/myimage

Я экспонирую вышеупомянутые модули с помощью NodePort.Я могу получить доступ, используя IP-адрес minikube на порту 30002.

apiVersion: v1
kind: Service
metadata:
  name: my-ip-service
spec:
  type: NodePort
  externalIPs:
  - 192.168.99.100
  selector:
    component: web
  ports:
    - port: 3000
      nodePort: 30002
      targetPort: 8080

Теперь я хотел бы использовать вход для доступа к приложению на порт 80, который перенаправит запрос ip-сервис на порт 3000. Он делаетНЕ работает

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: my-ip-service
    servicePort: 3000

Если я пытаюсь получить доступ к входу, адрес будет пустым.

NAME           HOSTS   ADDRESS   PORTS   AGE
test-ingress   *                 80      41m

Как использовать вход с миникубом?Или как связать ip миникуба со службой входа - чтобы приложение могло быть открыто снаружи без использования nodeport

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

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

Не забудьте прочитать о Ingress в целом, как только вы получите эту работу.

0 голосов
/ 12 ноября 2018

Вы можете получить IP-адрес своего узла миникуба с помощью:

minikube ip

Входной IP-адрес не будет заполняться в мини-кубе, поскольку в мини-кубе отсутствует балансировщик нагрузки. Если вам нужно что-то, что ведет себя как балансировщик нагрузки для вашего кластера мини-кубов, https://github.com/knative/serving/blob/master/docs/creating-a-kubernetes-cluster.md#loadbalancer-support-in-minikube предлагает выполнить следующие команды для исправления вашего кластера:

sudo ip route add $(cat ~/.minikube/profiles/minikube/config.json | jq -r ".KubernetesConfig.ServiceCIDR") via $(minikube ip)
kubectl run minikube-lb-patch --replicas=1 --image=elsonrodriguez/minikube-lb-patch:0.1 --namespace=kube-system
...