Как получить доступ к приложению после развертывания kubernetes

Я новичок в инструменте kubernetes, я пытаюсь развернуть приложение Angular, используя docker + kubernetes, здесь приведенный ниже скрипт Jenkins.

stage('Deploy') {
       container('kubectl') {        
            withCredentials([kubeconfigFile(credentialsId: 'KUBERNETES_CLUSTER_CONFIG', variable: 'KUBECONFIG')]) {
            def kubectl
               kubectl = "kubectl --kubeconfig=${KUBECONFIG} --context=demo"
               echo 'deployment to PRERELEASE!'
               sh "kubectl config get-contexts"
               sh "kubectl -n demo get pods"
               sh  "${kubectl} apply -f ./environment/pre-release -n=pre-release"
               } 
            }
            }
    }

Пожалуйста, найдите ниже выходные данные Дженкинса

/home/jenkins/agent/workspace/DevOps-CI_future-master-fix
[Pipeline] stage
[Pipeline] { (Deploy)
[Pipeline] container
[Pipeline] {
[Pipeline] withCredentials
Masking supported pattern matches of $KUBECONFIG
[Pipeline] {
[Pipeline] echo
deploy to deployment!!
[Pipeline] echo
deploy to PRERELEASE!
[Pipeline] sh
+ kubectl config get-contexts
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         demo                          kubernetes   kubernetes-admin   demo
          kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   
[Pipeline] sh
+ kubectl -n demo get pods
NAME                                                      READY   STATUS    RESTARTS   AGE
worker-f99adee3-dedd-46ca-bc0d-6b24391e5865-qkd47-mwl3v   5/5     Running   0          26s
[Pipeline] sh
+ kubectl '--kubeconfig=****' '--context=demo' apply -f ./environment/pre-release '-n=pre-release'
deployment.apps/frontend-deploy unchanged
service/frontend unchanged
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline
Finished: SUCCESS

Теперь возникают вопросы после развертывания. Я не могу увидеть модули и развертывание на обеих основных машинах, используя приведенную ниже команду. Не могли бы вы мне помочь, как получить доступ к приложению после успешного развертывания.

kubectl get pods
kubectl get services
kubectl get deployments

Всего 2 ответа


Вы устанавливаете пространство имен для pre-release при запуске "${kubectl} apply -f ./environment/pre-release -n=pre-release" .

Чтобы получить pods в этом пространстве имен, используйте: kubectl get pods -n pre-release .

Пространства имен - это способ разделения разных виртуальных кластеров внутри одного физического кластера Kubernetes. См. Https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ для получения более подробной информации.


Вы создаете ресурсы в пространстве имен с именем pre-release используя опцию -n когда запускаете следующую команду.

kubectl '--kubeconfig=****' '--context=demo' apply -f ./environment/pre-release '-n=pre-release'
deployment.apps/frontend-deploy unchanged

Вам необходимо перечислить ресурсы в том же пространстве имен.

kubectl get pods -n pre-release
kubectl get services -n pre-release
kubectl get deployments -n pre-release

По умолчанию kubectl будет выполнять запрошенную операцию в пространстве имен по default . Если вы хотите настроить текущее пространство имен на pre-release чтобы вам не нужно было добавлять -n pre-release к каждой команде kubectl, вы можете выполнить следующую команду:

kubectl config set-context --current --namespace=pre-release

Есть идеи?

10000