Доступ к безголовым безголовым кубернетам извне? - PullRequest
0 голосов
/ 24 сентября 2018

Я создал кластер Cassandra с отслеживанием состояния / без головы на AWS, и он отлично работает внутри кластера.Единственная проблема в том, что я не могу получить к нему доступ из внешнего кластера.Я пробовал большинство вещей в документации Kubernetes или ссылках на StackOverflow, но все еще не смог ее решить.

У меня есть рабочая группа безопасности из AWS.Вот мой сервис и файлы yaml с сохранением состояния.

apiVersion: v1
kind: Service
metadata:
  name: cassandra
spec:
  externalTrafficPolicy: Local
  ports:
  - nodePort: 30000
    port: 30000
    protocol: TCP
    targetPort: 9042
  selector:
    app: cassandra
  type: NodePort
apiVersion: "apps/v1"
kind: StatefulSet
metadata:
  name: cassandra
spec:
  serviceName: cassandra
  replicas: 2
  selector:
    matchLabels:
      app: cassandra
  template:
    metadata:
      labels:
        role: cassandra
        app: cassandra
    spec:
      terminationGracePeriodSeconds: 10
      containers:
        - env:
            - name: MAX_HEAP_SIZE
              value: 1024M
            - name: HEAP_NEWSIZE
              value: 1024M
            - name: CASSANDRA_SEEDS
              value: "cassandra-0.cassandra.default.svc.cluster.local"
            - name: CASSANDRA_CLUSTER_NAME
              value: "SetuCassandra"
            - name: CASSANDRA_DC
              value: "DC1-SetuCassandra"
            - name: CASSANDRA_RACK
              value: "Rack1-SetuCassandra"
            - name: CASSANDRA_SEED_PROVIDER
              value: io.k8s.cassandra.KubernetesSeedProvider
            - name: POD_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
          image: library/cassandra:3.11
          name: cassandra
          volumeMounts:
            - mountPath: /cassandra-storage
              name: cassandra-storage
          ports:
            - containerPort: 9042
              name: cql
  volumeClaimTemplates:
  - metadata:
      name: cassandra-storage
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 320Gi

Я ценю любую помощь в этом.

Ответы [ 2 ]

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

Безголовая служба, созданная для набора с сохранением состояния, не предназначена для доступа пользователей службы.Его основное намерение, насколько я понимаю, было для внутрисистемной связи между стручками данного STS (чтобы сформировать кластер между собой).Например, если у вас есть 3-х узловый кластер mongodb (как STS), mongodb-0 захочет обмениваться информацией / данными кластеризации с mongodb-1 и mongodb-2.

Если вы хотите получить доступ к этой услуге какпользователь, вы не заинтересованы (или не заботитесь о) mongodb-0/1/2, а скорее как услуга.Типичный подход заключается в создании службы с заголовком (возможно, с портом узлов, если требуется) и доступе к ней.

По сути, создайте две службы, одна из которых будет безголовой службой (и использовать ее с STS), а другая -регулярное обслуживание.Селекторы pod могут быть одинаковыми для обеих служб.

0 голосов
/ 24 сентября 2018

Недостаточно информации о группах безопасности AWS.Но я предполагаю, что ваши группы безопасности в вашем кластере не разрешают трафик от групп безопасности или IP-адресов из другого кластера.Примерно так:

enter image description here

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