Redis
 sql >> база данни >  >> NoSQL >> Redis

Излагане на Redis с контролер Ingress Nginx

Redis работи на 6379, който не е HTTP порт (80,443). Така че трябва да активирате поддръжката на TCP/UDP във входния контролер на nginx. Документите на minikube тук показват как да го направите за redis.

Актуализирайте конфигурационните карти на TCP и/или UDP услуги

Взаимствайки от урока за конфигуриране на TCP и UDP услуги с входящия контролер nginx, ще трябва да редактираме конфигурационната карта, която е инсталирана по подразбиране, когато активираме миникубе добавката за вход.

Има 2 конфигурационни карти, 1 за TCP услуги и 1 за UDP услуги. По подразбиране те изглеждат така:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: udp-services
  namespace: ingress-nginx

Тъй като тези конфигурационни карти са централизирани и може да съдържат конфигурации, най-добре е само да ги поправим, вместо да ги презапишем напълно.

Нека използваме това повторно разгръщане като пример:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-deployment
  namespace: default
  labels:
    app: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - image: redis
        imagePullPolicy: Always
        name: redis
        ports:
        - containerPort: 6379
          protocol: TCP

Създайте файл redis-deployment.yaml и поставете съдържанието по-горе. След това инсталирайте разгръщането на redis със следната команда:

kubectl apply -f redis-deployment.yaml

След това трябва да създадем услуга, която може да насочва трафика към нашите модули:

apiVersion: v1
kind: Service
metadata:
  name: redis-service
  namespace: default
spec:
  selector:
    app: redis
  type: ClusterIP
  ports:
    - name: tcp-port
      port: 6379
      targetPort: 6379
      protocol: TCP

Създайте файл redis-service.yaml и поставете съдържанието по-горе. След това инсталирайте услугата redis със следната команда:

kubectl apply -f redis-service.yaml

За да добавите TCP услуга към входния контролер на nginx, можете да изпълните следната команда:

kubectl patch configmap tcp-services -n kube-system --patch '{"data":{"6379":"default/redis-service:6379"}}'

Къде:

6379 :портът, който вашата услуга трябва да слуша извън виртуалната машина minikube

default :пространството от имена, в което е инсталирана вашата услуга

redis-service :името на услугата

Можем да проверим дали ресурсът ни е закърпен със следната команда:

kubectl get configmap tcp-services -n kube-system -o yaml

Трябва да видим нещо подобно:

apiVersion: v1
data:
  "6379": default/redis-service:6379
kind: ConfigMap
metadata:
  creationTimestamp: "2019-10-01T16:19:57Z"
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
  name: tcp-services
  namespace: kube-system
  resourceVersion: "2857"
  selfLink: /api/v1/namespaces/kube-system/configmaps/tcp-services
  uid: 4f7fac22-e467-11e9-b543-080027057910

Единствената стойност, която трябва да потвърдите, е, че има стойност под свойството данни, която изглежда така:

"6379": default/redis-service:6379

Поправка на ingress-nginx-контролера

Има една последна стъпка, която трябва да се направи, за да се получи свързаност от външния клъстер. Трябва да закърпим нашия nginx контролер, така че той да слуша на порт 6379 и да може да насочва трафика към вашата услуга. За да направим това, трябва да създадем файл с корекция.

spec:
  template:
    spec:
      containers:
      - name: ingress-nginx-controller
        ports:
         - containerPort: 6379
           hostPort: 6379

Създайте файл, наречен ingress-nginx-controller-patch.yaml и поставете съдържанието по-горе.

След това приложете промените със следната команда:

kubectl patch deployment ingress-nginx-controller --patch "$(cat ingress-nginx-controller-patch.yaml)" -n kube-system



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. HSET, ако съществува ключ

  2. Въведение в Redis Cluster Sharding – предимства, ограничения, внедряване и клиентски връзки

  3. Писане на заявка за добавяне на множество стойности към ключ в REDIS хешове?

  4. Грешка:Не можа да се свърже с Redis при redis:6379:Името или услугата не са известни

  5. Хиредис чака съобщение