묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨CloudNet@ - Amazon EKS 확장판 강의
BationHost에서 AWS CLI 접속 실패
안녕하세요 BationHost에서 aws 명령어가 실행이 안됩니다... aws 명령어 실행이 안되어서 BastionHost의 /etc/profile을 확인해봤는데,export AWS_DEFAULT_REGION=ap-northeast-2export AWS_ACCESS_KEY_ID=[실제값]export AWS_SECRET_ACCESS_KEY=A[실제값]export CLUSTER_NAME=[실제값]이렇게 4개는 값이 잘 들어가있는데, export ACCOUNT_ID=export VPCID=export PublicSubnet1=export PublicSubnet2=그 외 이런 값들이 안들어가 있어서 aws sts get-caller-identity 실행해보니 An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.위와같은 에러가 발생합니다 ㅠㅠ 어떤 문제인지 알 수 있을까요?
-
해결됨CloudNet@ - Amazon EKS 확장판 강의
ch1 external-dns pod 관련 버전 오류와 해결 방법 후 추가 오류 사항
[ 문제 식별 ]테라폼 배포 후 pod 상태를 확인하니 external-dns pod 가 ImagePullBackOff 상태였습니다(myeks:N/A) root@myeks-bastion-EC2:~# kubectl describe pod external-dns-7dc878c-jpd77 -n kube-system ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 10m default-scheduler Successfully assigned kube-system/external-dns-7dc878c-jpd77 to ip-192-168-3-186.ap-northeast-2.compute.internal Normal Pulling 7m57s (x5 over 10m) kubelet Pulling image "docker.io/bitnami/external-dns:0.12.0-debian-11-r3" Warning Failed 7m56s (x5 over 10m) kubelet Failed to pull image "docker.io/bitnami/external-dns:0.12.0-debian-11-r3": rpc error: code = NotFound desc = failed to pull and unpack image "docker.io/bitnami/external-dns:0.12.0-debian-11-r3": failed to resolve reference "docker.io/bitnami/external-dns:0.12.0-debian-11-r3": docker.io/bitnami/external-dns:0.12.0-debian-11-r3: not found Warning Failed 7m56s (x5 over 10m) kubelet Error: ErrImagePull Normal BackOff 38s (x43 over 10m) kubelet Back-off pulling image "docker.io/bitnami/external-dns:0.12.0-debian-11-r3" Warning Failed 38s (x43 over 10m) kubelet Error: ImagePullBackOff ch1 테라폼 코드에서 eks-external-dns 모듈 내 버전이 1.2.0 으로 지정되어있는데 해당 버전은 bitnami 레포에서 이미지를 사용합니다. bitnami 레포에 들어가보니 더이상 해당 이미지를 무료로 제공하지 않는다고 나오네요 ㅜ 그래서 lablabs/eks-external-dns/aws 의 1.2.1 버전에 merge 된 pr 내용을 보니bitnami -> kubernetes-sig 로 변경되었다고 나오고 있어서 1.2.1 버전으로 변경했고 해결되었습니다. [ 해결 방안 ]eks.tf 내 eks-external-dns 모듈 내용을 아래처럼 수정하고 적용했습니다.module "eks-external-dns" { source = "lablabs/eks-external-dns/aws" version = "1.2.1" cluster_identity_oidc_issuer = module.eks.cluster_oidc_issuer_url cluster_identity_oidc_issuer_arn = local.cluster_oidc_issuer_arn irsa_assume_role_arns = [] depends_on = [helm_release.aws_load_balancer_controller] }irsa_assume_role_arns 는 1.2.1 부터 필요로해서 비워두고 생성했습니다. 그리고 pod 생성, running 상태 확인했습니다.(myeks:N/A) root@myeks-bastion-EC2:~# kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system aws-load-balancer-controller-9774b5bf9-fd6wb 1/1 Running 0 61m kube-system aws-load-balancer-controller-9774b5bf9-mltpg 1/1 Running 0 61m kube-system aws-node-6c6d5 2/2 Running 0 73m kube-system aws-node-mqxqd 2/2 Running 0 73m kube-system aws-node-p2hcg 2/2 Running 0 73m kube-system coredns-7bb47d475b-k9dfl 1/1 Running 0 73m kube-system coredns-7bb47d475b-q5m9n 1/1 Running 0 73m kube-system external-dns-745b66b8d6-vrhjk 1/1 Running 0 11m kube-system kube-proxy-gbwf9 1/1 Running 0 73m kube-system kube-proxy-rmdcd 1/1 Running 0 73m kube-system kube-proxy-txm2x 1/1 Running 0 73m 혹시나 pod 상태보다 궁금하신 분 있을까해서 Q&A 에 올립니다![ 추가 오류 ]위 구성 후 실습 진행 중 2가지 오류가 발생했습니다.kubernetes-sig pod 내 bash shell 없음 (myeks:default) root@myeks-bastion-EC2:~# kubectl exec -it deploy/external-dns -n kube-system -- bash error: Internal error occurred: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "8270eecee52a2fc8d4f16a986c88cf9ecc8d852258d6f1a88ac680a6f95510d6": OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown external-pod 로그를 보니 권한 관련 오류 발생 중time="2025-10-10T11:55:27Z" level=error msg="Failed to do run once: soft error\nrecords retrieval failed: soft error\nfailed to list hosted zones: operation error Route 53: ListHostedZones, https response error StatusCode: 403, RequestID: 881c4bac-1a87-4454-b2c3-2657680fb2d0, api error AccessDenied: User: arn:aws:sts::{제거}:assumed-role/external-dns-irsa-external-dns/1760097326486557347 is not authorized to perform: route53:ListHostedZones because no identity-based policy allows the route53:ListHostedZones action" time="2025-10-10T11:56:27Z" level=error msg="Failed to do run once: soft error\nrecords retrieval failed: soft error\nfailed to list hosted zones: operation error Route 53: ListHostedZones, https response error StatusCode: 403, RequestID: 7d915626-3e26-4491-a53a-7ac3c5d4b024, api error AccessDenied: User: arn:aws:sts::{제거}:assumed-role/external-dns-irsa-external-dns/1760097326486557347 is not authorized to perform: route53:ListHostedZones because no identity-based policy allows the route53:ListHostedZones action"kubernetes-sig 이미지를 사용해서 인지 2가지 문제가 있습니다. eks-external-dns 모듈 내 irsa_assume_role_arns 에 값을 넣어봐도 로그는 동일하게 출력되네요. ch1 실습의 파드 쉘은 다른 파드를 사용하면 될 것 같은데 이후 ch5 까지 과정에 external-dns 가 사용되는지 모르겠네요,, 다른 해결 방법이 있을까요?? [ 추가 오류 2 해결 방안 ]IAM external-dns-irsa-external-dns role 을 확인하니 권한 부여가 안되어 있었습니다. inline policy 로 route53 으로 권한 연결을 해줬고 이후 레코드 생성 가능한 것 확인했습니다. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "route53:ChangeResourceRecordSets" ], "Resource": [ "arn:aws:route53:::hostedzone/*" ] }, { "Effect": "Allow", "Action": [ "route53:ListHostedZones", "route53:ListResourceRecordSets", "route53:ListTagsForResource" ], "Resource": [ "*" ] } ] }테라폼에서 json 파일로 권한 생성이 안되는 것 같은데 이유를 모르겠어서 일단 요렇게하고 수동으로 하고 넘어갔습니다.
-
미해결CloudNet@ - Amazon EKS 기본 강의
fluentbit 관련 node 의 기본 로그 질문
for log in dmesg secure messages; \do \echo ">>>>> Node1: /var/log/$log <<<<<"; \ssh ec2-user@$N1 sudo tail /var/log/$log; \echo; done노드 1에 dmesg, secure, messages 로그 확인하는명령어가 이렇게 나와서 확인해보니 로 되어있네요 즉 노드 로그가 있는 경로 중에/var/log/dmesg 만 있고/var/log/secure,messages 가 존재 하지 않는 상황인데 심지어 그나마 있는 경로인/var/log/dmesg 안에도 로그가 없기에 fluentbit 도 클라우드 와치로 로그를 안보내는 모습입니다실제로도 확인해보니 역시나 로그그룹도 host 태그는 만들어 지지 않는 모습입니다 . ...........결론적으로 fluentbit는 여전히 기본값으로 해당 경로에서 로그 가져와서 보내는걸 처리하고있는데정작 ec2는 버전 문제인지 더 이상 지원 하지 않는지는 모르겠는데 해당 경로를 기본값으로 사용하지않네요 원할한 실습을 위해 확인 부탁드립니다 .
-
미해결CloudNet@ - Amazon EKS 기본 강의
POD에 Security Group이 부착되어있을 경우 통신 흐름 문의
통신흐름과 관련하여 문의할곳이 마땅치 않아 여기에 문의글을 남깁니다. NodeGroup에 Custom NodeGroup SG가 부착되어있어서 외부통신을 제어하고 있습니다.이때 별도의 서브넷을 만들어서 ENIConfig를 통해 Pod의 IP대역을 신규로 구성한 서브넷으로 변경하고, Pod에 PodSG를 구성해주었습니다. 이럴경우 ELB는 NodeGroupSG를 거쳐서 PodSG로 흘러가는 통신흐름이 만들어지는건가요? 아니면 ELB에서 다이렉트로 PodS로 흘러가는 통신흐름이 만들어지는건가요?? ELB의 IP대역은 노드그룹 서브넷의 IP대역내에 있는 상태입니다.
-
미해결CloudNet@ - Amazon EKS 기본 강의
EKS SG ENI 질문
eksctl로 생성된 Sg에서 3번 cluster shared Node Sg가 NodeGroup SG로 보이는데요.제가 개인적으로 공부한바로는 SG는 ENI에 부착되는것으로 알고 있었는데, 현재 워커노드는 4개의 ENI가 있고, 각각의 ENI에는 1,2,3,4의 SG가 붙어있는것이 맞는건가요?? 그리고 Cluster Security Group SG(그림에서는 1. ClusterSG에 해당하는것으로 보임)는 어떤 ENI에 부착되는것인지도 궁금합니다.(제어플레인, 데이터플레인중 어디에? 데이터플레인이라면 어디에 속한 ENI에 부착이 되는지?) 도식화의 편의상 ENI에 SG가 붙어있는 그림으로 그려진것이 아닌지..헷갈려서 문의 드립니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
섹션5 시나리오2 워크플로우 구성하기
안녕하세요 궁금한점이 있어서 질문 남깁니다.선생님께서는 하나의 yaml파일에 dev서버와 prod서버 둘다 하도록 알려주셨는데yaml파일을 prod dev를 2개만들어서 관리해도 상관없을까요?
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
섹션4-7. high 이슈 추가 시 slack의 high-test 채널로 상세 알림 미전송
안녕하세요.아래 상황에서 원인을 아직 찾지못해 질문드립니다.강의: 섹션 4-7 키워드 기반 이슈 자동화 2 강의[발생상황]keyword-list.txt 파일에 high 텍스트를 추가 후 이슈에서 high-test 로 이슈 생성github action 이 실행되고 알림이 슬랙에 전송되나, critical-issue, normal-issue 채널과는 다르게 알림이 추가되었다는 문구만 표시 초기에 생성한 actions 채널에 상세 알림이 전송되어 표시 [시도해본 작업]레포 high 환경변수 secret에 웹훅 url 을 새로 추가
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
github-actions repo의 create-cluster.yaml과 init.sh 사용
eks 환경 구성할때 github-actions-setting 을 사용하지 않고 github-actions에 있는 create-cluster.yaml과 init.sh 사용했는데 무방할까요??
-
해결됨CloudNet@ - Amazon EKS 확장판 강의
terraform plan 오류
terraform plan시 ch1/eks.tf 파일에서 오류가 발생합니다.ch1 git:(main) ✗ terraform plan╷│ Error: Unsupported block type││ on eks.tf line 23, in provider "helm":│ 23: kubernetes {││ Blocks of type "kubernetes" are not expected here. Did you mean to define argument "kubernetes"? If so, use the equals sign to assign it a value.╵소스를 아래와 같이 변경하였습니다.kubernetes = { .... exe = {...set = [ {name = "clusterName"value = var.ClusterBaseName }, {name = "serviceAccount.create"value = "true" }, {name = "serviceAccount.annotations.eks\\.amazonaws\\.com/role-arn"value = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/AmazonEKSTFLBControllerRole-${module.eks.cluster_name}" }, {name = "region"value = "ap-northeast-2" } ]커서에서 바이브코딩으로 바꿔서 문법에러는 안나는데 여전히 버전문제인지 해결이 안되네요. ch1 git:(main) ✗ terraform plan╷│ Error: Unsupported block type││ on eks.tf line 23, in provider "helm":│ 23: kubernetes {││ Blocks of type "kubernetes" are not expected here. Did you mean to define argument "kubernetes"? If so, use the equals sign to assign it a value.╵➜ ch1 git:(main) ✗ terraform initInitializing the backend...Initializing modules...Downloading registry.terraform.io/terraform-aws-modules/eks/aws 20.37.1 for eks...- eks in .terraform/modules/eks- eks.eks_managed_node_group in .terraform/modules/eks/modules/eks-managed-node-group- eks.eks_managed_node_group.user_data in .terraform/modules/eks/modules/_user_data- eks.fargate_profile in .terraform/modules/eks/modules/fargate-profileDownloading registry.terraform.io/terraform-aws-modules/kms/aws 2.1.0 for eks.kms...- eks.kms in .terraform/modules/eks.kms- eks.self_managed_node_group in .terraform/modules/eks/modules/self-managed-node-group- eks.self_managed_node_group.user_data in .terraform/modules/eks/modules/_user_dataDownloading registry.terraform.io/lablabs/eks-external-dns/aws 1.2.0 for eks-external-dns...- eks-external-dns in .terraform/modules/eks-external-dnsDownloading registry.terraform.io/terraform-aws-modules/iam/aws 5.39.0 for irsa-external-dns...- irsa-external-dns in .terraform/modules/irsa-external-dns/modules/iam-assumable-role-with-oidcDownloading registry.terraform.io/terraform-aws-modules/iam/aws 5.39.0 for irsa-lb-controller...- irsa-lb-controller in .terraform/modules/irsa-lb-controller/modules/iam-assumable-role-with-oidcDownloading registry.terraform.io/terraform-aws-modules/vpc/aws 5.21.0 for vpc...- vpc in .terraform/modules/vpcInitializing provider plugins...- Finding hashicorp/cloudinit versions matching ">= 2.0.0"...- Finding hashicorp/null versions matching ">= 3.0.0"...- Finding cloudposse/utils versions matching ">= 0.17.0"...- Finding hashicorp/aws versions matching ">= 4.0.0, >= 4.19.0, >= 4.33.0, >= 5.79.0, >= 5.95.0, < 6.0.0"...- Finding hashicorp/helm versions matching ">= 2.6.0"...- Finding hashicorp/kubernetes versions matching ">= 2.16.0"...- Finding hashicorp/time versions matching ">= 0.9.0"...- Finding hashicorp/tls versions matching ">= 3.0.0"...- Installing hashicorp/helm v3.0.2...- Installed hashicorp/helm v3.0.2 (signed by HashiCorp)- Installing hashicorp/kubernetes v2.37.1...- Installed hashicorp/kubernetes v2.37.1 (signed by HashiCorp)- Installing hashicorp/time v0.13.1...- Installed hashicorp/time v0.13.1 (signed by HashiCorp)- Installing hashicorp/tls v4.1.0...- Installed hashicorp/tls v4.1.0 (signed by HashiCorp)- Installing hashicorp/cloudinit v2.3.7...- Installed hashicorp/cloudinit v2.3.7 (signed by HashiCorp)- Installing hashicorp/null v3.2.4...- Installed hashicorp/null v3.2.4 (signed by HashiCorp)- Installing cloudposse/utils v1.30.0...- Installed cloudposse/utils v1.30.0 (self-signed, key ID ********)- Installing hashicorp/aws v5.100.0...- Installed hashicorp/aws v5.100.0 (signed by HashiCorp)Partner and community providers are signed by their developers.If you'd like to know more about provider signing, you can read about it here:https://www.terraform.io/docs/cli/plugins/signing.htmlTerraform has created a lock file .terraform.lock.hcl to record the providerselections it made above. Include this file in your version control repositoryso that Terraform can guarantee to make the same selections by default whenyou run "terraform init" in the future.Terraform has been successfully initialized!You may now begin working with Terraform. Try running "terraform plan" to seeany changes that are required for your infrastructure. All Terraform commandsshould now work.If you ever set or change modules or backend configuration for Terraform,rerun this command to reinitialize your working directory. If you forget, othercommands will detect it and remind you to do so if necessary.➜ ch1 git:(main) ✗ terraform plan╷│ Error: Unsupported block type││ on .terraform/modules/eks-external-dns/helm.tf line 41, in resource "helm_release" "this":│ 41: dynamic "set" {││ Blocks of type "set" are not expected here.╵╷│ Error: Unsupported block type││ on .terraform/modules/eks-external-dns/helm.tf line 49, in resource "helm_release" "this":│ 49: dynamic "set_sensitive" {││ Blocks of type "set_sensitive" are not expected here.╵╷│ Error: Unsupported block type││ on .terraform/modules/eks-external-dns/helm.tf line 57, in resource "helm_release" "this":│ 57: dynamic "postrender" {││ Blocks of type "postrender" are not expected here.╵➜ ch1 git:(main) ✗
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
슬랙 연동 안됨
안녕하세요 강의 잘 듣고 있습니다.슬랙 연동하는 부분이 지속적으로 안돼서 어떻게 해결해야 하는지 여쭤보고 싶습니다. 강의에 나온대로해도 안되길래 payload를 간소화해보기도 했고, 직접 마켓플레이스에 들어가 v2.1.0 문법으로 수정하기도 했습니다. 그런데 워크플로우에서 계속해서 5회 리트라이에도 실패했다는 값이 출력됩니다. 웹훅 URL도 정상적으로 생성되어 있고, text 값을 수정해서 별도로 curl을 날려도 정상적으로 슬랙에 메시지가 전달되는 상태입니다. action을 통할 때에만 실패하네요.. 혹시 슬랙이 무료판이라 그런걸까요.. 아래는 워크플로우 로그와 yaml 설정값입니다. Run slackapi/slack-github-action@v2.1.02 with:3 webhook: ***4 webhook-type: incoming-webhook5 payload: {6 "text": "리포지토리 생성 결과: success"7 }8 errors: false9 payload-templated: false10 retries: 511 env:12 ACTIONS_STEP_DEBUG: true - name: slack if: always() uses: slackapi/slack-github-action@v2.1.0 with: webhook: ${{ secrets.SLACK_WEBHOOK_URL }} webhook-type: incoming-webhook payload: | { "text": "리포지토리 생성 결과: ${{ steps.create-repo.outcome }}" }
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
visual studio code 터미널에서 github-actions 경로 설정 어떻게 하는 건가요?
따로 파일을 만들어서 하셨나요? 아님 github에서 fork 한 다음에 경로 설정하셨나요? 1:25초 부분에서 경로 설정을 어떻게 하는지 몰라서 질문드리고자 합니다.
-
해결됨실리콘밸리 엔지니어와 함께하는 AWS EKS
kubectl autoscale deployment 명령어 관련 질문 드립니다.
안녕하세요. 수업 잘 듣고있습니다.kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10위 명령어를 통해서 eks 클러스터에 pod의 hpa를 설정한 것으로 이해했는데요.강사님께서 제공해주신 flexible.yaml 파일로 eks 클러스터를 구성했고 노드만 띄워져 있는 상황으로 인지했고, 그후에 부하분산기를 통해서 부하가 증가 됬을 때 pod의 숫자가 어떻게 증가되는건가요?!저희는 pod 관련된 정의를 하지 않았기 때문에,빈 깡통 node만 띄어져 있는 상황이 아닌가요??
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
강의자료 다운로드 문제
안녕하세요강의 자료 다운을 했는데 내부에 아무 파일도 없는 문제가 계속 발생하고 있습니다.확인 부탁드립니다.
-
해결됨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"혹시 해결 가능한 방법이 있을까요?
-
미해결CloudNet@ - Amazon EKS 기본 강의
강의 연장 부탁드립니다.
강의 연장 부탁드립니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
깃헙 레포 생성 자동화 구성하기 2 관련 질문드립니다.
우선 레포만 생성하는 workflow는 성공하였으며, slack 기능을 추가하는 과정에서 오류를 겪고 있습니다.gh repo create oddong-action/${{ inputs.prefix }}-${{ inputs.name }} --public --add-readme새로운 레포를 만드는 명령 수행 시에 아래와 같이 권한 오류가 발생하고 있습니다.어떤 설정을 추가로 해주어야 할지 문의드립니다.
-
해결됨CloudNet@ - Amazon EKS 기본 강의
EKS Cluster 생성 시 노드 IAM 역할 입력
AWS 콘솔에서 eks 클러스터 생성 시 노드IAM역할을 입력해야하는데요강의에는 클러스터 생성 후 노드 생성 전에 노드 IAM 역할을 생성합니다.강의 내 eksNodeRole을 생성 먼저 하고 해당 값을 입력하면 되나요?
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
강의 자료 파일이 깨진거 같습니다
다운로드해도 파일이 안열리고 파일명이 자소분리현상이 있습니다
-
해결됨CloudNet@ - Amazon EKS 기본 강의
원클릭 배포시 myeks 를 제외한 나머지 설치 불가
안녕하세요~ 좋은 강의 감사합니다. 원클릭 배포를 4장부터 수행하고 있습니다. 4장 myeks 를 포함한 총 9개의 스택이 생성되어야 하는데, myeks 를 제외한 나머지 스택 설치가 안되고 있습니다. 문제 해소를 위하여 가장 최근 문의 내용 중 [원클릭 배포 결과가 다릅니다.] 를 참고하여 진행을 하였으며, aws sts get-caller-identity --query Arn 실행 시 CF 시 입력했던 계정으로 되어 있음을 확인 했습니다. CF 에 입력한 AccessKey, SecretKey 의 IAM 계정은 Console Access 접근 권한은 없고 Only CLI 접근 권한이 부여된 계정이며 권한은 AdministratorAccess 만 가지고 있습니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
runs-on 질문
안녕하세요! github actions 강의 수강 중인 학생입니다.push, pull request 이벤트 트리거를 한다는 것은 숙지했는데, YAML을 유심히 보다보니 문득 궁금증이 생겨 질문남깁니다.jobs > pull-requests-job > runs-on : ubuntu-latest를 작성하는데,runs-on에 작성된 우분투라는 것은 github의 운영체제인건가요?