실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다) 영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다) 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요! 안녕하세요 혹시 실무에서 pod 정보를 API로 노출 시킬일이 있나요? 쿠버네티스 경험이 없어서 여쭤봅니다. 예시로, 큰 회사에서 쿠버네티스가 접근이 불가하여 웹으로 확인하거나, API로 쿠버네티스를 컨트롤 할때 사용 할듯한데, 다른 의도가 있을까 해서 여쭤봅니다. cafe: https://cafe.naver.com/kubeops
windows에서 테스트 진행 중 입니다. 커뮤니티의 모든 글을 읽고 다 진행해봤습니다. ansible windows -m win_ping -u z2x2c 해당 명령어를 입력하면 성공했다고 나옵니다. 192.168.219.59 | SUCCESS => { "changed": false, "ping": "pong" } 근데 ansible-server의 /root/k8s 해당 경로에서 ansible-playbook -i hosts k8s-cicd-deployment-playbook.yml -u z2x2c 해당 명령어를 입력하면 [WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details PLAY [Create pods using deployment] ************************************************************************************ TASK [Gathering Facts] ************************************************************************************************* fatal: [192.168.219.59]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: z2x2c@192.168.219.59: Permission denied (publickey,password,keyboard-interactive).", "unreachable": true} PLAY RECAP ************************************************************************************************************* 192.168.219.59 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0 위와 같은 오류가 나옵니다.. 왜이러는지 답변 가능할까요? 너무 스트레스 받네요 ㅠㅠ..
안녕하세요. 일프로님 질문이 있습니다. 1. Blue Green 배포시 가장 대표적인 단점이 서버 리소스(CPU, Memory)를 2배로 사용하는 것으로 알려져 있습니다. 여기서 제가 이해한바로는 cpu는 그대로고 메모리는 교체하는 짧은 시점에만 2배가 되는것으로 이해했는데 맞을까요? 그리고 이 문제가 중요한 이슈인 점은 blue green 배포를 사용하면 항상 워커 노드들에는 여유분의 메모리를 상비해둬야해서일까요?? 2.혹시 애플리케이션 기동 중 문제(ex yaml 파일 오류)가 발생하면 어떻게하나요? 예를 들어서 Blue Green 배포시, 기존 blue에서 green으로 교체하려하는데 green에 속한 pod들이 기동에 실패해버리고 green 버전으로 트래픽이 옮겨지면 결국 서비스를 이용 못할거 같습니다. rolling도 마찬가지입니다. 감사합니다
제가 도커나 클라우드 운영 경험은 전혀없습니다. [운영환경] 에서는 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 ========================================================= 로 수정하면 해결 되는거 같습니다! 저 처럼 문제를 겪는 분들은 해당 파일로 수정 후 진행하면 될거 같습니다! 혹시 문제가 발생 할 수 있다면 답변 부탁드립니다!