GruCloud를 사용하여 AWS에서 KOP 설정

11850 단어 kopsawsiac
이 자습서의 목적은 kops에 필요한 AWS 자원을 자동으로 생성하고 제거하는 것입니다. 이 도구는 Kubernetes 클러스터를 만드는 데 사용됩니다.
kops 공식 문서의 'setup your environment' 부분은 GruCloud을 통해 자동화
다음은 리소스와 리소스의 상호 연관성을 설명하는 대상 코드에서 생성된 차트입니다.

Regarding this DNS scenario, the case of a subdomain where a top-level hosted zone already exists is implemented.


운송서박사 01 명

  • 은 이 example code을 수령하고 의존 항목을 설치합니다.
  • 구성 파일을 편집하고 도메인, 하위 도메인, 영역 및 영역을 설정합니다.
  • gc apply
  • kops에 필요한 모든 AWS 리소스가 작성되었습니다.환경 파일 kops.필요한 정보를 포함하는 env도 생성해야 한다.
    당신은 지금 create a cluster with kops을 준비했습니다.
    다음은 npm 스크립트 포장기: npm run kops:create, npm run kops:updatenpm run kops:validate입니다.

    층계


    다음은 자동화 단계에 대한 설명입니다.

    국제 기계사 협회

  • 에서 5개의 IAM 정책을 포함하는 kops 그룹을 만듭니다.
  • 에서 kops 사용자를 만들고 이 사용자를 kops 그룹에 추가합니다.
  • kops 사용자를 위한 접근 권한과 키를 만듭니다.
  • 노선

  • 은 하위 도메인에 대한 관리 영역을 만듭니다.
  • 은 DNS 서버를 하위 도메인 관리 영역의 값으로 사용하여 최상위 관리 영역에 NS 유형의 DNS 레코드를 만듭니다.
  • S3

  • 은 암호화와 버전 제어가 있는 S3 스토리지 통을 만듭니다.
  • 코프스.환경 파일

  • kops 환경 변수를 포함하는 파일 만들기
  • 이 모든 명령을 수동으로 실행할 필요가 없습니다.이 역시 모든 자원의 파괴에 적용된다.

    요구 사항

  • Access to the AWS console
  • AWS CLI 구성
  • 라우터 53에 등록된 도메인 이름입니다.
  • Node.js
  • GruCloud CLI
  • 설치하다.


    클론 code, kops folder으로 변경, npm 의존 설치:
    git clone https://github.com/grucloud/grucloud
    cd grucloud/examples/aws/kops
    npm install
    

    프로비저닝


    config.js을 편집하고 도메인, 하위 도메인, 영역 및 영역을 설정합니다.gc info을 사용하여 구성에 대해 자세히 살펴보십시오.
      - provider:
          name: aws
          type: aws
        stage: dev
        config:
          projectName: @grucloud/create-aws-kops
          kops:
            domainName: grucloud.org
            subDomainName: kops.example.grucloud.org
            groupName: kops
            userName: kops
          stage: dev
          zone: us-east-1a
          accountId: 4444454555555
          region: us-east-1
    
    현재 AWS 사용자를 위해 Route53에 도메인 이름을 등록해야 합니다.
    우리는 또한 상부 위탁 관리 구역이 이미 존재하는지 검증해야 한다.
    gc list 명령을 Route53Domain 및 HostedZone 유형 필터와 함께 사용할 수 있습니다.
    gc list  -t Route53Domain -t HostedZone
    
    [...Truncated]
    ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
    │ aws                                                                                         │
    ├────────────────────┬────────────────────────────────────────────────────────────────────────┤
    │ Route53Domain      │ grucloud.org                                                           │
    ├────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ HostedZone         │ grucloud.org.                                                          │
    └────────────────────┴────────────────────────────────────────────────────────────────────────┘
    

    에크.js


    iac.js에서 설명한 아키텍처를 참조하십시오.
    이번 사용에서 클라우드 공급자는 AWS이기 때문에 우리는 GruCloud AWS Provider을 사용하여 자원을 만들 것이다.

    목표도


    iac의 또 다른 방식을 탐색하다.js에서 대상 리소스에 대한 차트를 생성합니다.
    gc graph
    

    배치하다


    사용자, 그룹, s3 메모리통, 53 트랜잭션 구역과 기록을 배치할 준비가 되어 있습니까?
    gc apply
    
    AWS 리소스는 이미 배포되어 있을 것입니다.
    실시간 리소스와 리소스 간의 상관 관계를 보여주는 차트를 살펴보겠습니다.
    gc list --graph --our
    
    ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
    │ aws                                                                                         │
    ├────────────────────┬────────────────────────────────────────────────────────────────────────┤
    │ IamPolicy          │ AmazonEC2FullAccess                                                    │
    │                    │ AmazonRoute53FullAccess                                                │
    │                    │ AmazonS3FullAccess                                                     │
    │                    │ IAMFullAccess                                                          │
    │                    │ AmazonVPCFullAccess                                                    │
    ├────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ IamGroup           │ kops                                                                   │
    ├────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ S3Bucket           │ kops.example.grucloud.org                                              │
    ├────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ IamUser            │ kops                                                                   │
    ├────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ HostedZone         │ kops.example.grucloud.org.                                             │
    │                    │ grucloud.org.                                                          │
    ├────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ Route53Record      │ kops.example.grucloud.org-ns                                           │
    └────────────────────┴────────────────────────────────────────────────────────────────────────┘
    11 resources, 15 types, 1 provider
    

    환경 변수


    배치가 끝났을 때 환경 파일kops입니다.env는 kops에서 요청한 변수로 생성됩니다.
    # kops.env
    export AWS_ACCESS_KEY_ID=XXXXXXNBM2ZQEPXXXXX
    export AWS_SECRET_ACCESS_KEY=XXXXXiXmSB3aZTK/AxOOvSPcGby3XXXXXX
    export NAME=kops.example.grucloud.org
    export KOPS_STATE_STORE=s3://kops.example.grucloud.org
    export REGION=eu-west-2
    export ZONE=eu-west-2a
    
    다음 변수가 있는 소스:
    source kops.env
    
    부서가 gc에 의해 소각되었을 때,kops.env가 제거되었습니다.
    문건 hook.js은 이 논리를 실현하는 곳이다.

    NPM kops 스크립트


    다음 npm 스크립트 관리kops 명령, 환경 변수는kops에서 유래합니다.환경
    npm run kops:create
    npm run kops:update
    npm run kops:validate
    

    리소스 나열


    모든 실시간 자원을 가져옵니다. kops는 자동 축소 그룹,ec2 실례, 서브넷, vpc, 인터넷 스위치, 볼륨, 키 등 많은 자원을 만들었습니다.
    gc list --graph --all --default-exclude --types-exclude Certificate --types-exclude Route53Domain --types-exclude NetworkInterface
    

    You could inspect and generate a diagram of any existing AWS infrastruture for the most used resources


    부수다


    GruCloud에서 생성한 리소스를 제거하려면 destroy 명령을 사용합니다.

    Ensure the cluster is destroyed before.


    npm run kops:destroy
    gc destroy
    
    또는 gc는 kops가 만든 모든 자원을 삭제하고 all 로고를 사용할 수 있습니다.
    gc destroy --all
    

    다음 단계


    축하합니다. kops로 Kubernetes 그룹을 만들고 파괴하는 방법을 알고 있습니다.
    그러면 부하 균형기, DNS 기록과 SSL 인증서는?Grucloud은 노드 패키지 관리자 npm와 함께 나누어 주는 기존 모듈을 제공합니다.
    보기:

  • @grucloud/module-aws-certificate: 인증서와 루트 53 기록을 작성하여 검증합니다.

  • @grucloud/module-aws-load-balancer: 부하 평형기, 목표 그룹, 탐지기와 규칙을 관리한다.보다 간편한 대안은 클러스터에서 실행되는 AWS 로드 밸런서 컨트롤러입니다.

  • @grucloud/module-aws-vpc: Kubernetes 클러스터 생성에 필요한 기본 리소스를 포함합니다.
  • 쿠베르네트스 측에서 GruCloud Kubernetes Provider을 주의하세요.요컨대 YAML 목록을 작성하는 것이 아니라 자바스크립트를 사용하여 목록을 정의하고 템플릿 엔진을 사용하지 않고 진정한 프로그래밍 언어를 사용합니다.
    EKS에 full stack application을 배치하시겠습니까?로드 이퀄라이저를 만드는 담당자, 타겟 그룹, 탐지기 및 규칙에 따라 입맛을 선택합니다.
  • 클러스터에 AWS 로드 밸런서 컨트롤러를 사용하여 생성된 로드 밸런서 리소스: eks-lbc
  • 은 클러스터 외부의 GruCloud에 의해 로드 밸런서 리소스가 생성된 더 단순한 솔루션입니다. eks-lean.
  • 링크

  • GitHub
  • Documentation
  • Website

  • 좋은 웹페이지 즐겨찾기