【问题标题】:How to Access the Application after the kubernetes deploymentKubernetes部署后如何访问应用程序
【发布时间】:2020-01-16 21:24:38
【问题描述】:

我是 kubernetes 工具的新手,我正在尝试使用 docker + kubernetes 部署 Angular 应用程序,这里是下面的 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

现在的问题是部署后我无法使用以下命令在两台机器主机中看到 Pod 和部署,请有人帮我在成功部署后如何访问应用程序。

kubectl get pods
kubectl get services
kubectl get deployments

【问题讨论】:

    标签: jenkins kubernetes


    【解决方案1】:

    您在运行 "${kubectl} apply -f ./environment/pre-release -n=pre-release" 时将命名空间设置为 pre-release

    要获取此命名空间中的 pod,请使用:kubectl get pods -n pre-release

    命名空间是一种在单个物理 Kubernetes 集群中分隔不同虚拟集群的方法。详情请参阅https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

    【讨论】:

      【解决方案2】:

      当您运行以下命令时,您正在使用 -n 选项在名为 pre-release 的命名空间中创建资源。

      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,这样您就不需要在每个 kubectl 命令后附加 -n pre-release,您可以运行以下命令:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 2015-09-16
        • 2019-04-02
        • 2018-09-04
        相关资源
        最近更新 更多