제가 도커나 클라우드 운영 경험은 전혀없습니다. [운영환경] 에서는 jenkins에서 war파일만들어서 docker-server에 전달해서 도커 이미지만 만들고, ansible-server에서 docker-server에서 만든 도커 이미지로 컨테이너를 만들어서 실행하는데요. 1) 앞 강좌에서 [ 로컬환경 ]에서는 이미지 push하고 pull해서 컨테이너 만들어서 진행했었는데, 운영환경에서는 이런식으로 진행하면 안되나 보죠? 2) 현 강의대로 하면 [ 운영환경 ] 에서 docker-server가 10개 라면 jenkins에서 10개 서버에 다 들어가서 이미지 만들어야 하는데... 실제 운영에서 이렇게 운영하는지 아니면 그냥 강좌라서 이런식으로 구성한건지 궁금합니다. 아니면 실제 운영환경이 아니라 AWS에서 개발환경 을 이렇게 구성한다는 얘기인가요? 감사합니다.
[INFO] ------------------------------------------------------------------------ Waiting for Jenkins to finish collecting data [JENKINS] Archiving /var/jenkins_home/workspace/my-thrid-project/pom.xml to com.njonecompany.web/web/1.0/web-1.0.pom [JENKINS] Archiving /var/jenkins_home/workspace/my-thrid-project/target/hello-world.war to com.njonecompany.web/web/1.0/web-1.0.war channel stopped [DeployPublisher][INFO] Attempting to deploy 1 war file(s) [DeployPublisher][INFO] Deploying /var/jenkins_home/workspace/my-thrid-project/target/hello-world.war to container Tomcat 9.x Remote with context null ERROR: Build step failed with exception org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/jenkins_home/workspace/my-thrid-project/target/hello-world.war] at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1235) at hudson.FilePath.act(FilePath.java:1218) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at PluginClassLoader for deploy//hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at PluginClassLoader for deploy//hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1917) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:446) Caused by: java.net.ConnectException: Connection timed out at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/sun.net.NetworkClient.doConnect(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) ... 19 more java.net.ConnectException: Connection timed out at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/sun.net.NetworkClient.doConnect(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1235) at hudson.FilePath.act(FilePath.java:1218) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at PluginClassLoader for deploy//hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at PluginClassLoader for deploy//hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1917) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:446) Build step 'Deploy war/ear to a container' marked build as failure Finished: FAILURE 톰캣자체에는 문제가 없는데, 젠킨스에서 연결이 계속 안되어서 질문드립니다. 젠킨스를 실행한 ec2 ssh에서 톰캣 서버랑 포트로 연결이 안되는데 이 문제 때문일까요?
해당 서버에서 도커를 설치하던데... sudo yum install -y docker 이렇게 설치한 도커엔진은 운영에서 항상 무료로 사용이 가능한가요? Docker CE(Community Edition)는 무료라던데. 저 명령어로 설치되는 건 어떤 버전인가요? Docker CE 이 맞나요?
저는 Ubuntu Desktop 사용하는데 Ansible 이미지를 어디서 받는건가요? 윈도우나 MacOS(intel, m1)는 있는데, 우분투에서 실습하는 사용자를 위한 Ansible 이미지 다운로드는 어디서 하나해서욤... 도커 허브에 가서 검색하니깐. alpine/ansible , ansible/ansible 뭐 이런것들 있던데, 이런것 중에 하나 사용하면 되는건가요? 그리고 왜 별도로 Ansible 이미지 만들어서 제공해주시는지 그 이유도 궁금합니다. 뭐 이유가 있을테니깐요. 혹시 우분트 사용자는 도커를 써서 실습하는게 아니라 그냥 Ansible설치해야 하는건가요? ㅋㅋㅋ 처음이라 잘 모르겠네요. 따라서 할려면 왠지 도커 안에다가 설치해야 할것 같은데...ㅎㅎ 일반적으로 운영에서는 Ansible을 어떻게 사용하는지도 궁금합니다. (도커안에서 운영하는지 아니면 그냥 설치해서 사용하는지 궁금합니다.) 감사합니다.
안녕하세요 강사님, 그라파나 대시보드를 elb, ecs의 cpu, memory, reqeust count, healthy/unhealthy count 등의 데이터를 그래프로 간단하게 등록해서 사용했었는데요 그라파나를 학습해서 조금 더 체계적인 모니터링을 하고싶어서 수강하려고합니다. 그런데 프로메테우스는 사용하질 않는데, 혹시 선수작업으로 프로메테우스를 듣고 그라파나 강의를 들어야하는 연계 과정일까요? 그냥 실습의 예가 프로메테우스&EKS 로 그라파나 구성하는거고 프로메테우스를 잘 모르더라도, 그라파나에 패널을 알고 이해하고 제가 필요한 데이터로 대시보드를 생성하면 될까요? 초반부 강의 듣다 궁금하여 문의드립니다..!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. MacOs m1 사용중인데 Dockerfile을 이용해서 이미지 빌드한 후에 docker run --privileged -p 8080:8080 --name mytomcat docker-server:latest 명령어로 컨테이너 실행하면 exec /usr/local/tomcat/bin/ catalina.sh : invalid argument 오류가 발생합니다 edowon0623/docker-server:m1으로 이미지 받아서 실습 내용과 동일하게 실행했습니다
애플리케이션을 실행하게 되면, 여러 환경 변수가 필요하게 되는데 DB 정보 URL 정보라던지. 이런 정보는 깃허브 액션에서 보통 어떻게 처리하나요?? 깃허브 액션의 secrets를 이용해서 도커 빌드시에 --build-arg를 활용하는지 ? 아니면 다른 방법으로 활용하는지 궁금합니다.
안녕하세요. pod 몇 개가 정상 실행이 되지 않는 문제가 있어서 로그를 확인했더니 아래와 같은 메세지들이 있었습니다. 혹시 해당 문제에 대해서 짚이는 부분이 있으실까요 ? *v1.ConfigMap을 볼 수 없다는 에러의 이유가 뭘까요? 감사합니다. W1125 00:20:42.253966 1 reflector.go:533] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: failed to list *v1.ReplicationController: Get "https://192.168.50.201:6443/api/v1/replicationcontrollers?limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused E1125 00:20:42.254002 1 reflector.go:148] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: Failed to watch *v1.ReplicationController: failed to list *v1.ReplicationController: Get "https://192 .168.50.201:6443/api/v1/replicationcontrollers?limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused W1125 00:20:44.225263 1 reflector.go:533] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: failed to list *v1.ConfigMap: Get "https://192.168.50.201:6443/api/v1/namespaces/kube-system/configma ps?fieldSelector=metadata.name%3Dextension-apiserver-authentication&limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused E1125 00:20:44.225301 1 reflector.go:148] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: Get "https://192.168.50.201:6443/api/v1/ namespaces/kube-system/configmaps?fieldSelector=metadata.name%3Dextension-apiserver-authentication&limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused
A.0003 파일 vagrant file 을 올리는 중에 Centos7 이 EOS로 인한 에러가 출력 됬습니다... 기존 repo에서 신규 repo 파일로 수정 및 쿠버네티스 repo 또한 변경을 위해 k8s_env_build 파일을 하기와 같이 수정하였습니다. ========================추가 구문======================= #기존 레포 Backup 및 신규 repo 등록 후 update cp -arp /etc/yum.repos.d/CentOs-Base.repo /tmp/Repo_Backup echo "[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=https://vault.centos.org/7.9.2009/os/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra baseurl=https://vault.centos.org/7.9.2009/updates/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra baseurl=https://vault.centos.org/7.9.2009/extras/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra baseurl=https://vault.centos.org/7.9.2009/centosplus/x86_64/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra baseurl=https://vault.centos.org/7.9.2009/contrib/x86_64/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" >> /etc/yum.repos.d/CentOS-Base.repo yum clean all yum makecache yum -y update ======================================================== ===========================수정 구문 ======================= # kubernetes repo gg_pkg="packages.cloud.google.com/yum/doc" # Due to shorten addr for key cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF ========================================================= 로 수정하면 해결 되는거 같습니다! 저 처럼 문제를 겪는 분들은 해당 파일로 수정 후 진행하면 될거 같습니다! 혹시 문제가 발생 할 수 있다면 답변 부탁드립니다!
안녕하세요. 모니터링 설치 Loki-Stack 강의 실습을 하는 와중에 2번 확인하기를 해보니 캡쳐와 같이 pod가 엄청 많이 떠있는 걸 확인했습니다. 그래서 그런지 대시보스 화면에서는 여러가지 에러 상태가 나타납니다. 거의 메모리가 부족하다고 하는 데 현재 해당 vm 에는 메모리를 8gb 주고 free 로 확인해보면 여유가 2gb 이상 남아있는 걸로 확인이 되고요. 이유를 아실까요 ? 그리고 어떻게 해결할 수 있을까요 ? 감사합니다. cafe: https://cafe.naver.com/kubeops
안녕하세요. 설치 과정에서 문제가 해결이 안되서 질문 올립니다. kubectl get pod -A kubectl describe nodes metrics-server 와 dashboard 의 상태가 Pending에서 계속 멈춰 있는 데 이유를 혹시 아실까요 ? 환경은 맥 m3 max고 설치는 아이피만 자동 생성되는 걸로 맞췄고 나머지는 다 동일하게 진행했습니다. Warning InvalidDiskCapacity 24m kubelet invalid capacity 0 on image filesystem 이 부분이 걸리긴 하는 데.. 디스크 용량은 64gb로 충분히 설정을 해논 상태고요. 감사합니다.
Warning FailedAddFinalizer 10m (x12 over 10m) ingress Failed add finalizer due to Internal error occurred: failed calling webhook " vingress.elbv2.k8s.aws ": failed to call webhook: Post " https://aws-load-balancer-webhook-service.kube-system.svc:443/validate-networking-v1-ingress?timeout=10s ": no endpoints available for service "aws-load-balancer-webhook-service" 정상적으로 연결은 된 것 같은데 ingress에 해당 이벤트가 나오는건 왜그럴까요?
[개발 스터디 모집 내용 예시] 스터디 주제 : kubernetes 스터디 목표 : kubernetes 강의 끝장내기 예상 스터디 일정(횟수) : 이번주 주말 2일 예상 커리큘럼 간략히 : 그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }} 완 예상 모집인원 : 3~4인 스터디 소개와 개설 이유 : 주말 종일 투자로 쿠버네티스 강의 완강해보기 스터디 관련 주의사항 : 최소 9~12시간 2일 진행 예정으로 강행군 달리실 분만 스터디에 지원할 수 있는 방법을 남겨주세요. (이메일, 카카오 오픈채팅방, 구글폼 등.) : https://open.kakao.com/o/sBR4D2Qg