Hello các bạn mình đã có 1 bài upgrade eks bằng eksctl.
Sau khi chúng ta đã understanded các command thì design bitbucket-pipeline để upgrade eks cluster.
Đầu tiền bạn cần set up các env chung.

eks-upgrade AWS_ACCESS_KEY_ID: xxxx AWS_SECRET_ACCESS_KEY: xxxx regionName: us-west-2 eksClusterName: xxxx
Và đây là file bitbucket-pipelines.yml
pipelines: custom: ### Running eksctl ### Create eksClusterName, regionName in Deployment ENV upgrade-eks: - variables: - name: upgradeToVersion default: '1.20' allowed-values: # optionally restrict variable values - '1.20' - '1.21' - step: name: 'Set environment variables' deployment: eks-upgrade image: weaveworks/eksctl:latest script: - printenv | xargs echo export > .envs artifacts: - .envs - step: name: 'Get Cluster infomations' image: weaveworks/eksctl:latest script: - source .envs - eksctl get cluster --name $eksClusterName --region $regionName --output yaml - step: name: 'Upgrade EKS Controller' image: weaveworks/eksctl:latest trigger: manual script: - source .envs - eksctl upgrade cluster --name $eksClusterName --region $regionName --version $upgradeToVersion --approve - step: name: 'Create New Node Group' image: weaveworks/eksctl:latest trigger: manual script: - source .envs - eksctl create nodegroup --cluster $eksClusterName --region $regionName run-kubectl-command: - variables: - name: namespace default: 'default' allowed-values: - 'default' - 'kube-system' - name: command default: 'get node' - step: name: "Run kubectl command" deployment: eks-upgrade image: bitbucketpipelines/aws-eks-kubectl-run:latest script: - aws eks --region $regionName update-kubeconfig --name $eksClusterName - echo "run command --> kubectl -n $namespace $command" - kubectl -n $namespace $command get-nodegroup-eks: - step: name: "Get Node Group EKS" deployment: eks-upgrade image: weaveworks/eksctl:latest script: - eksctl get nodegroup --cluster $eksClusterName --region $regionName delete-nodegroup-eks: - variables: - name: nodeGroupName - step: name: "Delete Node Group EKS" deployment: eks-upgrade image: weaveworks/eksctl:latest script: - eksctl delete nodegroup --cluster $eksClusterName --region $regionName --name $nodeGroupName
Sau khi deploy hết thì bạn cần kiểm tra lại các ingress có hoạt động ko nhé.

