Как установить внешний IP для контроллера nginx-ingress в кластере kubernetes частного облака - PullRequest
0 голосов
/ 07 мая 2019

Я настраиваю кластер kubernetes для запуска приложений фабрики hyperledger. Мой кластер находится в частном облаке, поэтому у меня нет балансировщика нагрузки. Как мне установить IP-адрес для моего nginx-ingress-controller (в ожидании) для предоставления моих услуг? Я думаю, что это мешает моему созданию стручков, потому что когда я запускаю kubectl get pods, я вижу очень много выселенных стручков. Я использую certmanager, который, я думаю, также нуждается в IP-адресах.

CA_POD=$(kubectl get pods -n cas -l "app=hlf-ca,release=ca" -o jsonpath="{.items[0].metadata.name}")

Это не создает никаких стручков.

nginx-ingress-controller-5bb5cd56fb-lckmm      1/1     Running

nginx-ingress-default-backend-dc47d79c-8kqbp   1/1     Running 

Остальные принимают форму

nginx-ingress-controller-5bb5cd56fb-d48sj      0/1     Evicted 

ca-hlf-ca-5c5854bd66-nkcst  0/1    Pending  0         0s
ca-postgresql-0             0/1    Pending  0         0s

Я хотел бы создать модули, из которых я могу запускать команды exec, такие как

kubectl exec -n cas $CA_POD -- cat /var/hyperledger/fabric-ca/msp/signcertscert.pem

1 Ответ

0 голосов
/ 07 мая 2019

Вы предоставляете не IP-адрес контроллера nginx, а службу nginx через порт узла. Например:

piVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-controller
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30080
      name: http
  selector:
    app: nginx

В этом случае вы сможете получить доступ к вашему сервису, как

curl -v <NODE_EXTERNAL_IP>:30080

На вопрос, почему ваши стручки находятся в состоянии ожидания, пожалуйста, опишите неправильно работающие стручки:

kubectl describe pod nginx-ingress-controller-5bb5cd56fb-d48sj

Лучше всего использовать шлем

helm install stable/nginx-ingress
...