Puncte:1

Actualizarea diagramei ingress-nginx helm pentru kubernetes 1.23.5

drapel be

Am o mulțime de probleme care par să decurgă din actualizarea clusterului meu kubernetes la cea mai recentă versiune (1.23.5). Am avut inițial câteva probleme cu clusterul în sine și cu nodurile, dar asta pare a fi rezolvat și clusterul pare să fie sănătos, cel puțin se spune că atunci când rulez kops valida clusterul. Problema cu care mă confrunt acum este că podurile mele de intrare-nginx nu rulează, ceea ce înseamnă că echilibrerul meu de încărcare nu are la ce să indice și, prin urmare, nu pot ajunge la aplicația mea, chiar dacă podurile de aplicație rulează fără probleme. Am folosit helm pentru a crea resursele ingress-nginx și voi lipi fișierele pe care încerc să le folosesc mai jos pentru a face upgrade. Am încercat mai multe lucruri în jurul acestui lucru și cred că principalul lucru care îmi lipsește este chestiile IngressClass și am încercat să le includ în mai multe locuri, dar nu văd cum să fac asta.Clusterul meu are un singur controler de intrare și există o instanță Ingress definită în implementare pentru fiecare instanță a aplicației. Veți vedea, de asemenea, că AppVersion este 0.24.0, am încercat să o depășesc în mai multe moduri și să folosesc imagini diferite în deployment.yaml.

rbac.yml

apiVersion: v1
fel: ServiceAccount
metadate:
  nume: {{ .Chart.Name }}-serviceaccount

---
apiVersion: rbac.authorization.k8s.io/v1
fel: ClusterRole
metadate:
  nume: {{ .Chart.Name }}-clusterrole
reguli:
  - apiGroups:
      -""
    resurse:
      - configmaps
      - puncte finale
      - noduri
      - păstăi
      - secrete
    verbe:
      - lista
      - ceas
  - apiGroups:
      -""
    resurse:
      - noduri
    verbe:
      - obține
  - apiGroups:
      -""
    resurse:
      - Servicii
    verbe:
      - obține
      - lista
      - ceas
  - apiGroups:
      - "extensii"
    resurse:
      - intrări
    verbe:
      - obține
      - lista
      - ceas
  - apiGroups:
      -""
    resurse:
      - evenimente
    verbe:
      - crea
      - plasture
  - apiGroups:
      - "extensii"
    resurse:
      - intrări/stare
    verbe:
      - Actualizați

---
apiVersion: rbac.authorization.k8s.io/v1
fel: Rol
metadate:
  nume: {{ .Chart.Name }}-rol
reguli:
  - apiGroups:
      -""
    resurse:
      - configmaps
      - păstăi
      - secrete
      - spații de nume
    verbe:
      - obține
  - apiGroups:
      -""
    resurse:
      - configmaps
    ResourceNames:
      # Implicit la „<election-id>-<ingress-class>”
      # Aici: „<ingress-controller-leader>-<nginx>”
      # Acest lucru trebuie adaptat dacă modificați oricare dintre parametri
      # când lansați nginx-ingress-controller.
      - „ingress-controller-leader-nginx”
    verbe:
      - obține
      - Actualizați
  - apiGroups:
      -""
    resurse:
      - configmaps
    verbe:
      - crea
  - apiGroups:
      -""
    resurse:
      - puncte finale
    verbe:
      - obține

---
apiVersion: rbac.authorization.k8s.io/v1
fel: RoleBinding
metadate:
  nume: {{ .Chart.Name }}-nisa-binding
rolRef:
  apiGroup: rbac.authorization.k8s.io
  fel: Rol
  nume: {{ .Chart.Name }}-rol
subiecte:
  - fel: ServiceAccount
    nume: {{ .Chart.Name }}-serviceaccount
    spațiu de nume: {{ .Release.Namspace }}

---
apiVersion: rbac.authorization.k8s.io/v1
fel: ClusterRoleBinding
metadate:
  nume: {{ .Chart.Name }}-clusterrole-nisa-binding
rolRef:
  apiGroup: rbac.authorization.k8s.io
  fel: ClusterRole
  nume: {{ .Chart.Name }}-clusterrole
subiecte:
  - fel: ServiceAccount
    nume: {{ .Chart.Name }}-serviceaccount
    spațiu de nume: {{ .Release.Namspace }}

serviciu.yaml

---
# Serviciul principal care ingerează trafic http
fel: Serviciu
apiVersion: v1
metadate:
  nume: loadbalancer-ingress
  etichete:
    app.kubernetes.io/managed-by: Helm
  adnotari:
    {{- dacă .Values.loadbalancer.cert }}
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.loadbalancer.cert | citat }}
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: „{{- interval .Values.loadbalancer.ports -}}{{- dacă .ssl -}}{{ .name }},{{ - end -}}{{- end -}}"
    {{- Sfârşit }}
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: {{ .Values.loadbalancer.backend_protocol | citat }}
    service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: „60”
specificație:
  tip: LoadBalancer
  selector: 
    pod: {{ .Chart.Name }}
  porturi:
    {{- interval .Values.loadbalancer.ports }}
    - nume: {{ .nume }}
      port: {{ .port }}
      targetPort: {{ .targetPort }}
    {{- Sfârşit }}

---
# Serviciu fals pentru a opri controlerul să nu mai sâcâie cu serviciul ingress-nginx
fel: Serviciu
apiVersion: v1
metadate:
  nume: ingress-nginx
  etichete:
    app.kubernetes.io/managed-by: Helm
specificație:
  porturi:
  - nume: http
    port: 10254
    targetPort: 10254
  selector:
    pod: {{ .Chart.Name }}
---

implementare.yaml

---
apiVersion: apps/v1
fel: DaemonSet
metadate:
  nume: {{ .Chart.Name }}-controller
specificație:
  selector:
    matchLabels:
      pod: {{ .Chart.Name }}
  șablon:
    metadate:
      etichete:
        pod: {{ .Chart.Name }}
      adnotari:
        prometheus.io/port: „10254”
        prometheus.io/scrape: „adevărat”
        fluentbit.io/parser: k8s-nginx-ingress
    specificație:
      serviceAccountName: {{ .Chart.Name }}-serviceaccount
      containere:
        - nume: {{ .Chart.Name }}-controller
          imagine: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:{{ .Chart.AppVersion }}
          argumente:
            - /nginx-ingress-controller
            - --configmap=$(POD_NAMESPACE)/{{ .Chart.Name }}-nginx-configuration
            - --tcp-services-configmap=$(POD_NAMESPACE)/{{ .Chart.Name }}-tcp-services
            - --udp-services-configmap=$(POD_NAMESPACE)/{{ .Chart.Name }}-udp-services
            - --publish-service=$(POD_NAMESPACE)/loadbalancer-ingress
            - --annotations-prefix=nginx.ingress.kubernetes.io
          securityContext:
            allowPrivilegeEscalation: adevărat
            capacitati:
              cădere brusca:
                - TOATE
              adăuga:
                - NET_BIND_SERVICE
            # www-data -> 33
            runAsUser: 33
          env:
            - nume: POD_NAME
              valoareDe la:
                fieldRef:
                  fieldPath: metadata.name
            - nume: POD_NAMESPACE
              valoareDe la:
                fieldRef:
                  fieldPath: metadata.namespace
          porturi:
            - nume: http
              containerPort: 80
            - nume: metrici
              containerPort: 10254
          livenessProbe:
            Pragul de eșec: 3
            httpGet:
              cale: /healthz
              port: 10254
              schema: HTTP
            initialDelaySeconds: 10
            perioadaSecunde: 10
            Pragul de succes: 1
            timeoutSecunde: 10
          ReadinessProbe:
            Pragul de eșec: 3
            httpGet:
              cale: /healthz
              port: 10254
              schema: HTTP
            perioadaSecunde: 10
            Pragul de succes: 1
            timeoutSecunde: 10

configmap.yaml

---
fel: ConfigMap
apiVersion: v1
metadate:
  nume: {{ .Chart.Name }}-nginx-configuration
date:
  use-proxy-protocol: „fals”
  use-forwarded-headers: „adevărat”
  server-tokens: „false”

---
fel: ConfigMap
apiVersion: v1
metadate:
  nume: {{ .Chart.Name }}-tcp-services

---
fel: ConfigMap
apiVersion: v1
metadate:
  nume: {{ .Chart.Name }}-udp-services

Chart.yaml

nume: ingress-nginx
descriere: Cluster - Ingress Controller
versiunea: 1
apiVersion: v1

appVersion: „0.24.0”

valori.yaml

echilibrarea greutății:
  backend_protocol: http
  cert: <cert-meu>
  porturi:
    - nume: http
      port: 80
      targetPort: 80
      ssl: fals
    - nume: https
      port: 443
      targetPort: 80
      ssl: adevărat

Comanda pe care rulez.

helm upgrade ingress-nginx --install --namespace ingress-nginx ./

Ieșire pe care o primesc în prezent.

W0327 19:53:47.472827 8 client_config.go:614] Nu au fost specificate nici --kubeconfig, nici --master. Folosind inClusterConfig. S-ar putea să nu funcționeze.
I0327 19:53:47.473136 8 main.go:241] „Crearea clientului API” host="https://100.64.0.1:443"
I0327 19:53:47.487201 8 main.go:285] „Rulează în cluster Kubernetes” major="1" minor="23" git="v1.23.5" state="clean" commit="c285e781331a3785a7f436042c65clinux="platforms" /amd64"
I0327 19:53:47.684135 8 main.go:105] „Certificat SSL fals creat” file="/etc/ingress-controller/ssl/default-fake-certificate.pem”
I0327 19:53:47.689215 8 main.go:115] „Activarea noilor funcții Ingress disponibile începând cu Kubernetes v1.18”
E0327 19:53:47.692044 8 main.go:124] „Căutarea IngressClass” err="ingressclasses.networking.k8s.io \"nginx\" este interzisă: utilizatorul \"system:serviceaccount:ingress-nginx:ingress-nginx- serviceaccount\" nu poate obține resursa \"ingressclasses\" în grupul API \"networking.k8s.io\" în domeniul clusterului" class="nginx"
W0327 19:53:47.692070 8 main.go:127] Nu a fost găsită nicio resursă IngressClass cu numele nginx. Se vor folosi doar adnotări.
I0327 19:53:47.739577 8 nginx.go:254] „Se pornește controlerul NGINX Ingress”
I0327 19:53:47.755865 8 event.go:282] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"ingress-nginx", Name:"ingress-nginx-tcp-services", UID:"6115a34f- 4f95-4f99-970a-b65477e45808", APIVersion:"v1", ResourceVersion:"103400810", FieldPath:""}): tip: „Normal” motiv: „CREATE” ConfigMap ingress-nginx/ingress-nginx-tcp-services
I0327 19:53:47.756010 8 event.go:282] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"ingress-nginx", Name:"ingress-nginx-udp-services", UID:"fa04d653- a070-4934-a606-a60a7f98ad6a", APIVersion:"v1", ResourceVersion:"103400812", FieldPath:""}): tip: „Normal” motiv: „CREATE” ConfigMap ingress-nginx/ingress-nginx-udp-services
I0327 19:53:47.756196 8 event.go:282] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"ingress-nginx", Name:"ingress-nginx-nginx-configuration", UID:"3af77ed0- e71c-49e9-bac3-b7c3fada40df", APIVersion:"v1", ResourceVersion:"103400808", FieldPath:""}): tip: „Normal” motiv: „CREATE” ConfigMap ingress-nginx/ingress-nginx-nginx-configuration
E0327 19:53:48.844980 8 reflector.go:138] k8s.io/[email protected]/tools/cache/reflector.go:167: Nu s-a putut viziona *v1beta1.Ingress: nu s-a putut lista *v1beta1.Ingress : serverul nu a putut găsi resursa solicitată
E0327 19:53:50.385656 8 reflector.go:138] k8s.io/[email protected]/tools/cache/reflector.go:167: Nu s-a putut viziona *v1beta1.Ingress: nu s-a putut lista *v1beta1.Ingress : serverul nu a putut găsi resursa solicitată
E0327 19:53:52.811461 8 reflector.go:138] k8s.io/[email protected]/tools/cache/reflector.go:167: Nu s-a putut viziona *v1beta1.Ingress: nu s-a putut lista *v1beta1.Ingress : serverul nu a putut găsi resursa solicitată
E0327 19:53:57.052727 8 reflector.go:138] k8s.io/[email protected]/tools/cache/reflector.go:167: Nu s-a putut viziona *v1beta1.Ingress: nu s-a putut lista *v1beta1.Ingress : serverul nu a putut găsi resursa solicitată
E0327 19:54:05.784219 8 reflector.go:138] k8s.io/[email protected]/tools/cache/reflector.go:167: Nu s-a putut viziona *v1beta1.Ingress: nu s-a putut lista *v1beta1.Ingress : serverul nu a putut găsi resursa solicitată
I0327 19:54:26.690574 8 main.go:187] „SIGTERM primit, închidere”
I0327 19:54:26.690593 8 nginx.go:372] „Închiderea cozilor de la controler”
E0327 19:54:26.690778 8 store.go:178] a expirat în așteptarea sincronizării cache-urilor
I0327 19:54:26.690835 8 nginx.go:296] „Se pornește procesul NGINX”
I0327 19:54:26.691321 8 queue.go:78] „coada a fost oprită, nu s-a putut pune în coadă” key="&ObjectMeta{Name:initial-sync,GenerateName:,Namspace:,SelfLink:,UID:,GenerationVersion:, :0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Adnotations:map[string]string{},OwnerReferences :[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},}"
I0327 19:54:26.691353 8 leaderelection.go:243] încercarea de a achiziționa închiriere lider ingress-nginx/ingress-controller-leader-nginx...
I0327 19:54:26.718477 8 status.go:84] „Noul lider ales” identity="ingress-nginx-controller-72b9j"
I0327 19:54:26.733451 8 nginx.go:388] „Oprirea procesului NGINX”
2022/03/27 19:54:26 [notificare] 28#28: procesul de semnal a început
I0327 19:54:27.738884 8 nginx.go:401] „Procesul NGINX sa oprit”
I0327 19:54:27.738926 8 main.go:195] „Închidere rezolvată, în așteptarea ștergerii podului”
I0327 19:54:37.739197 8 main.go:198] Cod „Ieșire”=0

Cu plăcere să ofer orice alte detalii care ar fi de ajutor. Apreciez foarte mult ajutorul anticipat!

EDITAȚI | ×:

Clusterul este pe AWS și a fost creat folosind următoarea comandă k0ps.

kops create cluster --node-count 2 --node-size t2.medium --zones ap-southeast-2a,ap-southeast-2c --master-size t2.small --master-zones ap-southeast-2c - -master-count 1 --networking=calico --authorization RBAC -o yaml --dry-run > my-cluster.yaml
drapel br
Cum exact este configurat clusterul dvs. K8s - ce distribuție, este instalarea bare metal/furnizor de cloud?
kirie avatar
drapel be
Clusterul meu a fost creat folosind k0ps și este pe AWS.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.