แฒจแแแแจแแแ. แแแ แแแแ: แแก แกแขแแขแแ แแ แแก แกแแฏแแ แ แแแแแแจแ แแแแแฅแแแงแแแแฃแแ แแ แแแฅแขแแก แแแกแแแแแแก แแแฌแแแ
TL;DR: แแฅ แแ แแก แแแแแ แแแ, แ แแแแแแช แแแแแฎแแแ แแแแ Kubernetes-แจแ แแแแแแแแแแก แแแแแ แแแแจแ:
แแแแแแแก แกแฅแแแ แแแแกแขแแ แจแ แจแแชแแแแแแแก แแแแแแกแ แแ แแแคแแฅแกแแ แแแแกแแแแก. แแ แแแแแแแ (แแแแแแกแฃแ แแ) แฎแแแแแกแแฌแแแแแแ แแแกแแแแ แแแ
Kubernetes-แจแ แแแแแแแชแแแก แแแแแแแแแแกแแก, แ แแแแ แช แฌแแกแ, แกแแแ แแแแแแแแแขแ แฃแแแ แแแแแกแแแฆแแ แแก:
- แแแแแแแแแ - แแก แแ แแก แแ แแแแแ แ แ แแชแแแขแ แแแแแแแชแแแก แแกแแแแแก แจแแกแแฅแแแแแแ, แกแแฎแแแฌแแแแแแ pods;
- แกแแแกแแฎแฃแ แแก - แจแแแ แแแขแแแ แแแแก แแแแแแกแแ แ, แ แแแแแแช แแแแฌแแแแแก แขแ แแคแแแก แแแแแแก แจแแ แแก;
- Ingress โ แแฆแฌแแ แ, แแฃ แ แแแแ แแแฎแแแแแ แขแ แแคแแแ แแแ แ แกแแแงแแ แแแแ แกแแ แแแกแแแแ.
แแฅ แแ แแก แกแฌแ แแคแ แแ แแคแแแฃแแ แจแแฏแแแแแ:
1) Kubernetes-แจแ แแแแแแแชแแแแ แแฆแแแแ แขแ แแคแแแก แแแ แ แกแแแงแแ แแแแ แแแขแแแ แแแแก แแแแแแกแแ แแก แแ แ แคแแแแก แแแจแแแแแแ: แจแแแ แแ แแแ แ.
2) แจแแแ แแแแแแกแแ แก แแฌแแแแแ แกแแ แแแกแ, แแแ แแก - แแแแ แแกแ.
3) Deployment แฅแแแแก แแแแแแก แแ แแแแแขแ แแแแแก แแแ (แแกแแแ แแ แแ แแก แจแแฅแแแแแ แฎแแแแ).
แแแฅแแแ, แ แแ แแกแฃแ แ แแแแแแแแกแแ แแแ แขแแแ แแแแแแแชแแ a la แแแแแ แฏแแแ แแกแแคแแแ. แแแกแแแแก YAML แแแแคแแแฃแ แแชแแ แแกแ แแแแแแงแฃแ แแแ:
apiVersion: apps/v1
kind: Deployment # <<<
metadata:
name: my-deployment
labels:
track: canary
spec:
selector:
matchLabels:
any-name: my-app
template:
metadata:
labels:
any-name: my-app
spec:
containers:
- name: cont1
image: learnk8s/app:1.0.0
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service # <<<
metadata:
name: my-service
spec:
ports:
- port: 80
targetPort: 8080
selector:
name: app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress # <<<
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- backend:
serviceName: app
servicePort: 80
path: /
แแแแแแ แขแแแ แกแแแแแแ แแ แซแแแแ แแ แแแแแแแ แแแแแแฃแแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแแจแแ แแแแ แแแแแแแแแขแแแ แแ แแแแแแแก.
แแแแแแแแแ:
- แ แแแแก แฃแแแ แแแแแแงแแแแ แแแ แขแ 80 แแ แ แแแแก แฃแแแ แแแแแแงแแแแ 8080?
- แฃแแแ แจแแแฅแแแ แแฃ แแ แ แแฎแแแ แแแ แขแ แแแแแแฃแแ แกแแ แแแกแแกแแแแก, แ แแแ แแ แแแฎแแแก แแแแคแแแฅแขแ?
- แแฅแแก แแฃ แแ แ แแแแจแแแแแแแ แแขแแแแขแแแแก แกแแฎแแแแแก? แงแแแแแแ แแ แแแแแ แ แฃแแแ แแงแแก?
แกแแแแ แแแแแ แแแแแ แแแแแแแฎแแแแแแ แงแฃแ แแแฆแแแแก, แแแแแฎแกแแแแ, แ แแแแ แฃแแแแจแแ แแแแ แแ แแแแแแแก แกแแแ แแแแแแแแแขแ. แแแแแฌแงแแ แแแแแแแแแแ แแ แกแแ แแแกแแ.
แฃแ แแแแ แแแแ แแแแแแแแแแกแ แแ แกแแ แแแกแก แจแแ แแก
แแแแแแแแ แแแแแ, แแแแ แแ แแแแแแแแแ แแ แกแแ แแแกแแแ แแ แแแแแ แแ แแ แแ แแก แแแแแแจแแ แแแฃแแ. แแแแก แแแชแแแแ, แกแแ แแแกแ แแแฃแแแแแแก แแแ แแแแแ Pods-แแ, แแแแแแแแแแก แแแแ แแแก แแแแแ.
แแแ แแแแ, แฉแแแ แแแแแแขแแ แแกแแแก, แแฃ แ แแแแ แแ แแก แแแแแแจแแ แแแฃแแ Pods แแ Services แแ แแแแแแแแแ. แกแแแ แ แแ แฃแแแ แแแแฎแกแแแแแก:
- แแแแแ แฉแแแ (
selector
) แกแแ แแแกแแกแแแแก แฃแแแ แจแแแกแแแแแแแแแแก แแแแแแฃแ แแ แ แแแ แแแแแแก. -
targetPort
แฃแแแ แแแแฎแแแแแแกcontainerPort
แแแแขแแแแแ แ แแแแแก แจแแแแแ. -
port
แแแแกแแฎแฃแ แแแ แจแแแซแแแแ แแงแแก แแแแแกแแแแ แ. แกแฎแแแแแกแฎแแ แกแแ แแแกแแแก แจแแฃแซแแแแ แแแแแแงแแแแ แแ แแ แแ แแแแแ แแแ แขแ, แ แแแแแ แแแ แแฅแแ แแแแกแฎแแแแแแฃแแ IP แแแกแแแแ แแแแ.
แฅแแแแแ แแแงแแแแแแ แแแแแ แแแ แแกแแฎแแแก แงแแแแ แฉแแแแแแแแแก แแ แแคแแแฃแแ แคแแ แแแ:
1) แฌแแ แแแแแแแแแ, แ แแ แกแแ แแแกแ แแแแแ แแแแก แขแ แแคแแแก แแแ แแแแฃแ แแแแแ:
2) แแแแแก แจแแฅแแแแกแแก แฃแแแ แแแฃแแแแแ containerPort
แแแแแแฃแแ แแแแขแแแแแ แแกแแแแก แแฃแแแแแจแ:
3) แกแแ แแแกแแก แจแแฅแแแแกแแก แฃแแแ แแแฃแแแแแ port
ะธ targetPort
. แแแแ แแ แ แแแแแ แแแแแแงแแแแแ แแแแขแแแแแ แแแ แแแกแแแแแจแแ แแแแแ?
4) แแแ targetPort
. แฃแแแ แแแแฎแแแแแแก containerPort
.
5) แแแฅแแแ แแแแขแแแแแ แจแ แฆแแแ แแแ แขแ 3000. แจแแแแแ แแแแจแแแแแแแ targetPort
แแแแแ แฃแแแ แแงแแก.
YAML แคแแแแจแ แแขแแแแขแแแ แแ ports
/ targetPort
แฃแแแ แแแแฎแแแแแแก:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
track: canary
spec:
selector:
matchLabels:
any-name: my-app
template:
metadata:
labels: # <<<
any-name: my-app # <<<
spec:
containers:
- name: cont1
image: learnk8s/app:1.0.0
ports:
- containerPort: 8080 # <<<
---
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- port: 80
targetPort: 8080 # <<<
selector: # <<<
any-name: my-app # <<<
แ แแช แจแแแฎแแแ แแขแแแแขแก track: canary
แแแแแแแแแแก แแแแงแแคแแแแแแก แแแแ แแแฌแแแจแ? แฃแแแ แแแแฎแแแแแแก?
แแก แแขแแแแขแ แกแแแชแแคแแแฃแ แแ แแแแแ แแแแกแแแแก แแ แแ แแแแแแงแแแแแ แกแแ แแแกแแก แแแแ แขแ แแคแแแแก แแแ แจแ แฃแขแแกแแแแก. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแก แจแแแซแแแแ แฌแแแจแแแแก แแ แแแแแแญแแก แกแฎแแ แแแแจแแแแแแแ.
แ แแช แจแแแฎแแแ แกแแแแฅแขแแ แก matchLabels
?
แแก แงแแแแแแแแก แฃแแแ แแแแฎแแแแแแก Pod-แแก แแขแแแแขแแแก, แ แแแแแ แแก แแแแแแงแแแแแ Deployment-แแก แแแแ แแแแแแแก แแแแแงแฃแ แแก แแแแแแแแกแแแแก.
แแแแฃแจแแแ, แ แแ แแฅแแแ แแแแแแแแ แกแฌแแ แ แ แแแแฅแขแแ แแแ. แ แแแแ แจแแแแแแฌแแแ แแกแแแ?
แจแแแแซแแแแ แจแแแแแฌแแแ pod แแแแแแ แจแแแแแแ แแ แซแแแแแแ:
kubectl get pods --show-labels
แแ, แแฃ แแแแ แแแฃแแแแแก แ แแแแแแแแ แแแแแแแชแแแก:
kubectl get pods --selector any-name=my-app --show-labels
ะะดะต any-name=my-app
แแ แแก แแขแแแแขแ any-name: my-app
.
แแแ แฉแ แ แแแแ แกแแ แแฃแแ?
แจแแแแซแแแแ แแแแแแจแแ แแแ pod! แแแแกแแแแแก แแฅแแแ แฃแแแ แแแแแแงแแแแ แแ แซแแแแแ port-forward
แแฃแแแฅแขแแจแ. แแก แกแแจแฃแแแแแแก แแแซแแแแ แแแฃแแแแจแแ แแแ แกแแ แแแกแก แแ แจแแแแแฌแแแ แแแแจแแ แ.
kubectl port-forward service/<service name> 3000:80
ะะดะตัั:
-
service/<service name>
- แกแแ แแแกแแก แแแกแแฎแแแแแ; แฉแแแแก แจแแแแฎแแแแแจแ แแกแแmy-service
; - 3000 แแ แแก แแแ แขแ, แ แแแแแแช แฃแแแ แแแแฎแกแแแก แแแแแแฃแขแแ แแ;
- 80 - แแแแจแ แแแแแแแแฃแแ แแแ แขแ
port
แแแแกแแฎแฃแ แแแ.
แแฃ แแแแจแแ แ แแแแงแแ แแ, แแแจแแ แแแ แแแแขแ แแแ แกแฌแแ แแ.
แแฃ แแแแจแแ แ แแแ แฎแแ แฎแแแแ, แแขแแแแขแแแแก แแ แแแแแแแ แแ แแแ แขแแแ แแ แแแแฎแแแแ.
แฃแ แแแแ แแแแ แกแแ แแแกแกแ แแ แแแแ แแกแก แจแแ แแก
แแแแแแแชแแแแ แฌแแแแแแก แฃแแ แฃแแแแแงแแคแแก แจแแแแแแ แแแแแฏแ แแแแแแจแแ แแแฃแแแ Ingress-แแก แแแงแแแแแแกแแแ. แแแแ แแกแแ แฃแแแ แแชแแแแก, แ แแแแ แแแแซแแแก แกแแ แแแกแ, แจแแแแแ แแแซแแแแแก แแแแแแแ แแ แแแแแ แแแก แขแ แแคแแแก แแแแแแ. Ingress แแแฃแแแแก แกแแญแแ แ แกแแ แแแกแก แกแแฎแแแแ แแ แฆแแ แแแ แขแแ.
Ingress แแ Service-แแก แแฆแฌแแ แแแแแแจแ แแ แ แแแ แแแแขแ แ แฃแแแ แแแแฎแแแแแแก:
-
servicePort
Ingress-แจแ แฃแแแ แแแแฎแแแแแแก แแแ แแแแขแ แกport
แกแแ แแแกแจแ; -
serviceName
Ingress-แจแ แฃแแแ แแแแฎแแแแแแก แแแแกname
แกแแ แแแกแจแ.
แจแแแแแแ แแแแแ แแแ แแฏแแแแแก แแแ แขแแก แแแแจแแ แแแก:
1) แ แแแแ แช แฃแแแ แแชแแ, แกแแ แแแกแ แฃแกแแแแก แแแ แแแแฃแแก port
:
2) Ingress-แก แแฅแแก แแแ แแแแขแ แ แ.แฌ servicePort
:
3) แแก แแแ แแแแขแ แ (servicePort
) แงแแแแแแแแก แฃแแแ แแแแฎแแแแแแก port
แกแแ แแแกแแก แแแแแแ แขแแแแจแ:
4) แแฃ แกแแ แแแกแจแ แแแแแแแแฃแแแ แแแ แขแ 80, แแแจแแ แแก แแฃแชแแแแแแแแ servicePort
แแกแแแ แแงแ 80-แแก แขแแแ:
แแ แแฅแขแแแแจแ, แงแฃแ แแแฆแแแ แฃแแแ แแแแฅแชแแแ แจแแแแแ แฎแแแแแก:
apiVersion: v1
kind: Service
metadata:
name: my-service # <<<
spec:
ports:
- port: 80 # <<<
targetPort: 8080
selector:
any-name: my-app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- backend:
serviceName: my-service # <<<
servicePort: 80 # <<<
path: /
แ แแแแ แจแแแแแแฌแแแ, แแฃแจแแแแก แแฃ แแ แ Ingress?
แแฅแแแ แจแแแแซแแแแ แแแแแแงแแแแ แแแแแแ kubectl port-forward
, แแแแ แแ แกแแ แแแกแแก แแแชแแแแ แแฅแแแ แฃแแแ แแแฃแแแแจแแ แแแ Ingress แแแแขแ แแแแ แก.
แแแ แแแ แ แแแจแ, แแฅแแแ แฃแแแ แแแแ แแแแแ แแแแแก แกแแฎแแแ Ingress แแแแขแ แแแแ แแ:
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS
kube-system coredns-5644d7b6d9-jn7cq 1/1 Running
kube-system etcd-minikube 1/1 Running
kube-system kube-apiserver-minikube 1/1 Running
kube-system kube-controller-manager-minikube 1/1 Running
kube-system kube-proxy-zvf2h 1/1 Running
kube-system kube-scheduler-minikube 1/1 Running
kube-system nginx-ingress-controller-6fc5bcc 1/1 Running
แแแแแแ Ingress pod (แแก แจแแแซแแแแ แแงแแก แกแฎแแ แกแแฎแแแแแแก แกแแแ แชแแจแ) แแ แแแฃแจแแแ แแ แซแแแแแ describe
แแแ แขแแก แแแแ แแแแก แแแกแแ แแแแแแ:
kubectl describe pod nginx-ingress-controller-6fc5bcc
--namespace kube-system
| grep Ports
Ports: 80/TCP, 443/TCP, 18080/TCP
แแแแแแแก, แแแฃแแแแจแแ แแแ แแแแก:
kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system
แแฎแแ แงแแแแ แฏแแ แแ, แ แแชแ แแแแแแแแ แแแแฎแแแแแก 3000 แแแ แขแแ แแฅแแแแก แแแแแแฃแขแแ แจแ, แแก แแแแแแแแแแแแแ แแแ แขแแก 80 แแแ แขแจแ Ingress แแแแขแ แแแแ แแ. แฌแแกแแแแ
แแแ แขแแแแก แจแแฏแแแแแ
แแแแแ แแ แแฎแแ แแแแแฎแกแแแแ แ แแแแแ แแแ แขแแแ แแ แแขแแแแขแแแ แฃแแแ แแแแฎแแแแแแก:
- แกแแแแฅแขแแ แ แกแแ แแแกแแก แแแแกแแแฆแแ แแจแ แฃแแแ แแแแฎแแแแแแก แแแแแก แแขแแแแขแก;
-
targetPort
แแแแแแ แขแแแแจแ แกแแ แแแกแ แฃแแแ แแแแฎแแแแแแกcontainerPort
แแแแขแแแแแ แ แงแแแก แจแแแแแ; -
port
แแแแแแ แขแแแแจแ แกแแ แแแกแ แจแแแซแแแแ แแงแแก แแแแแกแแแแ แ. แกแฎแแแแแกแฎแแ แกแแ แแแกแแแก แจแแฃแซแแแแ แแแแแแงแแแแ แแ แแ แแ แแแแแ แแแ แขแ, แ แแแแแ แแแ แแฅแแ แแแแกแฎแแแแแแฃแแ IP แแแกแแแแ แแแแ; -
servicePort
แจแแแแกแแแ แฃแแแ แแแแฎแแแแแแกport
แกแแแกแแฎแฃแ แแก แแแแแแ แขแแแแจแ; - แกแแ แแแกแแก แกแแฎแแแ แฃแแแ แจแแแกแแแแแแแแแแก แแแแก
serviceName
แแแแ แแกแจแ.
แกแแแฌแฃแฎแแ แแ, แกแแแแแ แแกแ แแ แแ แแก แแแแก แชแแแแ, แแฃ แ แแแแ แกแฌแแ แแ แแแฌแงแแ YAML แแแแคแแแฃแ แแชแแ.
แ แ แฎแแแแ, แ แแชแ แ แแแ แแ แแกแฌแแ แแ แแแแแก?
แแแแ แจแแแซแแแแ แแ แแแแฌแงแแก แแ แจแแแซแแแแ แฉแแแแแแ แแแก.
3 แแแแแฏแ Kubernetes-แจแ แแแแแชแฎแแแแก แแ แแแแแแแแแก แแแแแแแกแขแแแแกแแแแก
แกแแแแ แแแแฌแงแแแ แแฅแแแแ แแแแแแแแแแก แแแแแ แแแแก, แแแ แแแ แฃแแแ แแแกแแแแแ, แแฃ แ แแแแ แแฃแจแแแแก Kubernetes.
แแแแแแแแ K8s-แจแ แฉแแแแขแแแ แแฃแ แแแแแแฃแ แแแแแแแชแแแก แแฅแแก แกแแแ แแแแแแแแแขแ, แแแแ แแแแแ แแแ แฃแแแ แแแฎแแแก แแแ แแแแฃแแ แแแแแแแแแแ แแแแ, แฅแแแแแแแ แแแฌแงแแแฃแแ.
- แฏแแ แฃแแแ แแแ แฌแแฃแแแแ, แ แแ แฆแแแแแแแแ แแฃแจแแแแก, แจแแแแแ แแ...
- แจแแแแแฌแแแ, แแฌแแแแก แแฃ แแ แ แกแแ แแแกแ แขแ แแคแแแก แแแแแแก แแ แจแแแแแ...
- แจแแแแแฌแแแ แแ แแก แแฃ แแ แ Ingress แแแแคแแแฃแ แแ แแแฃแแ แกแฌแแ แแ.
แแแแฃแแแฃแ แ แฌแแ แแแแแแแ:
1) แแ แแแแแแแแแก แซแแแแ แฅแแแแแแแ แฃแแแ แแแแฌแงแแ. แฏแแ แจแแแแแฌแแแ, แ แแ แแแแแแก แแฅแแ แกแขแแขแฃแกแ Ready
ะธ Running
:
2) แแฃ แฆแแแแแแแแ แแแแ แแ แแก (Ready
), แแฅแแแ แฃแแแ แแแแ แแแแแ, แแแแฌแแแแแก แแฃ แแ แ แกแแ แแแกแ แขแ แแคแแแก แแแแแแก แจแแ แแก:
3) แแ แแแแแก, แแฅแแแ แฃแแแ แแแแแแแแแแ แแแแจแแ แ แกแแ แแแกแกแ แแ Ingress-แก แจแแ แแก:
1. แฌแแแฌแแแแก แแแแแแแกแขแแแ
แฃแแแขแแก แจแแแแฎแแแแแจแ, แแ แแแแแแ แแแแแแจแแ แแแฃแแแ แฌแแแฌแแกแแแ. แแแ แฌแแฃแแแแ, แ แแ แแฃแฉแฅแแแ แฉแแแแแแแแแแ แ แแแแ แช Ready
ะธ Running
. แแแแก แจแแแแฌแแแแ แจแแแแซแแแแ แแ แซแแแแแแก แแแแแงแแแแแแ:
kubectl get pods
NAME READY STATUS RESTARTS AGE
app1 0/1 ImagePullBackOff 0 47h
app2 0/1 Error 0 47h
app3-76f9fcd46b-xbv4k 1/1 Running 1 47h
แแแแแ แแแงแแแแแ แแ แซแแแแแแจแ, แแแแ pod แแ แแก แฉแแแแแแแแแ, แ แแแแ แช Running
ะธ Ready
แแฃแแชแ แแแแแ แฉแแ แแ แแ แแก แแกแ แแ แแ แแก.
แ แแแแ แแแแแแแ, แ แ แแแฎแแ?
แแ แกแแแแแก แแแฎแ แกแแกแแ แแแแแ แแ แซแแแแแ แซแแคแแแแก แแแแแแแกแขแแแแกแแแแก:
-
kubectl logs <ะธะผั pod'ะฐ>
แกแแจแฃแแแแแแก แแแซแแแแ แแแแแฆแแ แแแ แแแ แแแแขแแแแแ แแแแแแ แงแฃแแจแ; -
kubectl describe pod <ะธะผั pod'ะฐ>
แกแแจแฃแแแแแแก แแแซแแแแ แแแฎแแ แแแแแแ แแแแแแจแแ แแแฃแแ แแแแแแแแแแก แกแแ; -
kubectl get pod <ะธะผั pod'ะฐ>
แกแแจแฃแแแแแแก แแแซแแแแ แแแแฆแแ Kubernetes-แจแ แจแแแแฎแฃแแ pod-แแก YAML แแแแคแแแฃแ แแชแแ; -
kubectl exec -ti <ะธะผั pod'ะฐ> bash
แกแแจแฃแแแแแแก แแแซแแแแ แแแฃแจแแแ แแแขแแ แแฅแขแแฃแแ แแ แซแแแแแแก แญแฃแ แแ แแ แ-แแ แ แแแ แแแแขแแแแแ แจแ
แ แแแแแ แฃแแแ แแแ แฉแแแ?
แคแแฅแขแแ, แ แแ แแ แแ แกแแแแแก แฃแแแแแ แกแแแฃแ แ แแ แซแแแแแ. แแแแ แแแแแแแแชแแ แฃแแแ แแฅแแแก แแแแแงแแแแแฃแแ.
แฏแแจแแก แขแแแแฃแ แ แแ แแแแแแแแ
แแแ แจแแชแแแแแแแก แแ แ แซแแ แแแแแ แขแแแแ: แแแจแแแแแก แจแแชแแแแแแ แแ แแแจแแแแแก แจแแชแแแแแแ.
แแแจแแแแแก แจแแชแแแแแแ:
-
ImagePullBackoff
-
ImageInspectError
-
ErrImagePull
-
ErrImageNeverPull
-
RegistryUnavailable
-
InvalidImageName
แแฃแจแแแแแก แแ แแแก แจแแชแแแแแแ:
-
CrashLoopBackOff
-
RunContainerError
-
KillContainerError
-
VerifyNonRootError
-
RunInitContainerError
-
CreatePodSandboxError
-
ConfigPodSandboxError
-
KillPodSandboxError
-
SetupNetworkError
-
TeardownNetworkError
แแแแแแ แแ แจแแชแแแแ แฃแคแ แ แฎแจแแ แแ, แแแแ แ แกแฎแแแแ. แแฅ แแ แแก แ แแแแแแแแแ แงแแแแแแ แแแแ แชแแแแแฃแแ แจแแชแแแแ แแ แ แแแแ แแแแแแแกแฌแแ แแ แแกแแแ.
ImagePullBackOff
แแก แจแแชแแแแ แฉแแแแแ, แ แแแแกแแช Kubernetes แแแ แแฎแแ แฎแแแก แกแฃแ แแแแก แแแฆแแแแก แแ แ-แแ แแ pod แแแแขแแแแแ แแกแแแแก. แแฅ แแ แแก แแแแก แกแแแ แงแแแแแแ แแแแ แชแแแแแฃแแ แแแแแแ:
- แกแฃแ แแแแก แกแแฎแแแ แแ แแกแฌแแ แแ - แแแแแแแแแ, แแฅแแแ แแแกแจแ แจแแชแแแแ แแแฃแจแแแ, แแ แกแฃแ แแแ แแ แแ แกแแแแแก;
- แกแฃแ แแแแ แแแแแแแแฃแแ แแงแ แแ แแ แกแแแฃแแ แขแแแ;
- แกแฃแ แแแ แแแแฎแแแ แแแ แแ แ แแแกแขแ แจแ แแ Kubernetes-แก แแ แแฅแแก แแแกแแ แฌแแแแแแก แแแแแ แแแ.
แแแ แแแแ แแ แ แแแแแแแก แแฆแแแคแฎแแ แ แแแแแแแ - แฃแแ แแแแ แจแแแกแฌแแ แแ แกแฃแ แแแแก แกแแฎแแแ แแ แขแแแ. แแ แฃแแแแแกแแแแแแก แจแแแแฎแแแแแจแ, แแฅแแแ แฃแแแ แจแแแงแแแแแ แแแฎแฃแ แฃแแ แ แแแกแขแ แแก แ แฌแแฃแแแแแแ แกแแแแแแแ Secret-แจแ แแ แแแแแแขแแ แแแกแแ แแแฃแแแแ แแแแแแจแ. แแฃแแแ แแแขแแก แแแแฃแแแแขแแชแแแจแ
Crash Loop แฃแแแ แแแแแ แแแ
แแฃแแแแแขแแกแ แฃแจแแแแก แจแแชแแแแแก CrashLoopBackOff
แแฃ แแแแขแแแแแ แ แแแ แแแแฌแงแแแ. แแก แฉแแแฃแแแแ แแ แฎแแแแ แแแจแแ, แ แแแแกแแช:
- แแแแแแแชแแแจแ แแ แแก แจแแชแแแแ, แ แแแแแแช แฎแแแก แฃแจแแแก แแแก แแแจแแแแแก;
- แแแแขแแแแแ แ
แแ แแกแฌแแ แแ แแแแคแแแฃแ แแ แแแฃแแ ; - Liveness แขแแกแขแ แซแแแแแ แแแแ แฏแแ แฉแแแแ แแ.
แแฅแแแ แฃแแแ แกแชแแแแ แแแแขแแแแแ แแแแ แแแ แแแแก แแแฎแแแแ แ, แ แแแ แแแแ แแแแแ แแแกแ แฌแแ แฃแแแขแแแแแแแก แแแแแแ. แแฃ แแฃแ แแแแแแจแ แฌแแแแแ แ แแฃแแแ, แ แแแแแ แแแแขแแแแแ แ แซแแแแแ แกแฌแ แแคแแ แแแแแแขแแแ แแแแ, แจแแแแซแแแแ แแแแแแงแแแแ แจแแแแแแ แแ แซแแแแแ:
kubectl logs <pod-name> --previous
แแก แแฉแแแแแแก แจแแชแแแแแก แจแแขแงแแแแแแแแแก แแแแขแแแแแ แแก แฌแแแ แแแแแ แแแชแแแแแ.
RunContainerError
แแก แจแแชแแแแ แฉแแแแแ, แ แแแแกแแช แแแแขแแแแแ แ แแแ แแแฃแจแแแแแก. แแก แจแแแกแแแแแแแ แแแแแแแชแแแก แแแจแแแแแแแ แแแแแแขแก. แแก แฉแแแฃแแแแ แแ แแแแแฌแแแฃแแแ แแ แแกแฌแแ แ แแแ แแแแขแ แแแแ, แแแแแแแแแ:
- แแ แแ แกแแแฃแแ แขแแแแก แแแแแแขแแแแแแก แแชแแแแแแ, แ แแแแ แแชแแ ConfigMap แแ Secrets;
- แแฎแแแแ แฌแแแแแฎแแแแ แขแแแแก แฌแแแแแฎแแ-แฉแแฌแแ แแก แกแแฎแแ แแแงแแแแแแก แแชแแแแแแ.
แแฃแแแ แแแ แแแ แแ แแก แจแแกแแคแแ แแกแ แแกแแแ แจแแชแแแแแแแก แแแกแแแแแแแแแแแแ kubectl describe pod <pod-name>
.
แแแแแแ แแแแแแแแจแแ
แจแแฅแแแแก แจแแแแแ, แแแแ แ แฉแแแ แแแแแแแ แแแแแจแ Pending
.
แ แแขแแ แฎแแแแ แแก?
แแฅ แแ แแก แจแแกแแซแแ แแแแแแแแ (แแแแ แแฃแแแ, แ แแ แแ แแคแแแ แแแ แแแ แแฃแจแแแแก):
- แแแแกแขแแ แก แแ แแฅแแก แกแแแแแ แแกแ แ แแกแฃแ แกแแแ, แ แแแแ แแชแแ แแแแฃแจแแแแแแก แกแแแซแแแแ แ แแ แแแฎแกแแแ แแแ, แแแแแก แแแกแแจแแแแแ.
- แแแแแฅแขแ แแแแแกแขแแแแ แแแฃแแแ แจแแกแแแแแแก แกแแฎแแแแ แกแแแ แชแแจแ
ResourceQuota
แแ pod แจแแฅแแแ แแแแแแฌแแแแก แกแแฎแแแแ แกแแแ แชแแก แแแแขแแก แแแฆแแ. - Pod แแแแแฃแแแ แแแแแแแแแ
PersistentVolumeClaim
.
แแ แจแแแแฎแแแแแจแ แ แแแแแแแแแแฃแแแ แแ แซแแแแแแก แแแแแงแแแแแ kubectl describe
แแ แจแแแแแฌแแแ แแแแงแแคแแแแแ Events
:
kubectl describe pod <pod name>
แแแแแแจแแ แแแฃแแ แจแแชแแแแแแแก แจแแแแฎแแแแแจแ ResourceQuotas
, แ แแแแแแแแแแฃแแแ แแแแกแขแแ แฃแแ แแฃแ แแแแแแแก แแแฎแแ แแ แซแแแแแแก แแแแแงแแแแแแ
kubectl get events --sort-by=.metadata.creationTimestamp
แขแแขแแแ แแแแ แแ แแ แแก
แแฃ แแแแ แฉแแแแแแแแแแ แ แแแแ แช Running
, แแแแ แแ แแ แแ แแก แแแแแแแ แแแแแจแ Ready
, แแแจแแแแก แแแกแ แแแแแงแแคแแแก แจแแแแฌแแแแแก (แแแแแงแแคแแแก แแแแแ) แแแ แชแฎแแแแ.
แ แแแแกแแช แแก แแแฎแแแแ, แแแแ แแ แฃแแแแจแแ แแแแ แกแแ แแแกแก แแ แแ แแแแแแแแแ แแแกแแ แขแ แแคแแแ. แแแแแงแแคแแแก แขแแกแขแแก แฌแแ แฃแแแขแแแแแแ แแแแแฌแแแฃแแแ แแแแแแแชแแแจแ แแ แกแแแฃแแ แแ แแแแแแแแแ. แแ แจแแแแฎแแแแแจแ, แจแแชแแแแแก แแแกแแซแแแแแ, แกแแญแแ แแ แแแแงแแคแแแแแแก แแแแแแแ Events
แแ แซแแแแแแก แแแแแแแแแแจแ kubectl describe
.
2. แกแแ แแแกแแก แแแแแแแกแขแแแ
แแฃ แฌแแแฌแแแ แฉแแแแแแแแแแ แ แแแแ แช Running
ะธ Ready
, แแแแ แแ แฏแแ แแแแแ แแ แแ แแก แแแกแฃแฎแ แแแแแแแชแแแแแ, แแฅแแแ แฃแแแ แจแแแแแฌแแแ แกแแ แแแกแแก แแแ แแแแขแ แแแ.
แกแแ แแแกแแแ แแแกแฃแฎแแกแแแแแแแแ แแ แแแ แขแ แแคแแแแก แแแ แจแ แฃแขแแแแชแแแแ, แแแแ แแขแแแแขแแแแก แแแฎแแแแแ. แแแแขแแ, แแแ แแแแ, แ แแช แฃแแแ แแแแแแแแ, แแ แแก แแแแก แจแแแแฌแแแแ, แแฃ แ แแแแแแ แแแแ แแฃแจแแแแก แกแแ แแแกแแแ. แแแแกแแแแแก แจแแแแซแแแแ แจแแแแแฌแแแ แกแแ แแแกแแก แแแแ แฌแแ แขแแแแแ:
kubectl describe service <service-name> | grep Endpoints
แแแแ แฌแแ แขแแแ แแ แแก แคแแ แแแก แแแแจแแแแแแแแแแก แฌแงแแแแ <IP-ะฐะดัะตั:ะฟะพัั>
, แแ แแแแแแฃแ แแ แแ แแกแแแ แฌแงแแแแ แฃแแแ แแงแแก แฌแแ แแแแแแแแแ แแแแแกแแแแแจแ (แแแฃ, แแแแแแฃแ แแ แแ แแแแ แแฃแจแแแแก แกแแ แแแกแแแ).
แแฃ แแแแงแแคแแแแแ Endpoins
แชแแ แแแแ, แจแแกแแซแแแแแแแ แแ แ แแแ แแแแขแ:
- แแ แแ แแก แกแฌแแ แ แแขแแแแขแแก แแฅแแแ แ แแแแแแ (แแแแแจแแแแ: แจแแแแแฌแแแ แกแฌแแ แแ แแ แแก แแฃ แแ แ แกแแฎแแแแ แแแแแแ แจแแ แฉแแฃแแ);
- แกแแแแฅแขแแ แจแ แแ แแก แจแแชแแแแ แกแแ แแแกแแก แแขแแแแขแแแจแ.
แแฃ แฎแแแแแ แกแแแแแแ แฌแแ แขแแแแแแก แฉแแแแแแแแแแก, แแแแ แแ แแแแแช แแแ แฌแแแแแแ แแแแแแแชแแแก, แแแจแแ แกแแแแ แแฃแแ แแแแแแจแแแ แแ แแก แจแแชแแแแ targetPort
แแแแกแแฎแฃแ แแแแก แแฆแฌแแ แแจแ.
แ แแแแ แจแแแแแแฌแแแ แกแแ แแแกแแก แคแฃแแฅแชแแแแแ แแแ?
แกแแ แแแกแแก แขแแแแก แแแฃแฎแแแแแแ, แจแแแแซแแแแ แแแแแแงแแแแ แแ แซแแแแแ kubectl port-forward
แแแกแแแ แแแกแแแแแจแแ แแแแแ:
kubectl port-forward service/<service-name> 3000:80
ะะดะตัั:
-
<service-name>
- แกแแ แแแกแแก แแแกแแฎแแแแแ; - 3000 แแ แแก แแแ แขแ, แ แแแแแกแแช แฎแกแแแ แแแแแแฃแขแแ แแ;
- 80 - แแแ แขแ แกแแ แแแกแแก แแฎแแ แแก.
3. แจแแแแกแแแแก แแแแแแแกแขแแแ
แแฃ แแฅแแแแ แฌแแแแแแฎแ, แแแจแแ:
- แฌแแแฌแแแ แฉแแแแแแแแแแ แ แแแแ แช
Running
ะธReady
; - แกแแ แแแกแ แฌแแ แแแขแแแแ แแแแฌแแแแแก แขแ แแคแแแก แแแแแแจแ.
แแฃแแชแ, แแฅแแแ แฏแแ แแแแแ แแแ แฌแแแแแแ แแแก.
แแก แแแจแแแแก, แ แแ Ingress แแแแขแ แแแแ แ แกแแแแ แแฃแแแ แแ แแ แแก แกแฌแแ แแ แแแแคแแแฃแ แแ แแแฃแแ. แแแแแแแแ Ingress แแแแขแ แแแแ แ แแ แแก แแแกแแแ แแฎแแ แแก แแแแแแแแแขแ แแแแกแขแแ แจแ, แแ แกแแแแแก แแแแแ แแแแก แกแฎแแแแแกแฎแแ แแแแแแ แแแกแ แขแแแแก แแแฎแแแแแ.
แแแแ แแ แกแแแแ Ingress-แแก แแแแคแแแฃแ แแชแแแกแแแแก แกแแแชแแแแฃแ แแแกแขแ แฃแแแแขแแแก แแแแแ แแแแ, แจแแแแซแแแแ แแแแแแแแ แ แแฆแแช แซแแแแแ แแแ แขแแแ. Ingress แแงแแแแแก serviceName
ะธ servicePort
แกแแ แแแกแแแ แแแกแแแแแจแแ แแแแแ. แแฅแแแ แฃแแแ แจแแแแแฌแแแ, แแ แแก แแฃ แแ แ แแกแแแ แกแฌแแ แแ แแแแคแแแฃแ แแ แแแฃแแ. แแแแก แแแแแแแแ แจแแแแซแแแแ แแ แซแแแแแแก แแแแแงแแแแแแ:
kubectl describe ingress <ingress-name>
แแฃ แกแแแขแ Backend
แชแแ แแแแแ, แแแแคแแแฃแ แแชแแแก แจแแชแแแแแก แแแแ แแแแแแแแแ. แแฃ แกแแ แแแแ แแ แกแแกแขแแแ แแแแแแแแ, แแแแ แแ แแแแแแแชแแ แฏแแ แแแแแ แแแฃแฌแแแแแแแแ, แแแจแแ แแ แแแแแแ แจแแแซแแแแ แแแแแแจแแ แแแฃแแ แแงแแก:
- แฌแแแแแแก แแแ แแแแขแ แแแแก แจแแกแแแ แกแแฏแแ แ แแแขแแ แแแขแแแแ;
- แแแแกแขแแ แฃแแ แฎแแแแแกแแฌแแแแแแแแก แแแ แแแแขแ แแแ แกแแฏแแ แ แแแขแแ แแแขแแแแ.
แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแแแ แแแแแแจแแ แแแฃแแ แแ แแแแแแแแแก แแแแแขแแคแแชแแ แแแ แจแแแแซแแแแ แฃแจแฃแแแแ Ingress pod-แแแ แแแแแแจแแ แแแแ. แแแแกแแแแแก แฏแแ แแแแแแ Ingress Controller pod (แแก แจแแแซแแแแ แแงแแก แกแฎแแ แกแแฎแแแแแแก แกแแแ แชแแจแ):
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS
kube-system coredns-5644d7b6d9-jn7cq 1/1 Running
kube-system etcd-minikube 1/1 Running
kube-system kube-apiserver-minikube 1/1 Running
kube-system kube-controller-manager-minikube 1/1 Running
kube-system kube-proxy-zvf2h 1/1 Running
kube-system kube-scheduler-minikube 1/1 Running
kube-system nginx-ingress-controller-6fc5bcc 1/1 Running
แแแแแแงแแแแ แแ แซแแแแแ describe
แแแ แขแแก แแแกแแงแแแแแแแ:
kubectl describe pod nginx-ingress-controller-6fc5bcc
--namespace kube-system
| grep Ports
แแแแแแแก, แแแฃแแแแจแแ แแแ แแแแก:
kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system
แแฎแแ แแแแแแฃแขแแ แแ 3000 แแแ แขแแก แงแแแแ แแแแฎแแแแ แแแแแแแกแแแแ แแแแแ แแแแแก 80 แแแ แขแแ.
แแฃแจแแแแก แแฎแแ?
- แแฃ แแ, แแแจแแ แแ แแแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแจแแ. แแฃแชแแแแแแแแ แแฃแกแขแแ แแแแ แแแแก, แแฃ แ แแแแ แแแแแแ แแแแ แขแ แแคแแแ แแแแกแขแแ แจแ.
- แแฃ แแ แ, แแแจแแ แแ แแแแแแ แแ แแก Ingress แแแแขแ แแแแ แแแ.
แแฃ แแแ แแฎแแ แฎแแแ Ingress แแแแขแ แแแแ แแก แแฃแจแแแแแก, แแฅแแแ แแแแแฌแแแ แแแกแ แแแแแ แแแ.
Ingress แแแแขแ แแแแ แแแแก แแ แแแแแ แกแแฎแแแแ แแ แกแแแแแก. แงแแแแแแ แแแแฃแแแ แฃแแแ Nginx, HAProxy, Traefik แแ แ.แจ. (แแแแแขแแแแแ แแแคแแ แแแชแแแกแแแแก แแ แกแแแฃแแ แแแแแฌแงแแแขแแแแแแแแก แจแแกแแฎแแ แแฎ
Ingress Nginx แแแแขแ แแแแ แแก แแแแแ แแแ
Ingress-nginx แแ แแแฅแขแก แแคแแชแแแแฃแ แ แฐแงแแแก kubectl ingress-nginx
แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก:
- แแฃแ แแแแแแแก, แแแฅแแแแแแแก, แกแแ แแแคแแแแขแแแแก แแ แ.แจ. แแแแแแแ;
- แแแแจแแ แแแ Ingress-แแแ;
- แแแแแแแแ แ แแแแคแแแฃแ แแชแแแก แจแแกแฌแแแแ.
แจแแแแแแ แกแแแ แแ แซแแแแแ แแแแแฎแแแ แแแแ แแแแจแ:
-
kubectl ingress-nginx lint
- แแแแฌแแแแกnginx.conf
; -
kubectl ingress-nginx backend
โ แแแแแแแก แฃแแแแ แแแฌแแแก (แแกแแแแกแkubectl describe ingress <ingress-name>
); -
kubectl ingress-nginx logs
- แแแแฌแแแแก แแฃแ แแแแแแก.
แแแแแแแแแกแฌแแแแ, แ แแ แแแแแแ แ แจแแแแฎแแแแแจแ แจแแแซแแแแ แแแแญแแ แแแ แแ แแจแแก แแแแแงแแแแแแ Ingress แแแแขแ แแแแ แแก แกแฌแแ แ แกแแฎแแแแแแก แกแแแ แชแแก แแแแแแแแ --namespace <name>
.
แ แแแแฃแแ
Kubernetes-แแก แแ แแแแแแแแแก แแแแแแ แแแ แจแแแซแแแแ แ แแฃแแ แแงแแก, แแฃ แแ แแชแแ แกแแแแแ แแแแฌแงแแ. แแฅแแแ แงแแแแแแแแก แฃแแแ แแแฃแแแแ แแ แแแแแแแก แฅแแแแแแแ แแแแแ: แแแแฌแงแแ แแแแแแแ แแ แจแแแแแ แแแแแแแ แกแแ แแแกแแ แแ Ingress-แแ. แแ แกแขแแขแแแจแ แแฆแฌแแ แแแ แแแแแ แแแแก แขแแฅแแแแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แกแฎแแ แแแแแฅแขแแแแ, แ แแแแ แแชแแ:
- แฃแแแฅแแแแ แฏแแแกแ แแ CronJobs;
- StatefulSets แแ DaemonSets.
แแแแแแแ แแแแก แแแแแแฎแแขแแ
PS แแแแ แแแแแแแกแแแ
แแกแแแ แฌแแแแแแฎแแ แฉแแแแก แแแแแแ:
- ยซ
kubectl-debug แแแแแแแขแ Kubernetes pods-แจแ แแแแแ แแแแกแแแแก "; - ยซ
6 แแแกแแ แแแแ แกแแกแขแแแแก แจแแชแแแแ Kubernetes-แแก แแฃแจแแแแแจแ [แแ แแแแ แแแแแฌแงแแแขแ] "; - ยซ
แแแกแขแ แฃแแแแขแแแ Kubernetes-แแ แแแจแแแแฃแแ แแแแแแแชแแแแแก แแแแแแแแแ แแแแกแแแแก "; - ยซ
6 แแ แแฅแขแแแฃแแ แแแแแแ แฉแแแแ SRE แงแแแแแแฆแแฃแ แ แชแฎแแแ แแแแแแ ".
แฌแงแแ แ: www.habr.com