![](/img/trans.png)
[英]how to change existing kubernetes aws cluster with kops (change nodes type)
[英]How to get AWS kops based kubernetes cluster IP address to connect with gitlab CICD pipeline
我正在嘗試創建基本的 gitlab CICD 管道,它將基於 node.js 的后端部署到基於 AWS kops 的 k8s 集群。為此,我創建了gitlab-ci.yml
文件,該文件將用於部署整個 CICD 管道,但是我對如何部署感到困惑to get kubernetes cluster IP address so I can use it in gitlab-ci.yml to set as - kubectl config set-cluster k8s --server="$CLUSTER_ADDRESS"
where I want CLUSTER_ADDRESS
to configure with gitlab in gitlab-ci.yml.
任何幫助,將不勝感激。
variables:
DOCKER_DRIVER: overlay2
REGISTRY: $CI_REGISTRY
IMAGE_TAG: $CI_REGISTRY_IMAGE
K8S_DEPLOYMENT_NAME: deployment/$CI_PROJECT_NAME
CONTAINER_NAME: $CI_PROJECT_NAME
stages:
- build
- build-docker
- deploy
build-docker:
image: docker:latest
stage: build-docker
services:
- docker:dind
tags:
- privileged
only:
- Test
script:
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $REGISTRY
- docker build --network host -t $IMAGE_NAME:$IMAGE_TAG -t $IMAGE_NAME:latest .
- docker push $IMAGE_NAME:$IMAGE_TAG
- docker push $IMAGE_NAME:latest
deploy-k8s-(stage):
image:
name: kubectl:latest
entrypoint: [""]
stage: deploy
tags:
- privileged
# Optional: Manual gate
when: manual
dependencies:
- build-docker
script:
- kubectl config set-cluster k8s --server="$CLUSTER_ADDRESS"
- kubectl config set clusters.k8s.certificate-authority-data $CA_AUTH_DATA
- kubectl config set-credentials gitlab-service-account --token=$K8S_TOKEN
- kubectl config set-context default --cluster=k8s --user=gitlab-service-account --namespace=default
- kubectl config use-context default
- kubectl set image $K8S_DEPLOYMENT_NAME $CI_PROJECT_NAME=$IMAGE_TAG
- kubectl rollout restart $K8S_DEPLOYMENT_NAME
如果您當前的 kubeconfig 上下文設置為相關集群,您可以運行以下命令來獲取所需的集群地址:
kubectl config view --minify --raw \
--output 'jsonpath={.clusters[0].cluster.server}'
如果沒有,您可以添加--context <cluster name>
。
在大多數情況下,這將是https://api.<cluster name>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.