Как можно использовать статический Ip в качестве внешнего IP в kubernates? - PullRequest
0 голосов
/ 20 июня 2019

Я хочу установить external-Ip как статический.Мне удается сделать ClusterIP статическим, но я не могу найти какое-либо решение для external_IP.

Я использую ниже развертывание yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: null
  generation: 1
  labels:
    run: x-master
  name: x-deployment-master
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      run: x-master
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: x-master
    spec:
      containers:
      - image: gitlab:4567/ecoservers/x-docker:x
        imagePullPolicy: IfNotPresent
        name: x-master
        volumeMounts:
        - name: task-pv-storage
          mountPath: /opt/y/x/home/configutil
        ports:
        - containerPort: 8009
          protocol: TCP
        - containerPort: 8443
          protocol: TCP
        - containerPort: 8445
          protocol: TCP
        - containerPort: 9000
          protocol: TCP
        - containerPort: 7600
          protocol: UDP
        - containerPort: 12001
          protocol: TCP
      volumes:
      - name: task-pv-storage
        hostPath:
          path: /root/configs/configutil_master
          type: Directory
      hostAliases:
      - ip: 10.233.0.13
        hostnames:
        - gessmsatf1
      - ip: 10.233.0.13
        hostnames:
        - gessmsatf2
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status: {}
---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    run: x-master
  name: x-service-master
  selfLink: /api/v1/namespaces/default/services/x-service-master
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: "gui-port"
    protocol: TCP
    port: 8443
    targetPort: 8443
  - name: "service-port"
    protocol: TCP
    port: 8445
    targetPort: 8445
  - name: "cu-port"
    protocol: TCP
    port: 9000
    targetPort: 9000
  - name: "ajp-port"
    protocol: TCP
    port: 8009
    targetPort: 8009
  - name: "cluster-7600"
    protocol: TCP
    port: 7600
    targetPort: 7600
  - name: "cluster-12001"
    protocol: TCP
    port: 12001
    targetPort: 12001
clusterIP: 10.233.0.13
  loadBalancerIP: 10.233.0.13
  selector:
    run: x-master
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 10.233.0.13

фактический результат, подобный этому:

ИМЯ ТИП КЛАСТЕР-IP ВНЕШНИЙ IP-ПОРТ (S) ВОЗРАСТ

x-service-master  LoadBalancer  10.233.0.13   <pending>    8443:30013/TCP   175m

ожидаемый результат должен быть: ИМЯ КЛАСТЕР-IP ВНЕШНИЙ-IP-ПОРТ (S) ВОЗРАСТ

helloweb           10.31.254.176   203.0.113.32     80:30690/TCP     54s

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Kubernetes не предоставляют какой-либо IP-адрес в качестве статического или внешнего IP-адреса. Если вы используете AWS, GCP в качестве службы, вы можете создать тип службы LoadBalancer, поэтому он предоставит вам один внешний IP-адрес, который можно использовать в качестве внешнего IP-адреса.

Вы также можете выполнить поиск входа в kubernetes.it, это также поможет в будущем настроить сертификат SSL для вашего приложения и нескольких веб-сайтов в одном кластере kubernetes.

https://kubernetes.io/docs/concepts/services-networking/ingress/
0 голосов
/ 20 июня 2019

Сам Kubernetes не обеспечивает балансировку нагрузки

Балансировка нагрузки на Kubernetes

Когда вы указали определение сервиса, вы задали тип loadbalancer, который фактически предоставляетсяфункция облачного провайдера (которая в большинстве случаев обрабатывается провайдером VPS. AWS использует эластичные балансировщики нагрузки, Azure использует их балансировщики нагрузки TCP и т. д.).В этих сценариях вы также редко указали бы IP-адрес

. Если вы перевели свои собственные Kubernetes на облачного провайдера, который уже предлагал услугу, вам лучше просто воспользоваться этой услугой.Если вы находитесь в частном центре обработки данных, вам нужно будет развернуть MetallB, а затем и Nat службы.

Устраняет ли ваша проблема использование NodePort в качестве типа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...