묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
server-side옵션에 대해 궁금합니다.
annotations: kubectl.kubernetes.io/last-applied-configuration 부분을 kubectl에서 내용을 업데이트해준다 .kubernetes에서 알아서 내용들을 업데이트 해준게 아니라. 클라이언트가 동시에 리소스에 수정하게 될때 충돌을 관리하는데 유리하다. 그래서 server-side옵션을 주면 서버가 주도해서 이 리소스에 대한 모든 내용을 수정관리 해주기 때문에 리소스에 대한 충돌이 일어나지 않는다. . 모든 리소스가 이렇게 server-side로 관리하면 kubernetes가 부담되기 때문에 클라이언트가 이런내용들은 알아서 계산해서 저장 할때 같이 반영한다.이렇게 말씀하셨는데요...저 annotation부분의 내용은 실제 아래 리소스 yaml내용을 반영을 했다 client가~~~ 이런의미인가요?근데 저렇게 annotation 바로 밑에 kubectl.kubernetes.io/last-applied-configuration 항목에 저 내용들이 들어간들 무슨 의미가 있는지 궁금해요..실제 필요한건..그밑에 name,namespace 나 spec 이하부분들이 중요한거 아닌가요?거기에 추가로 server-side로 하면 client다른 수정과 충돌을 피한다고 했는데실무에서 운영인데 함부로 누가 같은 리소스를 따로 공유도 없이 수정할려고 들까요? 그런 상황이 있을리 만무하지 않나싶어요...그래서 결론은 client에서 누군가 수정을 동일리소스에 할거 같아서 server-side옵션을 주는건 발생하기 희박할거 같단 생각이 들고.그리고 yaml안에 last-applied-configuration이라 내용의 쓰임이...단순이 그냥 정보성정도아닌가 여쭤봅니다. 저 값들로 뭔가 하지않을것 같아서요
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
containerd버전관련문의드려요
강사님이 언급하신 말씀중에리눅스버전을 설치를 하면서 연결되어 있는 레파지토리의 containerd 버전을 보면 이 버전이 최상위버전으로 레파지토리에 올라가 있다.이렇게 하셧는데...같은 rocky버전일텐데..yum --showduplicates list containerd.io또는dnf --showduplicates list containerd.io이 명령어로 확인하셨을가요?저는 해보면 32버전까지만 보여서요 containerd.io.x86_64 1.6.32-3.1.el8 docker-ce-stable
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
쿠버네티스에 만든 앱 그라파나에서 확인
[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다] 영상대로 쿠버네티스에서 파드 생성해서 그라파나로 확인하려고 하여 파드 생성 후 그라파나에서 데이터가 안물려 여기저기 찾다 restart chronyd 로 해결하고 그래프가 올라오는걸 확인했습니다 그 후 explore에 가서 로키로 로그를 보려고 하는데 제가 만든 앱이 없는데 이경우엔 어떻게 해결할까요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
Operator패턴에 대해 여쭤봅니다.
오퍼레이터 역할을 하는 컴포넌트를 개발을 해서 같이 배포를 시켜요---> 이부분은 첨부한 이미지에서 삼각형으로 deployment전체를 얘기하시는거죠? 거기에 operator는 그림에 하나만 괄호로 표시되어있는데 옆에 있는 다른pod도 같은 Operator인가요? 또 한가지는 오퍼레이터는 사용자가 CRD를 생성을 했을 때 watch로 감지를 받거나 필요시에 get으로 조회도 해서 CRD의 속성 값들을 확인하고 그 속성에 따라 secrets를변경을 합니다 ---> watch로 감지를 받는다(?)는데 저는 이 말자체가 와닿지 않아요 ㅠㅠ. 어떤의미인지~~그리고 crd생성 표시옆에 Opt라는게 CRD에서 갑자기 나와서 실체가 뭔가요? 그리고 이게 그림에서 Pod두개를 감시한다는건가요? 그림에서 표시된 Pod Operator 하나만을 감시한다는 뜻인가요?Opt라는게 뭔지요? Opt가 operator 를 감시를 하고 또 반대로 Operator에서 역으로 CRD 속성값을 확인하는건가요? 설령 crd속성값을 확인하는게 실제 값이 있는게 아니고 crd에는 속성정의만 했을뿐인데..속성값을 확인해서 어떤용도 어떻게 한다는건지도 이해가 안가네요 ㅠ 그림에서도 operator pod가 sercret를 변경이라고 표시되어있는데...crd 를 확인하면 그냥 속성 정의만 되어있는데...secret의 실제값은 어디에서 확인해서 변경한다는걸까요? 속성이름만을 변경한다는걸까요? secret에 변경하고자 하는 실제값은 어디있는걸까요?좀 헷갈립니다.^^
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
CRD내용중에
CRD 패턴 말씀중에 이해가 필요해서 질문올려봅니다. 강의중 아래와 같이 말씀하셨습니다.crd를 보고 로직을 쿠버 개발자가 만들어 리소스를 생성하고 crd는 별도로 또 devops엔지니어가 crd를 만들도록 업무가 구별되어있나요?또 crd를 보고 쿠버 개발자가 한다고 하셨는데 또 반대로 구조를 만들어놓으면 거기에 맞게 crd를 devops엔지니어가 만든다는게...뭐가 뭔지 이해가 안갑니다.. ㅠㅠ 뭐가 우선인지~~ 그리고 보통 쿠버 운영하는사람이 다 하지 않나요? crd 만든사람 따로 쿠버 리소스 만드는사람 따로 있나요?myDatabase를 조회해서 안에 있는 속성을 보고 여러 리소스들을생성시키는 로직이 있어야 되는데 이건 직접 구현이 필요한 부분이고요 그래서 이렇게Kubernetes 개발자가 이런 구조를 만들어 놓으면 DevOps 엔지니어 엔지니어는 이 CRD를만들어서 쉽게 배포를 할 수가 있게 돼요
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
섹션3 16번 강의에서 질문있습니다
ImagePullPolicy: IfNotPresent를 설정했지만 여전히 NAME READY STATUS RESTARTS AGEspring-pod 0/1 ErrImageNeverPull 0 59s라고 나옵니다.제가 찾아보니 docker 이미지는 데몬 에서 생성되었고, Kubernetes의 런타임이 자기 저장소에서 spring-server 이미지를 찾을수없다고 나오는데 이럴때 어떻게 해결해야하나요?
-
미해결대세는 쿠버네티스 (초급~중급편)
worker node1 접속 후 토큰 붙여놓기 후
master 에서 join.sh 내용출력이 안됩니다.worker node1 접속 후 토큰 붙여놓기 후 아래와 같이 출력됩니다. [root@k8s-worker1 ~]# kubeadm join 192.168.56.30:6443 --token fdfwp6.t3ccgvnu2mdzdilt --discovery-token-ca-cert-hash sha256:fc087710b4581cea2a70d62948902e219b9d60ef8767749dc8595118fb5bdf68[preflight] Running pre-flight checkserror execution phase preflight: couldn't validate the identity of the API Server: configmaps "cluster-info" is forbidden: User "system:anonymous" cannot get resource "configmaps" in API group "" in the namespace "kube-public"To see the stack trace of this error execute with --v=5 or higher
-
미해결대세는 쿠버네티스 (초급~중급편)
csi-node-driver 클러스터 노드 재부팅후 CrashLoopBackOff
https://cafe.naver.com/kubeops/495에 있는 설치 메뉴얼로 설치를 하였습니다성공적으로 설치를 하였고 모든 파드가 running 상태인걸 확인 하였습니다 그후 클러스터,노드 종료후 재시작 하였을시 아래와 같이 csi-node 파드들이 정상적으로 실행이 되지 않습니다. 로그는 아래와 같이 나옵니다[root@k8s-master ~]# k logs csi-node-driver-tjw8x -n calico-system Defaulted container "calico-csi" out of: calico-csi, csi-node-driver-registrarexec /usr/local/bin/csi-driver: exec format error 클러스터랑 노드를 재시작시 터미널에서 종료한것이 아닌 비추얼박스 ui에서 종료를 하였는데 터미널에서 shutdown을 하여야 하는것인가요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
DaemonSet 내용중에
Prometheus와 같은 서버역할을 하는 컴포넌트들은 사전에 이미 worker노드IP를 이미 알고 있는 상태라서DaemonSet에 설정된 containerPort 를 보고 각 노드별로 설치된 Pod를 호출해서 CPU와 메모리 데이터를 수집하는것이다.라고 하셨느데요서버역할을 한다고 표현하신게 무슨 의미인지 궁금합니다.그리고 Promethues가 저렇게 리소스 정보를 수집하기위해 별도로 저런 DaemonSet yml형태로 DaemonSet을 생성해야 하나요? 아니면 promethues 설치 패키지 안에 그런 Daemonset리소스(hostNework:true)를 생성하는게 포함되어있는건가요?
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
ECR에서 이미지를 받아오지 못하고있습니다
ECR에서 이미지를 못받아 오는거같습니다... 무슨 문제일까요..NAME READY STATUS RESTARTS AGE spring-deployment-6fdbd9cd87-j8ljj 0/1 ErrImagePull 0 6m1s spring-deployment-6fdbd9cd87-mchqp 0/1 ErrImagePull 0 6m1s spring-deployment-6fdbd9cd87-tp5x6 0/1 ErrImagePull 0 6m1sError from server (BadRequest): container "spring-container" in pod "spring-deployment-6fdbd9cd87-j8ljj" is waiting to start: trying and failing to pull imageEvents: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m7s default-scheduler Successfully assigned default/spring-deployment-6fdbd9cd87-j8ljj to ip Normal Pulling 70s (x5 over 4m6s) kubelet Pulling image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0" Warning Failed 70s (x5 over 4m6s) kubelet Failed to pull image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0": rpc error: code = NotFound desc = failed to pull and unpack image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0": no match for platform in manifest: not found Warning Failed 70s (x5 over 4m6s) kubelet Error: ErrImagePull Normal BackOff 10s (x15 over 4m5s) kubelet Back-off pulling image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0" Warning Failed 10s (x15 over 4m5s) kubelet Error: ImagePullBackOff 아키텍처 불일치 문제 같은데ARM64용 이미지 빌드 및 푸시를 해서 해결하려니Dockerfile이 없다고ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory꼬리에 꼬리를 무는게 뭔가 잘못된방향으로 가는거 같아서 도움이 필요합니다..
-
미해결대세는 쿠버네티스 (초급~중급편)
Readiness probe warning
[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) 안녕하세요.k8s pod에서 Readiness probe warning: Probe terminated redirects, Response body:xxxprobewarning이 나오는데 이런 경우는 어떤이유일까요??혹시 response code가 200번대 300번가 아닌경우만 실패로 본다고 알고있는데 300이면 실패는 아니지만 warning으로 나타날수있는걸까요?
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
강의내용설명중 이해안가는부분이 있습니다.
15분 정도 강의내용중에 "StatefulSet 경우는 스토리지 클래스가 먼저 만들어져 있는 상태에서 StatefulSets에 이 VolumeClaimTemplage이라는 속성에storageClass이름을 넣으면 이렇게 각각의 파드들이 생길때마다 PVC와 PV가 만들어지고 볼륨이 만들어지고 이 구성들이복잡해지는데 VolumeClaimTemplage사용하면 이렇게 storageclass가 있으면 statefulSet에서 사용만하면되서 구성방법은더 쉬워졌다."이말씀이 있습니다.같은 말인거 같은데요...전자 후자 모두 VolumeClaimTemplage 사용하는데 앞 내용에서는 복잡하고 뒤에서는 쉬워졌다고 말씀하시니 헷갈립니다.똑같이 VolumeClaimTemplage 사용하는 내용같은데 말이죠~
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
tls ingress 기본값 설정
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true"tls 적용된 ingress는 redirect 기본값이 true라고 적어주셨는데kubectl get ingress -n anotherclass-322 portal-3222 -o yaml 로 보면 안나오는데위에 기본값은 원래 있다는 의미로 저렇게 적어만 주셨던걸까요? 그리고 portal.com:31443/hostname으로 접속하면 페이지가 열리는데 portal.com:31080/hostname 요청하면 https로 리다이렉션 되니 페이지가 열려야 하는거죠?그런데 노드포트가 아니니 안열리는것 뿐인거고...실제는 portal.com:31443/hostname이거 요청했을때와 똑같은 페이지가 열려야 하는거죠?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
cicd Vagrant 파일 다운로드 404 에러가 발생합니다.
[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)6. 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!curl -O https://raw.githubusercontent.com/k8s-1pro/install/main/ground/cicd-server/vagrant-2.4.3/Vagrantfile nano Vagrantfile404: Not Found파일 안에 위와 같이 적혀 있습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
exec /usr/local/tomcat/bin/catalina.sh: invalid argument 오류 해별법(공유)
저도 m1 mac 인데 제공해주신 이미지로 계속해서 exec /usr/local/tomcat/bin/catalina.sh: invalid argument해당 오류가 발생해서 직접 이미지(ubuntu:22.04 기반)를 만들어서 해결했습니다. 저랑 같으신분은 참고하시길 바랍니다.이미지는 제 허브에 올려놔서 아래 명령어로 실행시키시고 강의내용 따라가면 저 같은 경우에는 해결되었습니다.(허브 링크)강의 내용이랑 다른 점은 ssh 접속 비밀번호가 다르고 루트 디렉토리에 기본 Dockerfile이 없습니다. (직접 만드시면 됩니다)ssh 접속 root 패스워드 : rootpasswordjenkins ssh 비밀번호 설정도 변경하셔야합니다.(mac m1만 해당 m2,m3... 는 모르겠습니다.)docker run --privileged --name ssh-docker-server -itd \ -p 10022:22 \ -p 8081:8080 \ -e container=docker \ -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ --cgroupns=host \ chaewonjeong/ssh-docker-server:latest \ /usr/sbin/init
-
해결됨CloudNet@ - Amazon EKS 기본 강의
ebs-dp-app 같은 centos 이미지 pod를 생성하면 오류가 발생합니다.
다른 이미지는 문제가 없는데 centos 이미지를 사용하는 pod를 생성할 때 아래와 비슷한 오류가 발생합니다.NAME READY STATUS RESTARTS AGEtest 0/1 ErrImagePull 0 37s"Error from server (BadRequest): container "test" in pod "test" is waiting to start: trying and failing to pull image"혹시 해결 가능한 방법이 있을까요?
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
tls인증서 관련시
반면, nginx에 인증서를 넣을때는 이런 도메인이름( DNS Name : *.com ) 을 사면 여러 어플리케이션에 적욜수 있는데 이때는 비용이 더든다는 단점!이 있다고 말씀하셨는데요 nginx에 인증서를 넣을때 말고 ingress에 저런 도메인을 넣을수는 없다는 얘긴가요? nginx에 인증서 넣을때 *.com만 넣을수있는것처럼 반면, 말씀하셔서....헷갈려서 여쭤봅니다. 하나의 명확한 도메인은 ingress에만 넣을수 있다는것이죠? * 로 만든 여러 인증서는 nginx에만 넣을수있고, 또 사설만 가능하구요?
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
노트포트타입서비스 만들때 관한 설명
모든 노드에 포트가 만들어진다.이포트에 들어온 트래픽은 각각의 워커노드에 있는 iptables로 들어간다고 하셨는데요.동시에 각각 들어간다는 말이 아니고 특정 워커노드로 들어가서 그 노드의 iptables로 들어가는거지요? 그런데 kube-proxy라 다른 노드의 있는 파드로 라우팅을 해준다고 했는데 그럼 iptables와 kube-proxy역할이 각각 다른건가요? iptables는 로드밸런싱역할을 해주는것인가요?
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
노드 cpu사용량
매번 새로운 job실행시마다 cpu가 100% 차고 그래서테스트가 순조롭게 진행되지 않느데느려질때보면 cpu가 99%찹니다.해결방법이 있을까요?;;
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
m2 mac: ansible-server에서 container 실행 안됨
[root@ab1033644112 ~]# docker logs 239c5ab92b48 exec /usr/local/bin/dockerd-entrypoint.sh: invalid argument가장 최근 질문에 올라와있는 방식대로 해도 안됨.그냥 영상만 보고 넘어가려 했는데 다음 강의에서 hub에 push해서 사용해보는 실습이 있네요?애초에 여기서 안되는데.. 강사님이 올려두신 파일 그대로 사용한겁니다.- hosts: all # become: true tasks: - name: stop current running container command: docker stop my_cicd_project ignore_errors: yes - name: remove stopped cotainer command: docker rm my_cicd_project ignore_errors: yes - name: remove current docker image command: docker rmi cicd-project-ansible ignore_errors: yes - name: build a docker image with deployed war file command: docker build -t cicd-project-ansible -f Dockerfile . - name: create a container using cicd-project-ansible image command: docker run -d --name my_cicd_project -p 8080:8080 cicd-project-ansible