2017-11-24 2 views
0

2 대의 Ubuntu 16.04.2 LTS 시스템에 Kubernetes 클러스터 (1 마스터 + 1 노드)를 설치했습니다. 마스터에서 다른 호스트에서 Kubernetes API에 연결할 수 없습니다.

, 나는 쉽게 난 그냥 시간 제한 오류가 다른 호스트에서 curl -v -k https://<IP>:6443/api

를 사용하여 예를 들어, API에 액세스 할 수 있습니다. 포트를 검색하면 6443 포트가 닫힙니다.

사실, Kubernetes 통합을 사용하여 GitLab CI를 구성해야합니다. 나는 그것을 제공 :

  • API의 URL : 내가는 Kubernetes
  • 내가 용기를 업로드 내 클러스터를 구성 할 때 다음과 같은 얻을

에서 가져온 내가는 Kubernetes

  • 인증서에서 가져온 https://<IP>:6443/api
  • 토큰 :

    $ kubectl config set-cluster my-cluster --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM_FILE" 
    Cluster "my-cluster" set. 
    $ kubectl config set-credentials admin --token="$KUBE_TOKEN" 
    User "admin" set. 
    $ kubectl config set-context default-context --cluster=my-cluster --user=admin 
    Context "default-context" set. 
    $ kubectl config use-context default-context 
    Switched to context "default-context". 
    $ kubectl get cs 
    Unable to connect to the server: dial tcp <IP>:6443: i/o timeout 
    

    내가 뭘 잘못하고 있니? 힌트 : 나는 Kubernetes에 완전히 익숙하지만 개인 Docker 레지스트리와 개인 Kubernetes 클러스터 인 개인 GitLab을 연결하려고합니다. 나는 아무 문제없이 kubeadm join --token TOKEN <IP>:6443 --discovery-token-ca-cert-hash HASH하여 마스터 노드를 연결할 수 있습니다

    이를 포함하는 단일 온라인 자원 ...

    보완 정보를 찾을 수 없습니다.

    netstat -nplt을 제공합니다

    tcp  0  0 127.0.0.1:10248   0.0.0.0:*    LISTEN  1242/kubelet 
    tcp  0  0 127.0.0.1:10249   0.0.0.0:*    LISTEN  2225/kube-proxy 
    tcp  0  0 127.0.0.1:10251   0.0.0.0:*    LISTEN  1978/kube-scheduler 
    tcp  0  0 127.0.0.1:2379   0.0.0.0:*    LISTEN  1887/etcd 
    tcp  0  0 127.0.0.1:10252   0.0.0.0:*    LISTEN  1926/kube-controlle 
    tcp  0  0 127.0.0.1:2380   0.0.0.0:*    LISTEN  1887/etcd 
    tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  1289/sshd 
    tcp6  0  0 :::10250    :::*     LISTEN  1242/kubelet 
    tcp6  0  0 :::6443     :::*     LISTEN  1904/kube-apiserver 
    tcp6  0  0 :::10255    :::*     LISTEN  1242/kubelet 
    tcp6  0  0 :::10256    :::*     LISTEN  2225/kube-proxy 
    tcp6  0  0 :::22     :::*     LISTEN  1289/sshd 
    
  • 답변

    0

    당신은 시간 제한 오류가 발생하는 경우, 당신이 트래픽을 차단하는 방화벽이 가능성이 높다. 클라우드 공급자 방화벽 (예 : AWS 보안 그룹)을 확인하고 포트에 액세스 할 수 있는지 확인하는 것이 좋습니다.

    sudo netstat -nplt 
    

    을 그리고 KUBE-apiserver이 127.0.0.1:6443 또는 0.0.0.0:6443 듣기되어 있는지 확인 :

    그 옵션이없는 경우에, 나는 당신이 당신의 마스터에서 다음 명령을 실행하는 것이 좋습니다. 전자의 경우 API 수신 주소를 변경하기 위해 kube-apiserver 시스템 서비스를 확인하십시오.

    +0

    포트 6443에 대한 유일한 행 :''tcp6 0 0 :: 6443 ::: * LISTEN -'' – Havelock

    +0

    왜 IPv4를 듣지 않습니까? – Havelock

    +0

    클러스터를 어떻게 설치 했습니까? –

    관련 문제