📂
Amazon EKS
  • Amazon EKS
  • 워크스페이스 생성하기
    • Cloud9 IDE 환경 구성
    • IAM 역할 생성
    • SSH & CMK Key 생성하기
  • EKS 클러스터 구축
    • EKS 클러스터 만들기
  • 쿠버네티스 대시보드 배포
    • Kubernetes 공식 대시보드 배포
  • 마이크로서비스 배포
    • 예제 애플리케이션 배포
    • 서비스 스케일(Scaling)
    • 애플리케이션 정리하기
  • 애플리케이션 배포 - Helm
    • HELM 설치
    • Helm으로 Nginx 배포
    • Helm을 사용하여 마이크로서비스 배포
    • 정리하기
  • 리소스 관리 - POD 배치
    • NodeSelector
    • Affinity and Anti-affinity
    • 더 실용적인 사용 사례
    • 정리하기
  • 리소스 관리 - Health Checks
    • Liveness 프로브 구성
    • Readiness 프로브 구성
    • 정리하기
  • 리소스 관리 - AutoScaling
    • HPA 구성하기
    • CA 구성하기
    • 정리하기
  • 네트워킹 - 서비스 노출
    • 서비스와 애플리케이션 연결
    • 서비스에 접근하기
    • 서비스 노출
    • Ingress
    • Ingress Controller
    • 정리하기
  • 네트워크 - Calico 정책
    • Calico 설치하기
    • Stars Policy Demo
    • 정리하기
  • Updating 권한설정 - RBAC
    • 테스트 POD 설치
    • 사용자 생성 및 맵핑
    • 역할과 바인딩
    • 정리하기
  • Updating 권한설정 - IAM 그룹
    • IAM Role, Group & User 생성하기
    • RBAC 설정하기
    • EKS 엑세스 테스트
    • 정리하기
  • Updating 권한설정 - Service account
    • OIDC 자격 증명 공급자 생성하기
    • IAM 역할 생성 및 지정
    • 샘플 POD 배포
    • 정리하기
  • Updating - 네트워크 - POD Security Group
    • SG 생성하기
    • RDS 생성하기
    • CNI 구성하기
    • SG 정책
    • Pod 배포하기
    • 정리하기
  • Updating - 모니터링 - Prometheus and Grafana
    • Prometheus 배포하기
    • Grafana 배포하기
    • 정리하기(Optional)
  • Updating 모니터링 - X-Ray
    • X-Ray DaemonSet 배포하기
    • 샘플 마이크로서비스 배포
    • X-Ray console 확인
    • 정리하기(Optional)
  • Updating 모니터링 - Container Insights
    • 사전 준비
    • Container Insights 구성하기
    • 부하 테스트
    • Container Insights 확인하기
    • 정리하기(Optional)
  • Updating CD - Gitops with Flux
    • 사전 준비
    • Codepipeline
    • EKS에 배포
    • 정리하기
  • Updating Argo Rollouts
  • Updating Service Mesh - AWS App Mesh
    • Fargate 및 OBSERVABILITY 구성
    • Product Catalog App 배포
    • APP MESH 설치
    • Porting to APP MESH
    • Virtual Gateway 구성
    • Canary
    • Observability
  • Updating 버전 업그레이드 - EKS Cluster
    • Upgrade EKS control Plane
    • Upgrade EKS CORE ADD-ONs
    • Upgrade Managed Node Group
Powered by GitBook
On this page

Was this helpful?

  1. 네트워크 - Calico 정책

Calico 설치하기

Previous네트워크 - Calico 정책NextStars Policy Demo

Last updated 3 years ago

Was this helpful?

에서 Calico manifest를 적용합니다. 이렇게 하면 kube-system 네임 스페이스에 데몬 세트가 생성됩니다.

kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/master/config/v1.6/calico.yaml

Calico manifasts의 몇 가지 주요 기능을 살펴 보겠습니다.

1) 전체적으로 annotation을 봅니다. Annotation은 식별되지 않는 메타 데이터를 개체에 연결하는 방법입니다. 이 메타 데이터는 쿠버네티스에서 내부적으로 사용되지 않으므로 k8s 내에서 식별하는 데 사용할 수 없습니다. 대신 외부 도구 및 라이브러리에서 사용됩니다. Annotation의 예로는 빌드/릴리스 타임 스탬프, 디버깅을 위한 클라이언트 라이브러리 정보 또는 이 경우에는 Calico와 같은 네트워크 정책에서 관리하는 필드가 있습니다.

Taint는 키, 값 및 효과로 구성 되며 다음과 같습니다.

  • PreferNoSchedule : Taint 노드에 허용되지 않는 파드를 예약하지 않는 것을 선호합니다.

  • NoSchedule : Taint 노드에 허용되지 않는 포드를 예약 하지 않습니다.

  • NoExecute : 예약하지 않는 것 외에도 노드에서 이미 실행중인 허용되지 않는 파드를 제거 합니다.

Taint와 마찬가지로 toleration에는 연산자가 추가 된 키 값 쌍과 효과가 있습니다. 여기 Calico manifasts에서 toleration에는 Operator = exists라는 하나의 속성만 있습니다. 즉, 키 값 쌍이 생략되고 toleration이 모든 taint와 일치하면 모든 노드에서 실행 되도록 합니다.

kube-system 데몬 세트를 보고 calico-node 데몬이 READY 상태에서 DESIRED 수의 파드를 갖도록 설정 될 때까지 기다립니다.

kubectl get daemonset calico-node --namespace=kube-system

예상되는 결과는 다음과 유사합니다.

반대로 쿠버네티스의 은 객체의 identifying 속성을 지정하는 데 사용 됩니다. 셀렉터 쿼리 또는 레이블 셀렉터와 함께 사용 됩니다. 쿠버네티스에서 내부적으로 사용 되기 때문에 쿼리를 최적화 하기 위해 키와 값의 구조가 제한됩니다.

2) manifasts에 tolerations 속성도 확인할 수 있습니다. 은 함께 작동하여 파드가 부적절한 노드에 예약되지 않도록 합니다. Taint는 노드에 적용되며 taint를 tolerate 하는 파드만이 해당 노드에서 실행될 수 있습니다.

Labels
Taint와 Tolerations
aws/amazon-vpc-cni-k8s GitHub project