Deployment에서 Fargat로 pod를 배포한뒤아래의 파일을 이용해서 namespace와 configmap을 생성해줍니다. pod에 exec로 접속하여 호출하였음에도 로그 그룹에 로그가 생성되지 않는다면deployment.yaml을 삭제하고 다시 시도해보세요. Down filewget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/CloudWatch/Fargate/aws-observability-namespace.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/CloudWatch/Fargate/configmap.yaml Testaws logs filter-log-events..
eks
ip 제한 해제kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=truekubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=100kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=150kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=150노드의 남은 CPU와 메모리 확인kubectl top nodes
Link External Secret 역활 & 정책 만들기더보기REGION=""CLUSTER_NAME=""NAMESPACE=""cat >secret-policy.json External Secret 설치하기helm repo add external-secrets https://charts.external-secrets.io helm install external-secrets \ external-secrets/external-secrets \ -n kube-system \ --set serviceAccount.create=false Secret Reloader 설치하기helm repo add stakater https://stakater.github.io/stakater-chartshelm re..
Ec2에서 Assume역활의 세션을 받아 RBAC을 적용하는 방식입니다. EC2 역활 신뢰 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:::user/" }..
Github Cluster Rolek8s cluster의 모든 네임스페이스와 리소스에 대한 권한을 설정할려면wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Cluster_Role/configmap.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Cluster_Role/rolebinding.yamlRolek8s cluster의 특정 네임스페이스 내의 리소스에 대한 권한을 설정할려면wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Role/configmap.yamlwget https://ra..
동영상ArgoCD 설치더보기#ArgoCD 설치curl -LO https://github.com/argoproj/argo-cd/releases/download/v1.4.2/argocd-linux-amd64chmod u+x argocd-linux-amd64sudo mv argocd-linux-amd64 /usr/local/bin/argocdexport PATH=/usr/local/bin:$PATHecho 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrckubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests..
NameSpacekubectl create ns fluentdApply CloudWatch-Namespacekubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cloudwatch-namespace.yamlCLUSTER_NAME=REGION=FluentBitHttpPort='2020'FluentBitReadFromHead='Off'[[ ${FluentBitReadFromHead} = 'On' ]] && Flue..
Link 시작하기 전에 EKS NodeGroup IAM 역활에 아래의 정책을 추가해줍니다.CloudWatchAgentServerPolicy CloudWatch Insight 역활 생성하기CLUSTER_NAME=""OIDC_ID=$(aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | sed 's|https://||')ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)OIDC_ARN="arn:aws:iam::$ACCOUNT_ID:oidc-provider/$OIDC_ID"aws iam create-rol..
Pod에 접속하기kubectl exec -n -it -- bash
Nignx Ingress Controller 설치하기kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/deploy/static/provider/aws/deploy.yaml 확인하기kubectl get pods -n ingress-nginxkubectl get all -n ingress-nginx Manifest File ( svc, ingress )curl -o service.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/NginxController/service.yamlcurl -o ingress.yaml https://..
Github 먼저 RDS를 생성할때 비밀번호를 Secret Manager로 생성해줘야 합니다. 1. EKS IAM 역활 및 정책더보기EKS 포드가 AWS Secrets Manager의 비밀에 접근할 수 있도록 IAM 정책을 생성합니다,이 정책은 EKS 포드에서 사용하는 서비스 계정에 연결합니다.Secret_Manager_ARN=''aws iam create-policy --policy-name wngnl-SecretsManagerAccessPolicy --policy-document "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ ..
Githubcurl -o nodegroup.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/NodeGroup/bottlerocker_nodegroup.yamleksctl create nodegroup --config-file=nodegroup.yaml
Link Velero를 설치해줍니다.wget https://github.com/vmware-tanzu/velero/releases/download/v1.9.2/velero-v1.9.2-linux-amd64.tar.gztar zxvf velero-v1.9.2-linux-amd64.tar.gzsudo cp velero-v1.9.6-linux-amd64/velero /usr/local/bin/. Velero의 버킷을 지정해주겠습니다.# 환경변수export BUCKET=export REGION=# Velero 초기 설정velero install \ --provider aws \ --bucket $BUCKET \ --secret-file ./credentials-velero \ --backu..
OpenSearch 도매인 생성할 때 참고하세요.최대 절 수에 1024를 꼭 적어주세요.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "arn:aws:es:::domain//*" } ]}위의 정책은 OpenSearch의 보안구성 > 액세스 정책 에 넣어주세요 OpenSearch 정책 생성하기OPENSEARCH_ARN=""aws iam create-policy \ --policy-name wngnl_OpenSearch_Policy \ --po..
시작하기 전에 EKS NodeGroup IAM 역활에 아래 정책을 추가해주세요.CloudWatchFullAccess Fluentbit 역활 생성하기CLUSTER_NAME=""OIDC_ID=$(aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | sed 's|https://||')ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)OIDC_ARN="arn:aws:iam::$ACCOUNT_ID:oidc-provider/$OIDC_ID"aws iam create-role --role-name wngnl_Cl..
Calico란?Pod의 보안그룹으로 볼 수 있다. Install Calicohelm repo add projectcalico https://docs.tigera.io/calico/chartshelm show values projectcalico/tigera-operator --version v3.25.2kubectl create namespace tigera-operatorecho '{ installation: {kubernetesProvider: EKS }}' > values.yamlhelm install calico projectcalico/tigera-operator --version v3.25.2 -f values.yaml --namespace tigera-operator Checkkubectl ..
HPA, VPA, CA 란?더보기HPA Pod의 리소스를 감시하며, 리소스 사용에 따라 Pod의 replicas를 변동하여Pod의 수를 조절해줍니다. VPA ** HPA와 같이 사용할 수 없음 **Pod의 리소스를 감시하며, Pod의 리소스가 부족할 경우 Pod를 Restart 하여Pod의 리소스를 증가시켜 줍니다. CA Node의 자원이 모두소모된 경우 자원이 더 필요하다고 판단하면 새로운 Node를 생성합니다.새로운 자원이 필요하지 않게되면 생성된 Node를 삭제합니다. Metric Serverkubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yamlkubectl e..
참고 사이트 buildspec.yaml 더보기 version: 0.2 phases: install: commands: # kubectl 설치 - kubectl 설치 명령어 작성!! # EKS Cluster 인증 - aws eks --region update-kubeconfig --name - kubectl get po -n pre_build: commands: # CodeCommit 저장소에서 소스 코드를 가져옵니다. - - MY_ECR=":" build: commands: - echo "Building Docker image..." - docker build -t $MY_ECR . - echo "Pushing Docker image to Amazon ECR..."..
Fargate Profile Role- 역활에서 EKS - EKs Pod 선택하고 생성하기 Create Service Account더보기먼저 IAM 콘솔에서 정책을 생성해줍니다.정책에는 App에서 사용할 권한을 추가해주세요. eksctl create iamserviceaccount \ --cluster= \ --namespace= \ --name= \ --attach-policy-arn= \ --override-existing-serviceaccounts \ --approve deployment.yamlcurl -o deployment.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/Manifest/Deployment/..
Albcontroller를 생성하기전에Public subnet Tag = kubernetes.io/role/elb : 1Private subnet Tag = kubernetes.io/role/internal-elb : 1 Loadbalancer-Role 을 생성해줍니다.CLUSTER_NAME=""eksctl utils write-kubeconfig --name $CLUSTER_NAMEeksctl utils associate-iam-oidc-provider --approve --cluster $CLUSTER_NAMEACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)CLUSTER_OIDC=$(aws eks describe-clus..
Install EKSctl & Kubectlaws configure EKS Install LinkARCH=amd64PLATFORM=$(uname -s)_$ARCHcurl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gzsudo mv /tmp/eksctl /usr/local/bin Kubectl Install Linksudo chmod +x ./kubectlsudo mv ./kubectl /usr/local/bin Eks 클러스터 설정Inbound : 80, 443Out..
ServiceapiVersion: v1kind: Servicemetadata: name: namespace: annotations: service.beta.kubernetes.io/aws-load-balancer-type: "nlb" service.beta.kubernetes.io/aws-load-balancer-subnets: , alb.ingress.kubernetes.io/load-balancer-name: alb.ingress.kubernetes.io/scheme: #internet-facing #internal alb.ingress.kubernetes.io/healthcheck-path: spec: selector: : ports: - pr..
Grafana를 설정하기 전에 더보기 AWS EKS Console에 접속하여 "추가기능"에서 EBS CSI Driver를 추가해줘야 합니다 EBS CSI Driver를 추가하면 이런 JSON형태가 뜨는데 :sub 뒤에 "system:serviceaccount:kube-system:ebs-csi-controller-sa"를 추가한뒤 저장해주세요 더보기 Eks Cluster에서 사용하는 모든 퍼블릭 서브넷에 태그를 추가해줍니다. kubernetes.io/role/elb Eks Cluster에서 사용하는 모든 프라이빗 서브넷에 태그를 추가해줍니다. kubernetes.io/role/internal-elb Helm으로 Grafana를 설치해줍니다 helm repo add grafana https://grafan..
Aws 문서 curl -o dns-policy.json https://raw.githubusercontent.com/wngnl05/Aws/main/Kubernetes/External-DNS/dns-policy.json json파일로 IAM 정책을 생성해주세요. eksctl create iamserviceaccount --name external-dns \ --namespace default \ --cluster \ --attach-policy-arn \ --approve kubectl get sa eksctl명령어에 정책 ARN을 수정하고 실행한뒤 "kubectl get sa"명령어로 "external-dns"가 생성되었는지 확인합니다. kubectl api-versions | grep rbac.auth..