Как назначить IP-адрес кластеру Kubernetes? - PullRequest
0 голосов
/ 14 апреля 2020

Я установил кластер K8S через Rancher, и он работает. Для тестирования я развернул helloworld nginx pod:

enter image description here

Чтобы позвонить в службу, мне нужно позвонить по IP-адресу NodePort, например:

http://111.111.111.111:30359/

Но я бы хотел назвать его по имени, например:

https://helloworld.co.example.org

Установлен входной контроллер Nginx:

NAMESPACE       NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
default         kubernetes             ClusterIP   10.43.0.1       <none>        443/TCP                  162m
dev             helloworld             ClusterIP   10.43.187.230   <none>        80/TCP                   17m
dev             helloworld-nodeport    NodePort    10.43.9.147     <none>        80:30359/TCP             17m
ingress-nginx   default-http-backend   ClusterIP   10.43.86.105    <none>        80/TCP                   161m
kube-system     kube-dns               ClusterIP   10.43.0.10      <none>        53/UDP,53/TCP,9153/TCP   161m
kube-system     metrics-server         ClusterIP   10.43.220.198   <none>        443/TCP                  161m

Но у него нет EXTERNAL-IP. Вопрос в том, как его получить.

1 Ответ

2 голосов
/ 14 апреля 2020
Служба типа

A ClusterIP никогда не создаст ВНЕШНИЙ IP-адрес, поскольку это IP-адрес кластера. Следуйте этому руководству о том, как использовать nginx вход на цифровой океан для показа приложения hello world через имя хоста.

Следуя инструкциям после установки входного контроллера nginx, это будет Предоставляется LoadBalancer, предоставленным Digital Ocean.

Как вы можете видеть в руководстве, вы будете использовать свой домен в правилах входа. Вам необходимо убедиться, что ваш домен направлен на балансировщик нагрузки через записи A , Это делается через вашего провайдера DNS.

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: hello-kubernetes-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: helloworld.co.example.org
    http:
      paths:
      - backend:
          serviceName: hello-kubernetes
          servicePort: 80
...