2017-10-16 9 views
1

현재 Gitlab CI에 Kubernetes 클러스터를 사용하려고합니다. 좋지 않은 문서 (https://docs.gitlab.com/runner/install/kubernetes.html)를 따르는 동안 나는 Gitlab CI 섹션의 토큰을 사용하여 러너를 수동으로 등록하여 다른 토큰을 가져 와서 배포에 사용하는 ConfigMap에서 사용할 수있었습니다.Kubernetes에서 Gitlab CI 러너를 실행할 때 포드 상태가 보류 중입니다.

-ConfigMap

apiVersion: v1 
kind: ConfigMap 
metadata: 
    name: gitlab-runner 
    namespace: gitlab 
data: 
    config.toml: | 
    concurrent = 4 
    [[runners]] 
     name = "Kubernetes Runner" 
     url = "https://url/ci" 
     token = "TOKEN" 
     executor = "kubernetes" 
     [runners.kubernetes] 
      namespace = "gitlab" 

-Deployment

이 두 가지로
apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: gitlab-runner 
    namespace: gitlab 
spec: 
    replicas: 4 
    selector: 
    matchLabels: 
     name: gitlab-runner 
    template: 
    metadata: 
     labels: 
     name: gitlab-runner 
    spec: 
     containers: 
     - args: 
     - run 
     image: gitlab/gitlab-runner:latest 
     imagePullPolicy: Always 
     name: gitlab-runner 
     volumeMounts: 
     - mountPath: /etc/gitlab-runner 
      name: config 
     restartPolicy: Always 
     volumes: 
     - configMap: 
      name: gitlab-runner 
     name: config 

나는 Gitlab 러너 섹션에서 주자를 볼 수 있습니다하지만 난이 일을 시작할 때마다, 새로운 창조 포드는 대기에 머물 지위.

나는 그것을 해결하기 위해 싶지만 내가 아는 모든 노드와 포드는 이러한 이벤트를 얻을 수 있습니다 :

-Pods :

Events: 
  FirstSeen     LastSeen        Count   From                    SubObjectPath   Type            Reason                  Message 
  ---------     --------        -----   ----                    -------------   --------        ------                  ------- 
  35s           4s              7       {default-scheduler }                    Warning         FailedScheduling        No nodes are available that match all of the following predicates:: MatchNodeSelector (2). 

-nodes :

Events: 
  FirstSeen     LastSeen        Count   From                                            SubObjectPath   Type            Reason                                  Message 
  ---------     --------        -----   ----                                            -------------   --------        ------                                  ------- 
  4d            31s             6887    {kubelet gitlab-ci-hc6k3ffax54o-master-0}                       Warning         FailedNodeAllocatableEnforcement        Failed to update Node Allocatable Limits "": failed to set supported cgroup subsystems for cgroup : Failed to set config for supported subsystems : failed to write 3783761920 to memory.limit_in_bytes: write /rootfs/sys/fs/cgroup/memory/memory.limit_in_bytes: invalid argument  

하나를 이것이 왜 일어나고 있는지에 대한 아이디어?

편집 : kubectl은 추가 설명합니다 :

Name:   runner-45384765-project-1570-concurrent-00mb7r 
Namespace:  gitlab 
Node:   /
Labels:   <none> 
Status:   Pending 
IP: 
Controllers: <none> 
Containers: 
    build: 
    Image:  blablabla:latest 
    Port: 
    Command: 
     sh 
     -c 
     if [ -x /usr/local/bin/bash ]; then 
     exec /usr/local/bin/bash 
elif [ -x /usr/bin/bash ]; then 
     exec /usr/bin/bash 
elif [ -x /bin/bash ]; then 
     exec /bin/bash 
elif [ -x /usr/local/bin/sh ]; then 
     exec /usr/local/bin/sh 
elif [ -x /usr/bin/sh ]; then 
     exec /usr/bin/sh 
elif [ -x /bin/sh ]; then 
     exec /bin/sh 
else 
     echo shell not found 
     exit 1 
fi 


    Volume Mounts: 
     /var/run/secrets/kubernetes.io/serviceaccount from default-token-1qm5n (ro) 
     /vcs from repo (rw) 
    Environment Variables: 
     CI_PROJECT_DIR:   blablabla 
     CI_SERVER:    yes 
     CI_SERVER_TLS_CA_FILE: -----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 

     CI:      true 
     GITLAB_CI:    true 
     CI_SERVER_NAME:   GitLab 
     CI_SERVER_VERSION:  9.5.5-ee 
     CI_SERVER_REVISION:  cfe2d5c 
     CI_JOB_ID:    5625 
     CI_JOB_NAME:    pylint 
     CI_JOB_STAGE:    build 
     CI_COMMIT_SHA:   ece31293f8eeb3a36a8585b79d4d21e0ebe8008f 
     CI_COMMIT_REF_NAME:  master 
     CI_COMMIT_REF_SLUG:  master 
     CI_REGISTRY_USER:   gitlab-ci-token 
     CI_BUILD_ID:    5625 
     CI_BUILD_REF:    ece31293f8eeb3a36a8585b79d4d21e0ebe8008f 
     CI_BUILD_BEFORE_SHA:  ece31293f8eeb3a36a8585b79d4d21e0ebe8008f 
     CI_BUILD_REF_NAME:  master 
     CI_BUILD_REF_SLUG:  master 
     CI_BUILD_NAME:   pylint 
     CI_BUILD_STAGE:   build 
     CI_PROJECT_ID:   1570 
     CI_PROJECT_NAME:   blablabla 
     CI_PROJECT_PATH:   blablabla 
     CI_PROJECT_PATH_SLUG:  blablabla 
     CI_PROJECT_NAMESPACE:  vcs 
     CI_PROJECT_URL:   https://blablabla 
     CI_PIPELINE_ID:   2574 
     CI_CONFIG_PATH:   .gitlab-ci.yml 
     CI_PIPELINE_SOURCE:  push 
     CI_RUNNER_ID:    111 
     CI_RUNNER_DESCRIPTION: testing on kubernetes 
     CI_RUNNER_TAGS:   docker-image-build 
     CI_REGISTRY:    blablabla 
     CI_REGISTRY_IMAGE:  blablabla 
     PYLINTHOME:    ./pylint-home 
     GITLAB_USER_ID:   2277 
     GITLAB_USER_EMAIL:  blablabla 
    helper: 
    Image:  gitlab/gitlab-runner-helper:x86_64-a9a76a50 
    Port: 
    Command: 
     sh 
     -c 
     if [ -x /usr/local/bin/bash ]; then 
     exec /usr/local/bin/bash 
elif [ -x /usr/bin/bash ]; then 
     exec /usr/bin/bash 
elif [ -x /bin/bash ]; then 
     exec /bin/bash 
elif [ -x /usr/local/bin/sh ]; then 
     exec /usr/local/bin/sh 
elif [ -x /usr/bin/sh ]; then 
     exec /usr/bin/sh 
elif [ -x /bin/sh ]; then 
     exec /bin/sh 
else 
     echo shell not found 
     exit 1 
fi 


    Volume Mounts: 
     /var/run/secrets/kubernetes.io/serviceaccount from default-token-1qm5n (ro) 
     /vcs from repo (rw) 
    Environment Variables: 
     CI_PROJECT_DIR:   blablabla 
     CI_SERVER:    yes 
     CI_SERVER_TLS_CA_FILE: -----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
blablabla 
-----END CERTIFICATE----- 

     CI:      true 
     GITLAB_CI:    true 
     CI_SERVER_NAME:   GitLab 
     CI_SERVER_VERSION:  9.5.5-ee 
     CI_SERVER_REVISION:  cfe2d5c 
     CI_JOB_ID:    5625 
     CI_JOB_NAME:    pylint 
     CI_JOB_STAGE:    build 
     CI_COMMIT_SHA:   ece31293f8eeb3a36a8585b79d4d21e0ebe8008f 
     CI_COMMIT_REF_NAME:  master 
     CI_COMMIT_REF_SLUG:  master 
     CI_REGISTRY_USER:   gitlab-ci-token 
     CI_BUILD_ID:    5625 
     CI_BUILD_REF:    ece31293f8eeb3a36a8585b79d4d21e0ebe8008f 
     CI_BUILD_BEFORE_SHA:  ece31293f8eeb3a36a8585b79d4d21e0ebe8008f 
     CI_BUILD_REF_NAME:  master 
     CI_BUILD_REF_SLUG:  master 
     CI_BUILD_NAME:   pylint 
     CI_BUILD_STAGE:   build 
     CI_PROJECT_ID:   1570 
     CI_PROJECT_NAME:   blablabla 
     CI_PROJECT_PATH:   blablabla 
     CI_PROJECT_PATH_SLUG:  blablabla 
     CI_PROJECT_NAMESPACE:  vcs 
     CI_PROJECT_URL:   blablabla 
     CI_PIPELINE_ID:   2574 
     CI_CONFIG_PATH:   .gitlab-ci.yml 
     CI_PIPELINE_SOURCE:  push 
     CI_RUNNER_ID:    111 
     CI_RUNNER_DESCRIPTION: testing on kubernetes 
     CI_RUNNER_TAGS:   docker-image-build 
     CI_REGISTRY:    blablabla 
     CI_REGISTRY_IMAGE:  blablabla 
     PYLINTHOME:    ./pylint-home 
     GITLAB_USER_ID:   2277 
     GITLAB_USER_EMAIL:  blablabla 
Conditions: 
    Type   Status 
    PodScheduled False 
Volumes: 
    repo: 
    Type:  EmptyDir (a temporary directory that shares a pod's lifetime) 
    Medium: 
    default-token-1qm5n: 
    Type:  Secret (a volume populated by a Secret) 
    SecretName: default-token-1qm5n 
QoS Class:  BestEffort 
Tolerations: <none> 
Events: 
    FirstSeen  LastSeen  Count From     SubObjectPath Type   Reason     Message 
    ---------  --------  ----- ----     ------------- --------  ------     ------- 
    39s   8s    7  {default-scheduler }     Warning   FailedScheduling  No nodes are available that match all of the following predicates:: MatchNodeSelector (2). 
+1

대기중인 pod (및 기존의 경우 배포)에 대해'kube describe'를 추가 할 수 있습니까? 어떤 K8 버전을 사용하십니까? – adebasi

답변

0

때문에의 :

selector: 
    matchLabels: 
     name: gitlab-runner 

없음 포드가 레이블이있는 작업을 검색 할 수 없습니다.

선택기를 제거하면 충분할 것입니다. 필요하지 않습니다.