2016-04-29 12 views
3

flannelなしでhttps://coreos.com/kubernetes/docs/latest/getting-started.htmlに記載されているように、コアノ内に2つのノードを持つKubernetesクラスタを構成しています。 両方のサーバーが同じネットワークにあります。未知の機関によって署名されたx509証明書 - Kubernetes

しかし、私は取得しています: X509:不明な機関によって署名された証明書(おそらくの「暗号/ RSA:検証エラーを」候補機関の証明書「KUBE-CA」を検証しようとしているとき)労働者でkubeletを実行中。

docで説明されているように、両方のサーバーでTLS暗号化を正しく構成しました。

マスターノードが正常に動作しています。 そしてkubectlはマスターのコンテナやポッドを撃つことができます。

Ques 1:Hoこの問題を解決するには?

Ques 2:TLS証明書なしでクラスタを構成する方法はありますか。

Coreos version: 
VERSION=899.15.0 
VERSION_ID=899.15.0 
BUILD_ID=2016-04-05-1035 
PRETTY_NAME="CoreOS 899.15.0" 

Etcd CONF:

$ etcdctl member list   
ce2a822cea30bfca: name=78c2c701d4364a8197d3f6ecd04a1d8f peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://172.24.0.67:2379 

マスター:kubelet.service:

[Service] 
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests 
Environment=KUBELET_VERSION=v1.2.2_coreos.0 
ExecStart=/opt/bin/kubelet-wrapper \ 
    --api-servers=http://127.0.0.1:8080 \ 
    --register-schedulable=false \ 
    --allow-privileged=true \ 
    --config=/etc/kubernetes/manifests \ 
    --hostname-override=172.24.0.67 \ 
    --cluster-dns=10.3.0.10 \ 
    --cluster-domain=cluster.local 
Restart=always 
RestartSec=10 
[Install] 
WantedBy=multi-user.target 

マスター:KUBE-controller.yaml

apiVersion: v1 
kind: Pod 
metadata: 
    name: kube-controller-manager 
    namespace: kube-system 
spec: 
    hostNetwork: true 
    containers: 
    - name: kube-controller-manager 
    image: quay.io/coreos/hyperkube:v1.2.2_coreos.0 
    command: 
    - /hyperkube 
    - controller-manager 
    - --master=http://127.0.0.1:8080 
    - --leader-elect=true 
    - --service-account-private-key-file=/etc/kubernetes/ssl/apiserver-key.pem 
    - --root-ca-file=/etc/kubernetes/ssl/ca.pem 
    livenessProbe: 
     httpGet: 
     host: 127.0.0.1 
     path: /healthz 
     port: 10252 
     initialDelaySeconds: 15 
     timeoutSeconds: 1 
    volumeMounts: 
    - mountPath: /etc/kubernetes/ssl 
     name: ssl-certs-kubernetes 
     readOnly: true 
    - mountPath: /etc/ssl/certs 
     name: ssl-certs-host 
     readOnly: true 
    volumes: 
    - hostPath: 
     path: /etc/kubernetes/ssl 
    name: ssl-certs-kubernetes 
    - hostPath: 
     path: /usr/share/ca-certificates 
    name: ssl-certs-host 

マスター:KUBE-プロキシ。 yaml

apiVersion: v1 
kind: Pod 
metadata: 
    name: kube-proxy 
    namespace: kube-system 
spec: 
    hostNetwork: true 
    containers: 
    - name: kube-proxy 
    image: quay.io/coreos/hyperkube:v1.2.2_coreos.0 
    command: 
    - /hyperkube 
    - proxy 
    - --master=http://127.0.0.1:8080 
    securityContext: 
     privileged: true 
    volumeMounts: 
    - mountPath: /etc/ssl/certs 
     name: ssl-certs-host 
     readOnly: true 
    volumes: 
    - hostPath: 
     path: /usr/share/ca-certificates 
    name: ssl-certs-host 

マスター:KUBE-apiserver.yaml

apiVersion: v1 
kind: Pod 
metadata: 
    name: kube-apiserver 
    namespace: kube-system 
spec: 
    hostNetwork: true 
    containers: 
    - name: kube-apiserver 
    image: quay.io/coreos/hyperkube:v1.2.2_coreos.0 
    command: 
    - /hyperkube 
    - apiserver 
    - --bind-address=0.0.0.0 
    - --etcd-servers=http://172.24.0.67:2379 
    - --allow-privileged=true 
    - --service-cluster-ip-range=10.3.0.0/24 
    - --secure-port=443 
    - --advertise-address=172.24.0.67 
    - --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota 
    - --tls-cert-file=/etc/kubernetes/ssl/apiserver.pem 
    - --tls-private-key-file=/etc/kubernetes/ssl/apiserver-key.pem 
    - --client-ca-file=/etc/kubernetes/ssl/ca.pem 
    - --service-account-key-file=/etc/kubernetes/ssl/apiserver-key.pem 
    ports: 
    - containerPort: 443 
     hostPort: 443 
     name: https 
    - containerPort: 8080 
     hostPort: 8080 
     name: local 
    volumeMounts: 
    - mountPath: /etc/kubernetes/ssl 
     name: ssl-certs-kubernetes 
     readOnly: true 
    - mountPath: /etc/ssl/certs 
     name: ssl-certs-host 
     readOnly: true 
    volumes: 
    - hostPath: 
     path: /etc/kubernetes/ssl 
    name: ssl-certs-kubernetes 
    - hostPath: 
     path: /usr/share/ca-certificates 
    name: ssl-certs-host 

マスター:KUBE-scheduler.yaml

apiVersion: v1 
kind: Pod 
metadata: 
    name: kube-scheduler 
    namespace: kube-system 
spec: 
    hostNetwork: true 
    containers: 
    - name: kube-scheduler 
    image: quay.io/coreos/hyperkube:v1.2.2_coreos.0 
    command: 
    - /hyperkube 
    - scheduler 
    - --master=http://127.0.0.1:8080 
    - --leader-elect=true 
    livenessProbe: 
     httpGet: 
     host: 127.0.0.1 
     path: /healthz 
     port: 10251 
     initialDelaySeconds: 15 
     timeoutSeconds: 1 

スレーブ:kubelet.service

[Service] 
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests 

Environment=KUBELET_VERSION=v1.2.2_coreos.0 
ExecStart=/opt/bin/kubelet-wrapper \ 
    --api-servers=https://172.24.0.67:443 \ 
    --register-node=true \ 
    --allow-privileged=true \ 
    --config=/etc/kubernetes/manifests \ 
    --hostname-override=172.24.0.63 \ 
    --cluster-dns=10.3.0.10 \ 
    --cluster-domain=cluster.local \ 
    --kubeconfig=/etc/kubernetes/worker-kubeconfig.yaml \ 
    --tls-cert-file=/etc/kubernetes/ssl/worker.pem \ 
    --tls-private-key-file=/etc/kubernetes/ssl/worker-key.pem 
Restart=always 
RestartSec=10 
[Install] 
WantedBy=multi-user.target 

奴隷:kube- proxy.yaml

apiVersion: v1 
kind: Pod 
metadata: 
    name: kube-proxy 
    namespace: kube-system 
spec: 
    hostNetwork: true 
    containers: 
    - name: kube-proxy 
    image: quay.io/coreos/hyperkube:v1.2.2_coreos.0 
    command: 
    - /hyperkube 
    - proxy 
    - --master=https://172.24.0.67:443 
    - --kubeconfig=/etc/kubernetes/worker-kubeconfig.yaml 
    - --proxy-mode=iptables 
    securityContext: 
     privileged: true 
    volumeMounts: 
     - mountPath: /etc/ssl/certs 
     name: "ssl-certs" 
     - mountPath: /etc/kubernetes/worker-kubeconfig.yaml 
     name: "kubeconfig" 
     readOnly: true 
     - mountPath: /etc/kubernetes/ssl 
     name: "etc-kube-ssl" 
     readOnly: true 
    volumes: 
    - name: "ssl-certs" 
     hostPath: 
     path: "/usr/share/ca-certificates" 
    - name: "kubeconfig" 
     hostPath: 
     path: "/etc/kubernetes/worker-kubeconfig.yaml" 
    - name: "etc-kube-ssl" 
     hostPath: 
     path: "/etc/kubernetes/ssl" 
+1

http://kubernetes.io/docs/getting-started-guides/scratch/#preparing-certsを参照してください。失敗した場合は –

+0

これを試してみてください。ありがとう – Nakshatra

+0

あなたはどのようにあなたの証明書を生成しましたか?通常、あなたの証明書のSAN(Subject alt names)を編集し、あなたのケースではマスターのIPまたはホスト名を追加する必要があります:172.24.0.67 –

答えて

0

あなたの最初の質問にお答えします。私はあなたの問題を解決するためにいくつかのことをしなければならないと思います。最初に、このリンク(kubernetes.io/docs/setup/independent/create-cluster-kubeadm/1)mkdir -p $ HOME/.kube 2)sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config 3)sudo chown $(id -u):$( id -g)$ HOME/.kube/config。このadmin.confは正しく動作するようにkubectlで認識されるべきです。