Назад | Перейти на главную страницу

K8S Redis подключение

Я установил Bitnami Helm Chart для HA Redis: https://bitnami.com/stack/redis/helm

aleg@Azure:~$ kubectl get pods | grep redis
redis-1580896952-master-0                              1/1     Running   0         67m
redis-1580896952-slave-0                               1/1     Running   0          67m
redis-1580896952-slave-1                               1/1     Running   0          65m

aleg@Azure:~$ kubectl get svc | grep redis
redis-1580896952-headless             ClusterIP      None           <none>          6379/TCP                     67m
redis-1580896952-master               ClusterIP      10.0.244.169   <none>          6379/TCP                     67m
redis-1580896952-slave                ClusterIP      10.0.250.136   <none>          6379/TCP                     67m

Как мне к нему подключиться? Обслуживать или осваивать капсулу или что-то еще? Пожалуйста посоветуй.

Это хорошо объясняется Пример: развертывание приложения гостевой книги PHP с помощью Redis.

Объясняется весь процесс настройки, а затем Настройте и откройте интерфейс гостевой книги описывает, как открыть веб-интерфейс, обслуживающий HTTP-запросы. Он настроен для подключения к redis-master сервис для запросов на запись и в redis-slave сервис для запросов на чтение.

пример deployment выглядит так:

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: frontend
  labels:
    app: guestbook
spec:
  selector:
    matchLabels:
      app: guestbook
      tier: frontend
  replicas: 3
  template:
    metadata:
      labels:
        app: guestbook
        tier: frontend
    spec:
      containers:
      - name: php-redis
        image: gcr.io/google-samples/gb-frontend:v4
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        env:
        - name: GET_HOSTS_FROM
          value: dns
          # Using `GET_HOSTS_FROM=dns` requires your cluster to
          # provide a dns service. As of Kubernetes 1.3, DNS is a built-in
          # service launched automatically. However, if the cluster you are using
          # does not have a built-in DNS service, you can instead
          # access an environment variable to find the master
          # service's host. To do so, comment out the 'value: dns' line above, and
          # uncomment the line below:
          # value: env
        ports:
        - containerPort: 80

При такой настройке вам просто нужно создать интерфейсную службу:

apiVersion: v1
kind: Service
metadata:
  name: frontend
  labels:
    app: guestbook
    tier: frontend
spec:
  # comment or delete the following line if you want to use a LoadBalancer
  type: NodePort 
  # if your cluster supports it, uncomment the following to automatically create
  # an external load-balanced IP for the frontend service.
  # type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: guestbook
    tier: frontend

Я рекомендую прочитать документацию по Redis.