조훈 님의 책 컨테이너를 다루는 표준 아키텍처. 쿠버네티스 로 실습중입니다.
736
작성한 질문수 1
안녕하세요 고수님들
현재 쿠버네티스 공부를 하고있는데 막히는 부분이 있어서 고수 선배님들의 도움을 받고자 질문올립니다.
현재 조훈님의 책으로 google gcp에 vm 3대를 (마스터1대, 워커2대)로 학습환경을 만들어 진행중입니다.
잘 공부중인데 막히는 부분이 ingress-nginx 컨트롤러 서비스를 구성하는데 잘 안되어 질문올려봅니다.
현상
root@k8s-m:/home/rsa-key-20220321# kubectl apply -f /home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2/ingress-nginx.yaml
namespace/ingress-nginx created
configmap/nginx-configuration created
configmap/tcp-services created
configmap/udp-services created
serviceaccount/nginx-ingress-serviceaccount created
deployment.apps/nginx-ingress-controller created
limitrange/ingress-nginx created
unable to recognize "/home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2/ingress-nginx.yaml": no matches for kind "ClusterRole" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "/home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2/ingress-nginx.yaml": no matches for kind "Role" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "/home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2/ingress-nginx.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "/home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2/ingress-nginx.yaml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
root@k8s-m:/home/rsa-key-20220321# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-668959df88-8hmt6 0/1 CrashLoopBackOff 35 (6s ago) 101m
root@k8s-m:/home/rsa-key-20220321# kubectl get pod -n ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-668959df88-8hmt6 0/1 CrashLoopBackOff 35 (25s ago) 101m
root@k8s-m:/home/rsa-key-20220321# kubectl describe pod nginx-ingress-controller-668959df88-8hmt6 -n ingress-nginx
Name: nginx-ingress-controller-668959df88-8hmt6
Namespace: ingress-nginx
Priority: 0
Node: k8s-w3/10.178.0.5
Start Time: Wed, 30 Mar 2022 06:07:05 +0000
Labels: app.kubernetes.io/name=ingress-nginx
app.kubernetes.io/part-of=ingress-nginx
pod-template-hash=668959df88
Annotations: cni.projectcalico.org/containerID: fab04986c5e06c07191e376ab04b5ebc7c66ba3a92e4ee393c6dfa01bedbb38d
cni.projectcalico.org/podIP: 10.233.84.34/32
cni.projectcalico.org/podIPs: 10.233.84.34/32
kubernetes.io/limit-ranger: LimitRanger plugin set: cpu, memory request for container nginx-ingress-controller
prometheus.io/port: 10254
prometheus.io/scrape: true
Status: Running
IP: 10.233.84.34
IPs:
IP: 10.233.84.34
Controlled By: ReplicaSet/nginx-ingress-controller-668959df88
Containers:
nginx-ingress-controller:
Container ID: containerd://208fdba282a51fc6b5f3b5e2fbb0e660e0f99622547e1ce8ee63fe834b5e7571
Image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
Image ID: quay.io/kubernetes-ingress-controller/nginx-ingress-controller@sha256:b312c91d0de688a21075078982b5e3a48b13b46eda4df743317d3059fc3ca0d9
Ports: 80/TCP, 443/TCP
Host Ports: 0/TCP, 0/TCP
Args:
/nginx-ingress-controller
--configmap=$(POD_NAMESPACE)/nginx-configuration
--tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
--udp-services-configmap=$(POD_NAMESPACE)/udp-services
--publish-service=$(POD_NAMESPACE)/ingress-nginx
--annotations-prefix=nginx.ingress.kubernetes.io
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Wed, 30 Mar 2022 07:47:25 +0000
Finished: Wed, 30 Mar 2022 07:48:05 +0000
Ready: False
Restart Count: 35
Requests:
cpu: 100m
memory: 90Mi
Liveness: http-get http://:10254/healthz delay=10s timeout=10s period=10s #success=1 #failure=3
Readiness: http-get http://:10254/healthz delay=0s timeout=10s period=10s #success=1 #failure=3
Environment:
POD_NAME: nginx-ingress-controller-668959df88-8hmt6 (v1:metadata.name)
POD_NAMESPACE: ingress-nginx (v1:metadata.namespace)
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-6f8wg (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
kube-api-access-6f8wg:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: kubernetes.io/os=linux
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Started 46m (x22 over 101m) kubelet Started container nginx-ingress-controller
Warning DNSConfigForming 6m34s (x459 over 101m) kubelet Search Line limits were exceeded, some search paths have been omitted, the applied search line is: ingress-nginx.svc.cluster.local svc.cluster.local cluster.local default.svc.cluster.local asia-northeast3-a.c.master-plane-344801.internal c.master-plane-344801.internal
Warning Unhealthy 92s (x247 over 101m) kubelet Readiness probe failed: HTTP probe failed with statuscode: 500
root@k8s-m:/home/rsa-key-20220321# kubectl apply -f /home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2/ingress-config.yaml
error: error validating "/home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2/ingress-config.yaml": error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend.service.port): invalid type for io.k8s.api.networking.v1.ServiceBackendPort: got "string", expected "map", ValidationError(Ingress.spec.rules[0].http.paths[1].backend.service.port): invalid type for io.k8s.api.networking.v1.ServiceBackendPort: got "string", expected "map", ValidationError(Ingress.spec.rules[0].http.paths[2].backend.service.port): invalid type for io.k8s.api.networking.v1.ServiceBackendPort: got "integer", expected "map"]; if you choose to ignore these errors, turn validation off with --validate=false
ㅠㅠ 초보이다 보니 너무 힘들어서 도움 부탁드립니다.
미리 감사드립니다.
답변 2
0
nginx 인그레스 컨트롤러의 파드가 배포되었는지 확인하면 안되고있네요
root@k8s-m:/home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-668959df88-5s9xd 0/1 Pending 0 3m6s
describe로 확인
root@k8s-m:/home/rsa-key-20220321/_Book_k8sInfra/ch3/3.3.2# kubectl describe pod nginx-ingress-controller-668959df88-5s9xd -n ingress-nginx
Name: nginx-ingress-controller-668959df88-5s9xd
Namespace: ingress-nginx
Priority: 0
Node: <none>
Labels: app.kubernetes.io/name=ingress-nginx
app.kubernetes.io/part-of=ingress-nginx
pod-template-hash=668959df88
Annotations: kubernetes.io/limit-ranger: LimitRanger plugin set: cpu, memory request for container nginx-ingress-controller
prometheus.io/port: 10254
prometheus.io/scrape: true
Status: Pending
IP:
IPs: <none>
Controlled By: ReplicaSet/nginx-ingress-controller-668959df88
Containers:
nginx-ingress-controller:
Image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
Ports: 80/TCP, 443/TCP
Host Ports: 0/TCP, 0/TCP
Args:
/nginx-ingress-controller
--configmap=$(POD_NAMESPACE)/nginx-configuration
--tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
--udp-services-configmap=$(POD_NAMESPACE)/udp-services
--publish-service=$(POD_NAMESPACE)/ingress-nginx
--annotations-prefix=nginx.ingress.kubernetes.io
Requests:
cpu: 100m
memory: 90Mi
Liveness: http-get http://:10254/healthz delay=10s timeout=10s period=10s #success=1 #failure=3
Readiness: http-get http://:10254/healthz delay=0s timeout=10s period=10s #success=1 #failure=3
Environment:
POD_NAME: nginx-ingress-controller-668959df88-5s9xd (v1:metadata.name)
POD_NAMESPACE: ingress-nginx (v1:metadata.namespace)
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-kvcht (ro)
Conditions:
Type Status
PodScheduled False
Volumes:
kube-api-access-kvcht:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: kubernetes.io/os=linux
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 4m54s default-scheduler 0/3 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 2 node(s) had taint {node.kubernetes.io/disk-pressure: }, that the pod didn't tolerate.
Warning FailedScheduling 2m43s (x1 over 3m43s) default-scheduler 0/3 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 2 node(s) had taint {node.kubernetes.io/disk-pressure: }, that the pod didn't tolerate.
0
일단 ingress-nginx.yaml 파일에서 "rbac.authorization.k8s.io/v1beta1 와같이 v1beta1을 v1으로
모두변경 했습니다.
따라서 아래의 에러는 발생안함
unable to recognize "ingress-nginx.yaml": no matches for kind "ClusterRole" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "ingress-nginx.yaml": no matches for kind "Role" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "ingress-nginx.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "ingress-nginx.yaml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
[📌문제풀이] Ingress에서 Gateway로 전환하기: gatewayclass 조회 안됨
0
48
2
이거 지금 부터 들어도 괜찮을까요 ?? 시간이 꽤지난거같은데 .. 뭐 최신하고 아에 안맞을까요 .
0
41
1
환경설정 스크립트에서 storageclass가 생성되지 않습니다.
0
51
2
pod kubetm/app 에서 image를 갑자기 못가져 오는거 같습니다.
1
48
2
3. Node Schedule 중 pod-5가 마스터 노드에 배치됩니다.
1
54
2
실제 시험에서 링크
1
55
1
volume hostpath의 강의에 관해 질문이 있습니다.
1
41
2
그라파나에서 대시보드 import 실패
1
67
2
VM 내 k8s에 접속하는 이유와 방식 문의
1
43
1
image pull 에러
1
52
2
영상오류
1
64
1
NetworkPolicy에서 NamespaceSelector 설정 관련
0
59
1
동영상이상여부
0
45
1
혹시 다음 강의는 언제쯤 나올까요?
0
50
1
컨트롤러
1
77
2
카페 접근 권한이 없습니다.
1
76
2
네임스페이스+파드
0
78
3
강의영상 과 자료
0
88
2
IP 가 어딨나요?
1
76
2
설치 문제 없는건가요?
1
63
1
xshell 접속오류
1
79
2
kubectl exec 에러가 발생해서 문의드립니다.
0
107
3
3강 시험환경 설명 및 강의실습에 대한 가이드에 문제풀이 영상이 맞나요?
1
90
3
카페에 업데이트 해주신 내용 관련 문의
0
85
1





