묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
폐쇄망(offline)환경 쿠버네티스 구축 문의
안녕하세요,강의를 열심히 수강하고 있는 수강생입니다.폐쇄망(Offline) PC 에서 동일한 환경을 구축하고자 하였으나,vagrant에서 부터 막혔습니다.인터넷이 되는 PC에서 수동으로 옮겨 문제가 없을거라 생각했는데, 하나하나 문제가 발생하고 있습니다.오프라인으로 환경을 구성하려면 수동으로 vagrant file에 있는 패키지들을 다운받아서 옮겨야 하나요?오프라인 환경으로 구축하는 수강생도 많을거라 생각하여, 이에 질문드립니다!추가로, vagrant file을 이해하고 넘어가는게 좋겠죠?!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
빌드된 결과물..이 없어요
my-third-pipeline에서메이븐으로 빌드한 결과물은 왜 작업공간이 안나올까요?이게 보이질 않네요 ㅠ
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
exec command 콘솔 아웃풋..
jenkins "Send build artifacts over SSH" - "exec command " 에서 출력을 하면 왜 젠킨스 사이트의 콘솔아웃풋에 아무것도 안나올까요ㅠㅠ이렇게 출력해도 아무것도 안나옵니다 ㅠ
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ec2 젠킨스 ..성능
강사님 ec2.micro 에서 젠킨스를 돌리면처음엔빠른데.. 시간이 지나면 젠킨스 사이트도 느려지고빌드하면 멈춤현상이있는데.. ec2.micro 에서 젠킨스가 돌아갈수가있나요..?
-
해결됨CloudNet@ - Amazon EKS 기본 강의
Prometheus ALB 443 Listener Issue
EKS hands-on with CloudNet@의 "4장 실습 프로메테우스와 그라파나 구성하기" 에서"1.1. 프로메테우스 스택 설치"의 "프로메테우스 스택 설치" 진행 후"crd, servicemonitors, targetgroupbindings 확인"의"kubectl get targetgroupbindings -n monitoring" 명령어 조회 시,(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get targetgroupbindings -n monitoring No resources found in monitoring namespace AWS Home Page의 EC2 Load balancers에서 Listener 조회 시, 443 Target 확인 되지 않는 현상.상기 Issue의 Solution은 아래와 같습니다. (CloudNet@ Team의 노고에 감사 드립니다.) Prometheus Stack을 배포함과 동시에 ALB는 Listener를 지정 후 Targetgroup 정보를 수신 합니다. 이때, 실습에서 생성한 AWS Certification Manager (略 ACM) 정보를 기반으로 합니다.(AWS Console Home에서 "Certification Manager" 로 검색하여 찾을 수 있습니다.) 만일, 실습 진행 간 배포한 Stack을 삭제 후 재 생성 한 경우, ACM에 대한 기존의 생성 정보를 호출,재차 변수로 반영하는 작업에서 추가로 생성 후 ACM을 변수로 반영하고자 하면,기존의 Issued 된 ACM이 추가 생성에 의한 Pending Validation 상태인 ACM을 기준으로 등록합니다. 또한, 재차 생성된 ACM은 Status가 변경 즉, Issued가 되기까지 일정 시간이 소요 되며,그 전에 Prometheus-stack 배포를 시도 할 경우, ACM 값을 호출하지 못하여 아래와 같이 표시 됩니다. ADDRESS (myeks-ingress-alb-123456789.ap-northeast-2.elb.amazonaws.com) 확인 불가Every 2.0s: kubectl get pod,svc,ingress,pv,pvc -n monitoring NAME CLASS HOSTS ADDRESS PORTS AGE ingress.networking.k8s.io/kube-prometheus-stack-grafana alb grafana.example.net 80 6m57s ingress.networking.k8s.io/kube-prometheus-stack-prometheus alb prometheus.example.net 80 6m57s 따라서 ACM 메뉴에 진입하여 기존의 생성된 ACM을 전부 삭제하고, ACM을 재차 생성하여 변수로 선언,Prometheus-stack을 삭제 후 재 배포시 성공적으로 주소가 할당 되는 것을 확인 할 수 있습니다.재 생성 후 일정 시간 소요 시 Issued를 확인 하고, ACM 선언 및 변수 적용 절차를 재차 수행 합니다.// Prometheus stack & PV with PVC Uninstallation // (admin@myeks:default) [root@myeks-bastion-EC2 ~]# helm uninstall -n monitoring kube-prometheus-stack release "kube-prometheus-stack" uninstalled (admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl delete pvc prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0 -n monitoring persistentvolumeclaim "prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0" deleted // ACM Renewing // (admin@myeks:default) [root@myeks-bastion-EC2 ~]# aws acm list-certificates { "CertificateSummaryList": [ { "CertificateArn": "arn:aws:acm:ap-northeast-2:398561966751:certificate/4a83d353-c8f1-4418-a007-3ad49eb5d7fd", "DomainName": "*.example.net", "SubjectAlternativeNameSummaries": [ "*.example.net" ], "HasAdditionalSubjectAlternativeNames": false, "Status": "ISSUED", "Type": "AMAZON_ISSUED", "KeyAlgorithm": "RSA-2048", "KeyUsages": [ "DIGITAL_SIGNATURE", "KEY_ENCIPHERMENT" ], "ExtendedKeyUsages": [ "TLS_WEB_SERVER_AUTHENTICATION", "TLS_WEB_CLIENT_AUTHENTICATION" ], "InUse": false, "RenewalEligibility": "INELIGIBLE", "NotBefore": "2024-05-22T09:00:00+09:00", "NotAfter": "2025-06-21T08:59:59+09:00", "CreatedAt": "2024-05-23T00:10:55.366000+09:00", "IssuedAt": "2024-05-23T00:13:12.752000+09:00" } ] } // ADDRESS VALIDATION // Every 2.0s: kubectl get pod,svc,ingress,pv,pvc -n monitoring NAME CLASS HOSTS ADDRESS PORTS AGE ingress.networking.k8s.io/kube-prometheus-stack-grafana alb grafana.example.net myeks-ingress-al b-123456789.ap-northeast-2.elb.amazonaws.com 80 20m ingress.networking.k8s.io/kube-prometheus-stack-prometheus alb prometheus.example.net myeks-ingress-al b-123456789.ap-northeast-2.elb.amazonaws.com 80 20m
-
미해결대세는 쿠버네티스 (초급~중급편)
aws EC2 연결
현재 쿠버네티스 구성환경은 강의내용과 같은 상태입니다.이 상태에서 aws 의 EC2 에서 인스턴스를 할당받아 현재의 클러스터에 연결하고 싶습니다 . 어떻게해야 할 수 있을까요??
-
미해결대세는 쿠버네티스 (초급~중급편)
cronjob 생성 시 에러
apiVersion: batch/v1beta1 kind: CronJob metadata: name: cron-job-2 spec: schedule: "20,21,22 * * * *" concurrencyPolicy: Replace jobTemplate: spec: template: spec: restartPolicy: Never containers: - name: container image: kubetm/init command: ["sh", "-c", "echo 'job start';sleep 140; echo 'job end'"] terminationGracePeriodSeconds: 0실습 도중 위 내용을 입력한 뒤 업로드를하면 다음과 같은 실패 얼럿이 뜹니다.왜 이러는지 알 수 있을까요?
-
미해결대세는 쿠버네티스 (초급~중급편)
클러스터 gpu노드 확장 질문입니다.
위 그림처럼 저희가 구성한 기존의 노트북 세 대 각각의 가상 머신을 연결한 bridge 방식의 클러스터 환경에서 gpu사용을 하기 위해서 AWS에서 GPU가 달린 우분투 서버를 하나 빌린 상태입니다.우분투 서버(외부 서버)를 어떤 절차로 진행해야 저희 기존 클러스터에 연결할 수 있을까요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Rocky Linux Repo 세팅 문의
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops 3단계에서 Rocky Linux Repo 세팅에서 안되서 문의드립니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스 자바 버전에 대해
젠킨스 서버에 자바버전을 11로 설치하였는데요스프링 서버가 여러개인데, 각각 11, 8 ,17 이런식으로 자바 버전이 바뀌면 젠킨스 서버에서 각 서버를 빌드할때마다 자바버전이 다른데 어떻게 맞춰야할까요ㅠㅠ도커도 안쓴다는 가정에서요..
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스를 ec2에
강사님ㅠㅠ 젠킨스를 ec2에 설치하는데..도커 먼저 설치하고 젠킨스 이미지를 받아서 돌려봤어요그런데..이상하게 젠킨스 사이트 접속하면 매우 느려지는 현상이 반복적으로 일어납니다.. 처음에는 느리지않은데, ec2를 중지시키고 AMI를 만든후에 다시 재시작 하면 젠킨스 사이트가 매우 느리네요..원인을 모르겠습니다 .. ec2를 중지후에 재시작하면 발생하는 문제같습니다 ㅠ EC2를 large로 바꿔도 안되는게..사양과는 상관이없는거 같아요 ..
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
실습19) AWS EC2에 Jenkins 서버 설치하기 에서 maven 설치하는 부분
실행될 프로젝트가 maven 으로 만들어졌기 때문에 maven을 설치하는게 맞을까요? 만약 gradle로 만들어진 프로젝트를 배포하고 싶으면 maven 관련은 설치하지 않고 gradle 관련 패키지를 설치하면 될까요?
-
미해결실습으로 배우는 그라파나 - {{ x86-64, arm64 }}
Prometheus 서버가 자꾸 죽습니다.
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예]3. 질문 잘하기 법을 읽어보셨나요? [예](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]안녕하세요. Prometheus, Grafana 수강생입니다.제공해주신 OVA 파일들로 VM을 실행해서 Prometheus와 Grafana를 실행해 실습도 열심히 하고 있습니다.그런데 어느 정도 시간이 지나면 저절로 Prometheus 서버 pod가 자꾸 죽고 재실행도 안되어서 매우 불편합니다.pod/prometheus-server-74dbc948cf-vxwpn 1/2 CreateContainerError 0 (7m48s ago) 아래 두가지 sh 모두 동일합니다. 왜 잘 실행되던 서버가 아무것도 안했는데 왜 Prometheus만 자꾸 죽는걸까요..ㅜsh 등을 변경하거나 그런 것은 전혀 없습니다.1.prometheus-installer-15s.sh[root@m-k8s 2.2]# cat 1.prometheus-installer-15s.sh#!/usr/bin/env bash# scrape default is 1mhelm install prometheus edu/prometheus \--set pushgateway.enabled=false \--set alertmanager.enabled=false \--set nodeExporter.tolerations[0].key="node-role.kubernetes.io/master" \--set nodeExporter.tolerations[0].effect="NoSchedule" \--set nodeExporter.tolerations[0].operator="Exists" \--set nodeExporter.tolerations[1].key="node-role.kubernetes.io/control-plane" \--set nodeExporter.tolerations[1].effect="NoSchedule" \--set nodeExporter.tolerations[1].operator="Exists" \--set server.service.type="LoadBalancer" \--set server.service.loadBalancerIP="192.168.1.11" \--set server.global.scrape_interval="15s" \--set server.global.evaluation_interval="15s" \--set server.extraFlags[0]="web.enable-lifecycle" \--set server.extraFlags[1]="storage.tsdb.no-lockfile" \--namespace=monitoring \--create-namespace1.prometheus-installer-1m-default.sh #!/usr/bin/env bash# scrape default is 1mhelm install prometheus edu/prometheus \--set pushgateway.enabled=false \--set alertmanager.enabled=false \--set nodeExporter.tolerations[0].key="node-role.kubernetes.io/master" \--set nodeExporter.tolerations[0].effect="NoSchedule" \--set nodeExporter.tolerations[0].operator="Exists" \--set nodeExporter.tolerations[1].key="node-role.kubernetes.io/control-plane" \--set nodeExporter.tolerations[1].effect="NoSchedule" \--set nodeExporter.tolerations[1].operator="Exists" \--set server.service.type="LoadBalancer" \--set server.service.loadBalancerIP="192.168.1.11" \--set server.extraFlags[0]="web.enable-lifecycle" \--set server.extraFlags[1]="storage.tsdb.no-lockfile" \--namespace=monitoring \--create-namespace 해결 방법 꼭 알려주시길 부탁드립니다.감사합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
playbook-sample2.yml 입니다.
2024.05.17 기준 (맥북 M1)tomcat-9.0.89 을 사용하였습니다.--- - name: Download Tomcat9 from tomcat.apache.org hosts: devops become: yes become_user: root tasks: - name: Create a Directory /opt/tomcat9 file: path: /opt/tomcat9 state: directory mode: 0755 - name: Download the Tomcat checksum get_url: url: https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.89/bin/apache-tomcat-9.0.89.tar.gz.sha512 dest: /opt/tomcat9/apache-tomcat-9.0.89.tar.gz.sha512 - name: Register the checksum value shell: cat /opt/tomcat9/apache-tomcat-9.0.89.tar.gz.sha512 | grep apache-tomcat-9.0.89.tar.gz | awk '{ print $1 }' register: tomcat_checksum_value - name: Download Tomcat using get_url get_url: url: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.89/bin/apache-tomcat-9.0.89.tar.gz dest: /opt/tomcat9 mode: 0755 checksum: sha512:{{ tomcat_checksum_value.stdout }}"
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
명령어..안돼요 ㅠ
sudo amazon-linux-extra install epel -y라고 명령어 내리면 command not found라고 나옵니다 ㅠ
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
마스터 1개와 노드2개를 조인하면서 오류가 발생했습니다.
카페에 쿠버네티스 설치과정을 마스터노드 1개만 할 경우 잘 작동합니다.하지만 궁금증에 마스터1개 노드2개를 vm에 설치해서 연동? 시켜보고싶어서 하는 과정에서 모든 설치과정을 마스터와 노드 똑같이 실행하였습니다.다만 마스터에서만 실행한 부분은 kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address 192.168.56.30mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/configkubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico.yaml kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico-custom.yaml이렇게 명령어만 마스터에서 실행하였습니다. kubeadm init을 통해 나온 kubeadm join을 각 노드에 실행하면 error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists [ERROR Port-10250]: Port 10250 is in use [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists이라는 오류가 발생하더라고요. https://dongle94.github.io/kubernetes/kubernetes-cluster-reset/#google_vignette이렇게 해결해보았지만 똑같은 오류가 발생했습니다.우분투 20.04 lts , 22.04 lts, rocky9 모두 실행해보았지만 같은 오류가 발생하였습니다. 도와주세여 ㅠ
-
미해결실리콘밸리 엔지니어에게 배우는 쿠버네티스 for SWE
Daemonset 에 임계점이 오면 어떻게 처리하나요?
안녕하세요 강사님,예를 들어, 한 노드에 여러 APP이 있고 대용량 로그가 발생할때데몬셋 pod 하나가 처리하기 어려워지는 케이스는 어떻게 대처하나요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Jenkin 소스코드관리 입력시 오류
저기 오류가 발생하여 무시하고 진행했을때 Running as SYSTEM Building in workspace /var/lib/jenkins/workspace/2121-source-build The recommended git tool is: NONE No credentials specified Cloning the remote Git repository Cloning repository https://github.com/k8s-1pro/kubernetes-anotherclass-api-tester.git > git init /var/lib/jenkins/workspace/2121-source-build # timeout=10 ERROR: Error cloning remote repo 'origin' hudson.plugins.git.GitException: Could not init /var/lib/jenkins/workspace/2121-source-build at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:1073) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:819) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1222) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1305) at hudson.scm.SCM.checkout(SCM.java:540) at hudson.model.AbstractProject.checkout(AbstractProject.java:1245) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:649) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:85) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:521) at hudson.model.Run.execute(Run.java:1900) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Caused by: hudson.plugins.git.GitException: Error performing git command: git init /var/lib/jenkins/workspace/2121-source-build at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2858) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2762) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2757) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:2051) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:1071) ... 12 more Caused by: java.io.IOException: Cannot run program "git" (in directory "/var/lib/jenkins/workspace/2121-source-build"): error=2, No such file or directory at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) at hudson.Proc$LocalProc.<init>(Proc.java:252) at hudson.Proc$LocalProc.<init>(Proc.java:221) at hudson.Launcher$LocalLauncher.launch(Launcher.java:994) at hudson.Launcher$ProcStarter.start(Launcher.java:506) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2835) ... 16 more Caused by: java.io.IOException: error=2, No such file or directory at java.base/java.lang.ProcessImpl.forkAndExec(Native Method) at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340) at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) ... 22 more ERROR: Error cloning remote repo 'origin' Finished: FAILURE 로그에서 이러한 오류를 발견했습니다. 사진과 같은 깃저장소의 오류때메 발생하는 거같습니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
안녕하세요! 강의 듣다가 PORT관련 질문이 생겼습니다.
우선, 좋은 강의 제작해주셔서 감사하다는 말씀을 드리고 싶습니다.정말 초심자인 저에게 적격인 강의라고 생각이 듭니다. 실제로 nginx를 running시키고, {nodeIP}:{3xxxx} 이렇게 하면 외부에서 nginx의 Welcome 페이지가 보이는데요.{nodeIP}:{80}으로 하면 외부에서 nginx의 Welcome 페이지를 찾지 못하더라구요. 바로 질문을 드리면, 이렇습니다.1) type=NodePort 일 때, PORT를 ':' 기준으로 뒷자리 숫자를 사용하는 이유?2) type=NodePort일 때, expose 명령어 사용 중에 --port=80으로 지정하는데 이게 ':' 기준으로 앞에 오는 숫자가 맞을까요? 3) type=LoadBalancer 일 때, PORT를 ':' 기준으로, 앞자리 숫자를 사용하는 이유? 사실, 1~3의 질문을 관통하는 개념이 부족해서 스스로 궁금증을 해결하지 못하는것 같은 느낌이 듭니다. Docker를 처음 배울 때에도, Port Fowarding 개념이 잘 와닿지가 않더라구요.Service 를 만들었을 때 PORT가 어떤 관계를 갖고 있는지, Port Fowarding과 연관해서 설명 주시면 감사하겠습니다..! ㅠ
-
미해결대세는 쿠버네티스 (초급~중급편)
CA 방식 관련 질문입니다.
강의 자료에서 제공된 vagrantfile을 이용하여 쿠버네티스 클러스터를 구축한 상태이고 여기에 CA방식을 추가로 사용하려고 합니다. AWS IAM이나 네이버 클라우드 플랫폼을 사용하여 현재 구성된 클러스터에 CA방식을 접목한 방식을 사용하려면 어떻게 해야하나요?