sql >> Databáze >  >> NoSQL >> Redis

Odhalení Redis pomocí Ingress Nginx Controller

Redis funguje na 6379, což není port HTTP (80 443). Musíte tedy povolit podporu TCP/UDP v řadiči vstupu nginx. Dokumenty minikube zde ukazují, jak to udělat pro redis.

Aktualizujte konfigurační mapy služeb TCP a/nebo UDP

Když jsme si vypůjčili z tutoriálu o konfiguraci služeb TCP a UDP pomocí řadiče ingress nginx, budeme muset upravit konfigurační mapu, která se instaluje ve výchozím nastavení při povolení doplňku minikube ingress.

Existují 2 konfigurační mapy, 1 pro služby TCP a 1 pro služby UDP. Ve výchozím nastavení vypadají takto:

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

Vzhledem k tomu, že tyto konfigurační mapy jsou centralizované a mohou obsahovat konfigurace, je nejlepší, když je pouze opravíme, než abychom je úplně přepsali.

Použijme toto nasazení redis jako příklad:

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

Vytvořte soubor redis-deployment.yaml a vložte obsah výše. Poté nainstalujte nasazení redis pomocí následujícího příkazu:

kubectl apply -f redis-deployment.yaml

Dále musíme vytvořit službu, která dokáže směrovat provoz do našich modulů:

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

Vytvořte soubor redis-service.yaml a vložte obsah výše. Poté nainstalujte službu redis pomocí následujícího příkazu:

kubectl apply -f redis-service.yaml

Chcete-li přidat službu TCP do řadiče vstupu nginx, můžete spustit následující příkaz:

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

Kde:

6379 :port, na kterém by vaše služba měla naslouchat mimo virtuální počítač minikube

default :jmenný prostor, ve kterém je vaše služba nainstalována

redis-service :název služby

Můžeme ověřit, že náš prostředek byl opraven pomocí následujícího příkazu:

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

Měli bychom vidět něco takového:

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

Jediná hodnota, kterou potřebujete ověřit, je, že pod vlastností data je hodnota, která vypadá takto:

"6379": default/redis-service:6379

Opravte ovladač ingress-nginx-controller

Aby bylo možné získat konektivitu z vnějšího klastru, je třeba provést jeden poslední krok. Potřebujeme opravit náš řadič nginx, aby naslouchal na portu 6379 a mohl směrovat provoz do vaší služby. K tomu potřebujeme vytvořit záplatový soubor.

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

Vytvořte soubor s názvem ingress-nginx-controller-patch.yaml a vložte obsah výše.

Poté použijte změny pomocí následujícího příkazu:

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



  1. Automatické doplňování s java, Redis, Elastic Search, Mongo

  2. Mongoose - způsobeno ::11000 E11000 index chyby duplicitního klíče?

  3. Mongoose:Je vyžadována cesta chyby ověření

  4. MongoDB:find and findOne s filtrováním vnořených polí