Cu un singur set de replică, aplicația funcționează.
Așa că am schimbat replicasetul la 3.
Apoi, celelalte două copii ale pod-urilor nu pornesc.:
kubectl obține păstăi
customservice-c8645cd6-7gghm 0/3 Init:CrashLoopBackOff 8 17m
customservice-c8645cd6-f5nbn 3/3 Alergare 0 6h50m
customservice-c8645cd6-fh57n 0/3 Init:CrashLoopBackOff 8 17m
kubectl descrie pod customservice-c8645cd6-fh57n
Nume: customservice-c8645cd6-7gghm
Spațiu de nume: implicit
Prioritate: 0
Nod: ip-192-168-93-234.us-west-2.compute.internal/192.168.93.234
Ora de începere: marți, 20 iulie 2021 19:34:48 +0530
Etichete: aplicație=serviciu personalizat
consul.hashicorp.com/connect-inject-status=injectat
pod-template-hash=c8645cd6
service=serviciu personalizat
Adnotări: consul.hashicorp.com/connect-inject: true
consul.hashicorp.com/connect-inject-status: injectat
consul.hashicorp.com/connect-service: servicii personalizate
consul.hashicorp.com/connect-service-port: 18170
consul.hashicorp.com/connect-service-upstreams: dashboard:9002
kubernetes.io/psp: eks.privilegied
prometheus.io/path: /metrics
prometheus.io/port: 20200
prometheus.io/scrape: adevărat
Stare: în așteptare
IP: 192.168.93.88
IP-uri:
IP: 192.168.93.88
Controlat de: ReplicaSet/customservice-c8645cd6
Containere Init:
consul-connect-inject-init:
ID container: docker://a9bf6bb490f5c21637c18aff681d49d53692f09a3333bf34adb2080816953e26
Imagine: hashicorp/consul:1.9.7
ID imagine: docker-pullable://hashicorp/consul@sha256:37c7a001af46a68f8e3513bd8180e7f84133d428b0e4ce5cf385d3e54f894760
Port: <niciun>
Port gazdă: <niciun>
Comanda:
/bin/sh
-ec
export CONSUL_HTTP_ADDR="${HOST_IP}:8500"
export CONSUL_GRPC_ADDR="${HOST_IP}:8502"
# Înregistrați serviciul. HCL este stocat în volum astfel încât
# cârligul preStop îl poate accesa pentru a anula înregistrarea serviciului.
cat <<EOF >>/consul/connect-inject/service.hcl
Servicii {
id = „${SERVICE_ID}”
nume = "serviciu personalizat"
adresa = „${POD_IP}”
port = 18170
meta = {
pod-name = „${POD_NAME}”
k8s-namespace = „${POD_NAMESPACE}”
}
}
Servicii {
id = „${PROXY_SERVICE_ID}”
nume = „customservice-sidecar-proxy”
fel = "conectare-proxy"
adresa = „${POD_IP}”
port = 20000
meta = {
pod-name = „${POD_NAME}”
k8s-namespace = „${POD_NAMESPACE}”
}
proxy {
config {
envoy_prometheus_bind_addr = "0.0.0.0:20200"
}
destination_service_name = "serviciu personalizat"
destination_service_id = „${SERVICE_ID}”
local_service_address = "127.0.0.1"
local_service_port = 18170
amonte {
destination_type = "serviciu"
destination_name = "tabloul de bord"
local_bind_port = 9002
}
}
cecuri {
nume = „Ascultător public proxy”
tcp = "${POD_IP}:20000"
interval = "10s"
deregister_critical_service_after = "10m"
}
cecuri {
nume = „Alias de destinație”
alias_service = „${SERVICE_ID}”
}
}
EOF
/bin/registrul serviciilor consulare \
/consul/connect-inject/service.hcl
# Generați codul de bootstrap pentru Envoy
/bin/consul connect envoy \
-proxy-id="${PROXY_SERVICE_ID}" \
-prometheus-scrape-path="/metrics" \
-prometheus-backend-port="20100" \
-bootstrap > /consul/connect-inject/envoy-bootstrap.yaml
# Copiați binarul Consul
cp /bin/consul /consul/connect-inject/consul
Stare: În așteptare
Motiv: CrashLoopBackOff
Ultima stare: Terminat
Motiv: Eroare
Cod de ieșire: 1
Început: marți, 20 iulie 2021 19:51:19 +0530
Terminat: marți, 20 iulie 2021 19:51:23 +0530
Gata: Fals
Număr de reporniri: 8
Limite:
CPU: 50m
memorie: 150 Mi
Cereri:
CPU: 50m
memorie: 25 Mi
Mediu inconjurator:
HOST_IP: (v1:status.hostIP)
POD_IP: (v1:status.podIP)
POD_NAME: customservice-c8645cd6-7gghm (v1:metadata.name)
POD_NAMESPACE: implicit (v1:metadata.namespace)
SERVICE_ID: $(POD_NAME)-serviciu personalizat
PROXY_SERVICE_ID: $(POD_NAME)-customservice-sidecar-proxy
Suporturi:
/consul/connect-inject din consul-connect-inject-data (rw)
/var/run/secrets/kubernetes.io/serviceaccount de la customservice-token-4xf6t (ro)
Containere:
servicii personalizate:
ID container:
Imagine: customserverlinux.azurecr.io/custom:latest
ID imagine:
Port: 18170/TCP
Port gazdă: 0/TCP
Stare: În așteptare
Motiv: PodInitializing
Gata: Fals
Număr de reporniri: 0
Mediu inconjurator:
DASHBOARD_CONNECT_SERVICE_HOST: 127.0.0.1
DASHBOARD_CONNECT_SERVICE_PORT: 9002
Suporturi:
/home/spring/AppData/Local/erwin/custom Server/ din volumul personalizat (rw)
/var/run/secrets/kubernetes.io/serviceaccount de la customservice-token-4xf6t (ro)
trimis-sidecar:
ID container:
Imagine: envoyproxy/envoy-alpine:v1.16.0
ID imagine:
Port: <niciun>
Port gazdă: <niciun>
Comanda:
trimis
--config-path
/consul/connect-inject/envoy-bootstrap.yaml
-l
depanare
Stare: În așteptare
Motiv: PodInitializing
Gata: Fals
Număr de reporniri: 0
Mediu inconjurator:
HOST_IP: (v1:status.hostIP)
CONSUL_HTTP_ADDR: $(HOST_IP):8500
Suporturi:
/consul/connect-inject din consul-connect-inject-data (rw)
/var/run/secrets/kubernetes.io/serviceaccount de la customservice-token-4xf6t (ro)
consul-sidecar:
ID container:
Imagine: hashicorp/consul-k8s:0.25.0
ID imagine:
Port: <niciun>
Port gazdă: <niciun>
Comanda:
consul-k8s
consul-sidecar
-service-config
/consul/connect-inject/service.hcl
-consul-binar
/consul/connect-inject/consul
-enable-metrics-merging=true
-merged-metrics-port=20100
-service-metrics-port=18170
-service-metrics-path=/metrics
Stare: În așteptare
Motiv: PodInitializing
Gata: Fals
Număr de reporniri: 0
Limite:
CPU: 20m
memorie: 50 Mi
Cereri:
CPU: 20m
memorie: 25 Mi
Mediu inconjurator:
HOST_IP: (v1:status.hostIP)
CONSUL_HTTP_ADDR: $(HOST_IP):8500
Suporturi:
/consul/connect-inject din consul-connect-inject-data (rw)
/var/run/secrets/kubernetes.io/serviceaccount de la customservice-token-4xf6t (ro)
Conditii:
Tastați Stare
Inițializat Fals
Gata Fals
ContainersReady False
PodScheduled Adevărat
Volume:
volum personalizat:
Tip: EmptyDir (un director temporar care partajează durata de viață a unui pod)
Mediu:
SizeLimit: <dezactivat>
customservice-token-4xf6t:
Tip: Secret (un volum populat de un Secret)
SecretName: customservice-token-4xf6t
Opțional: fals
consul-connect-inject-data:
Tip: EmptyDir (un director temporar care partajează durata de viață a unui pod)
Mediu:
SizeLimit: <dezactivat>
Clasa QoS: Burstable
Selectori de noduri: <niciunul>
Tolerări: node.kubernetes.io/not-ready:NoExecute op=Există pentru 300 de secunde
node.kubernetes.io/unreachable:NoExecute op=Există timp de 300 de secunde
Evenimente:
Introduceți Motivul Vârsta din mesaj
---- ------ ---- ---- -------
Normal programat 19m default-scheduler Alocat cu succes default/customservice-c8645cd6-7gghm la ip-192-168-93-234.us-west-2.compute.internal
Normal tras 17m (x5 peste 19m) Kubelet Imaginea containerului „hashicorp/consul:1.9.7” deja prezentă pe mașină
Normal creat 17m (x5 peste 19m) kubelet Container creat consul-connect-inject-init
Normal Pornit 17m (x5 peste 19m) Kubelet Pornit container consul-connect-inject-init
Avertisment BackOff 3m50s (x68 peste 18m) kubelet Back-off repornirea containerului eșuat
Deoarece containerul init nu funcționează, înregistrează pentru acel container:
kubectl înregistrează customservice-c8645cd6-64j2j -c consul-connect-inject-init
Serviciu înregistrat: serviciu personalizat
Serviciu înregistrat: customservice-sidecar-proxy
steag furnizat, dar nedefinit: -prometheus-scrape-path
Utilizare:
-valoarea adresei
Adresă LAN pentru a face publicitate în înregistrarea serviciului gateway
-admin-access-log-path șir
Calea pentru a scrie jurnalul de acces pentru serverul de administrare. Dacă nu se dorește niciun jurnal de acces, specificați „/dev/null”. În mod implicit, va folosi „/dev/null”. (implicit "/dev/null")
-admin-bind șir
Adresa:portul pentru pornirea serverului de administrare al lui Envoy. Envoy solicită acest lucru, dar trebuie avut grijă să vă asigurați că nu este expus la o rețea neîncrezătoare, deoarece are control deplin asupra secretelor și configurației proxy-ului. (implicit „localhost:19000”)
-bind-address <nume>=<ip>:<port>
Adresă de legare de utilizat în locul regulilor implicite de legare date ca perechi <nume>=<ip>:<port>. Acest flag poate fi specificat de mai multe ori pentru a adăuga mai multe adrese de legare.
-bootstrap
Generați bootstrap.json, dar nu executați exec envoy
-ca-file value
Calea către un fișier CA de utilizat pentru TLS atunci când comunicați cu Consul. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_CACERT.
-ca-valoarea căii
Calea către un director de certificate CA de utilizat pentru TLS atunci când comunicați cu Consul. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_CAPATH.
-valoare client-cert
Calea către un fișier de certificare client de utilizat pentru TLS când „verify_incoming” este activat. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_CLIENT_CERT.
-valoare cheie-client
Calea către un fișier cheie client de utilizat pentru TLS când „verify_incoming” este activat. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_CLIENT_KEY.
-deregister-după-șir critic
Perioada de timp în care verificarea sănătății serviciilor de gateway poate eșua înainte de a fi anulată (implicit „6h”)
-envoy-șir binar
Calea completă către binarul Envoy pentru a rula. În mod implicit, va căuta doar $PATH. Ignorat dacă se folosește -bootstrap.
-envoy-version șir
Setează versiunea envoy pe care o are binarul envoy. (implicit „1.16.4”)
-expune-servere
Expuneți serverele pentru federarea WAN prin intermediul acestui gateway mesh
-șir gateway
Tipul de gateway de înregistrat. Una dintre: terminare, intrare sau rețea
-grpc-addr șir
Setați adresa gRPC și portul agentului (în format http(s)://gazdă:port). Alternativ, puteți specifica CONSUL_GRPC_ADDR în ENV. (implicit „192.168.93.234:8502”)
-http-adresa adresa
Adresa și portul agentului HTTP Consul. Valoarea poate fi o adresă IP sau o adresă DNS, dar trebuie să includă și portul. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_HTTP_ADDR. Valoarea implicită este http://127.0.0.1:8500. Schema poate fi setată și la HTTPS prin setarea variabilei de mediu CONSUL_HTTP_SSL=true.
-mesh-gateway
Configurați Envoy ca un Mesh Gateway.
-namespace implicit
Specifică spațiul de nume de interogat. Dacă nu este furnizat, spațiul de nume va fi dedus din simbolul ACL al cererii sau va fi implicit la spațiul de nume implicit. Spațiile de nume sunt o caracteristică Consul Enterprise.
-no-central-config
În mod implicit, configurația bootstrap a proxy-ului poate fi personalizată central.Acest lucru necesită ca comanda să ruleze pe același agent ca și proxy-ul și ca agentul să fie accesibil atunci când comanda este executată. În cazurile în care oricare dintre ipoteze este încălcată, acest indicator va împiedica încercarea comenzii de a rezolva configurația de la agentul local.
-omit-deprecated-tags
În Consul 1.9.0, formatul etichetelor metrice pentru clusterele Envoy a fost actualizat de la consul.[service|dc|...] la consul.destination.[service|dc|...]. Etichetele vechi au fost păstrate pentru compatibilitate cu versiunea anterioară, dar pot fi dezactivate cu acest steag.
- șir de cod proxy
ID-ul proxy-ului pe agentul local.
-Inregistreaza-te
Înregistrați un nou serviciu gateway înainte de a configura și a porni Envoy
-șir de serviciu
Numele serviciului de utilizat pentru înregistrare
-sidecar-pentru sfoară
ID-ul unei instanțe de serviciu pe agentul local pentru care acest proxy ar trebui să devină un sidecar. Necesită ca serviciul proxy să fie înregistrat la agent ca un proxy de conectare cu Proxy.DestinationServiceID setat la această valoare. Dacă este înregistrat mai mult de un astfel de proxy, acesta va eșua.
-tls-server-name valoare
Numele serverului de utilizat ca gazdă SNI atunci când vă conectați prin TLS. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_TLS_SERVER_NAME.
-valoare simbol
Indicativ ACL de utilizat în cerere. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_HTTP_TOKEN. Dacă nu este specificat, interogarea va fi implicit la simbolul agentului Consul la adresa HTTP.
-token-file value
Fișier care conține indicativul ACL de utilizat în cerere în loc de unul specificat prin argumentul -token sau variabila de mediu CONSUL_HTTP_TOKEN. Acest lucru poate fi specificat și prin variabila de mediu CONSUL_HTTP_TOKEN_FILE.
-wan-valoare adresa
Adresă WAN pentru a face publicitate în înregistrarea serviciului gateway. Pentru gateway-urile de intrare, este necesară doar o adresă IP (fără port).
Orice sugestie despre cum să remediați acest lucru?