Spinnaker에서 배포할 클러스터 추가

Cloud Launcher로 시작한 spinnaker에 배포 할 클러스터를 추가하려고 할 때 빠졌으므로 절차를 작성하십시오.

ubuntu 사용자가 수행해야 할 사항과 hal deploy apply에서만 설정이 적용되지 않는다는 점에 유의해야합니다.

전제



Cloud Lancher에서 spinnaker를 시작하려면 다음과 같이 시작해야합니다.



  • Kubernetes Account Name
  • first-cluster-k8s


  • Kubernetes Cluster Name
  • first-cluster


  • Kubernetes Cluster Zone
  • asia-east1-a


  • Google Container Registry Address
  • asia.gcr.io


  • GCR 계정 이름
  • first-cluster-gcr


  • 추가 할 클러스터는 다음과 같습니다.

  • 클러스터 이름
  • second-cluster



  • asia-east1-a


  • 절차


    $ gcloud compute ssh spinnakerが動いているインスタンス
    

    SSH 후,
    $ sudo su - ubuntu
    $ chmod +w .kube/config
    
    # kubectlのインストール
    $ sudo curl -L https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl
    $ sudo chmod 755 /usr/local/bin/kubectl
    
    $ gcloud config set project <PROJECT NAME>
    $ gcloud config set container/use_client_certificate true
    
    # Cloud Lancherで起動した際に自動で作成されるspinnaker上のアカウント [first-cluster-k8s]に
    # [first-cluster] クラスタのコンテキストを紐付けます.
    # 単一のクラスタ管理であればコンテキストが追加されていなくとも動かすことができますが複数のクラスタを管理するには,
    # どのアカウントがどのクラスタのコンテキストを有しているかが必要になるためです.
    # (デフォルトではコンテキストは紐づいていません)
    $ hal config provider kubernetes account edit first-cluster-k8s --context=gke_<PROJECT NAME>_asia-east1-a_first-cluster
    
    $ K8S_ACCOUNT=second-cluster-k8s
    $ GCR_ACCOUNT=second-cluster-gcr
    $ GCR_ZONE=asia.gcr.ip
    $ KEY_FILE_PATH=~/.gcp/gce-for-second-cluster.json
    $ SERVICE_ACCOUNT_EMAIL=<サービスアカウントのメールアドレス(自分はデフォルトのCompute Engine default service accountを使いました)>
    
    # サービスアカウントの鍵の作成
    $ gcloud iam service-accounts keys create $KEY_FILE_PATH --iam-account $SERVICE_ACCOUNT_EMAIL
    
    # (任意)クラスタ共通で同じサービスアカウントとその鍵を使いまわしていいのであればこれは不要です
    $ hal config provider docker-registry account add $GCR_ACCOUNT \
      --address $GCR_ZONE \
      --password-file $KEY_FILE_PATH \
      --username _json_key
    

    이 작업이 완료되면 클러스터를 만듭니다. (이번에는 second-cluster라는 예)

    주의해야 할 것은 서비스 할 때 계정 계정 $SERVICE_ACCOUNT_EMAIL에 할당 된 이메일 주소의 서비스 계정을 지정하는 것입니다.

    클러스터 생성이 완료되면 spinnaker 인스턴스에서 작업하십시오.
    $ gcloud container clusters get-credentials second-cluster --zone=asia-east1-a
    $ hal config provider kubernetes account add $K8S_ACCOUNT \
      --docker-registries $GCR_ACCOUNT \
      --context $(kubectl config current-context)
    $ hal deploy apply
    
    hal deploy apply를 실행하면
    + Get current deployment
      Success
    + Prep deployment
      Success
    Problems in halconfig:
    - WARNING There is a newer version of Halyard available (0.44.0),
      please update when possible
    ? sudo apt-get update && sudo apt-get upgrade spinnaker-halyard
    
    + Preparation complete... deploying Spinnaker
    + Get current deployment
      Success
    + Apply deployment
      Success
    + Run `hal deploy connect` to connect to Spinnaker.
    /home/ubuntu/.hal/default/install.sh must be executed with root permissions; exiting
    ! ERROR Error encountered running script. See above output for more
      details.
    

    이렇게하면 마지막으로 오류 메시지가 표시됩니다.
    이 상태에서는 설정이 적용되지 않으므로 다음 명령을 적용하여 적용합니다.
    $ sudo .hal/default/install.sh
    

    잠시 시간이 걸리지 만 이것으로 완료됩니다.



    성공적으로 추가되면 spinnaker에서 여러 계정을 선택할 수 있으며 이에 연결된 클러스터에 배포 할 수 있습니다.

    좋은 웹페이지 즐겨찾기