Hi All,

I'm trying to create a cluster using openssl certificate for 
authentication. What I'm doing wrong here? Below is the components and the 
steps I've followed. 
minion-node and kubectl is throwing this error - *Unable to connect to the 
server: x509: certificate signed by unknown authority*

uname -a
ubuntu 16.04
Linux ip-172- 4.4.0-1038-aws #47-Ubuntu SMP Thu Sep 28 20:05:35 UTC 2017 
x86_64 x86_64 x86_64 GNU/Linux

Kubernetes 1.8
Docker version 17.03.2-ce, build f5ec1e2
flanneld --version v0.9.0
etcd Version: 3.2.8

enerate a ca.key with 2048bit:


1) openssl genrsa -out ca.key 2048



According to the ca.key generate a ca.crt (use -days to set the certificate 
effective time):

  

2) openssl req -x509 -new -nodes -key ca.key -subj "/CN=${MASTER_IP}" -days 
10000 -out ca.crt



Generate a server.key with 2048bit


3) openssl genrsa -out server.key 2048



According to the server.key generate a server.csr:


4) openssl req -new -key server.key -subj "/CN=${MASTER_IP}" -out server.csr



According to the ca.key, ca.crt and server.csr generate the server.crt:


5) openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key 
-CAcreateserial -out server.crt -days 10000



View the certificate.


6) openssl x509  -noout -text -in ./server.crt



==============================


Generate Certificates for Nodes


==============================


NODES=kubecfg 


  for NODE in $NODES; do

   sudo openssl req -newkey rsa:2048 -nodes -keyout 
/srv/kubernetes/${NODE}.key -subj "/CN=${NODE}" -out 
/srv/kubernetes/${NODE}.csr

     sudo openssl x509 -req -days 10000 -in /srv/kubernetes/${NODE}.csr -CA 
/srv/kubernetes/ca.crt -CAkey /srv/kubernetes/ca.key -CAcreateserial -out 
/srv/kubernetes/${NODE}.crt

  done



kubectl config set-cluster mykubecluster --server=https://Master_IP: 
<https://172.31.7.27:6443/> --certificate-authority=/srv/kubernetes/


kubectl config set-credentials kubelet \

    --certificate-authority=/srv/kubernetes/

    --client-key=/srv/kubernetes/

    --client-certificate=/srv/kubernetes/


kubectl config set-context kubelet-context --cluster=mykubecluster 
--user=kubelet


kubectl config use-context kubelet-context




===================

kubeconfig File

====================



apiVersion: v1

clusters:

- cluster:

    certificate-authority: /srv/kubernetes/ca.crt

    server: https://Master_IP:6443 <https://172.31.7.27:6443/>

  name: mykubecluster

contexts:

- context:

    cluster: mykubecluster

    user: kubelet

  name: kubelet-context

current-context: kubelet-context

kind: Config

preferences: {}

users:

- name: kubelet

  user:

    as-user-extra: {}

    client-certificate: /srv/kubernetes/kubecfg.crt

    client-key: /srv/kubernetes/kubecfg.key




When I remove the kubelet-context entry from the kubeconfig file and leave 
it blank *kubectl* works fine and when I run with below entry for context 
it gives me an error. 

and minion-node is not able to connect to apiserver with or without the 
kubelet-context.


*name: kubelet-context*

*current-context: kubelet-context*



I'm getting this error


ubuntu@ip-172-31:/srv/kubernetes


ca.crt  ca.key  ca.srl  kubecfg.crt  kubecfg.csr  kubecfg.key  server.crt 
 server.csr  server.key


ubuntu@ip-172-31:~$* kubectl get cs*


Unable to connect to the server: x509: certificate signed by unknown 
authority


ubuntu@ip-172-31:~$* kubectl get ep*


Unable to connect to the server: x509: certificate signed by unknown 
authority




I ran all the above command on Master Node:


After this I have copied the ca.crt ,  kubecfg.crt, kubecfg.key file to the 
node manually inside the /srv/kubernetes/ directory


and kubeconfig file inside the /var/lib/kubelet/ and /var/lib/kube-proxy/ 
 directory




● kubelet.service - Kubernetes Kubelet Server

   Loaded: loaded (/lib/systemd/system/kubelet.

   Active: active (running) since Sat 2017-11-04 23:04:36 UTC; 26min ago

     Docs: https://github.com/ 
<https://github.com/GoogleCloudPlatform/kubernetes>

 Main PID: 1921 (kubelet)

    Tasks: 14

   Memory: 81.4M

      CPU: 15.045s

   CGroup: /system.slice/kubelet.service

           └─1921 /usr/local/bin/kubelet --logtostderr=true --v=2 
#$KUBELET_API_SERVER --port=10250 --hostname-override=172.31.4.


Nov 04 23:317 <https://172.31.7.27:6443/api/v1/namespaces/defau>:07 
ip-172-31-XXXkubelet[1921]: E1104 23:31:07.768591    1921 event.go:209] 
Unable to write event: 'Patch https://172.3: 
<https://172.31.7.27:6443/api/v1/namespaces/defau>1 
<https://172.31.7.27:6443/api/v1/namespaces/defau>6443/api/ 
<https://172.31.7.27:6443/api/v1/namespaces/defau>

Nov 04 23:31:08 ip-172-31-XXXkubelet[1921]: E1104 23:31:08.357411    1921 
reflector.go:205] k8s.io/kubernetes/pkg/kubelet/ 
<http://k8s.io/kubernetes/pkg/kubelet/kubelet.go:422>: Failed to list 
*v1.Node: Get

Nov 04 23:31:08 ip-172-31-XXXkubelet[1921]: E1104 23:31:08.357975    1921 
reflector.go:205] k8s.io/kubernetes/pkg/kubelet/ 
<http://k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47>: Failed to 
list *v1.P




ubuntu@ip-172-31~$ *journalctl -fu kubelet*


-- Logs begin at Sat 2017-11-04 22:40:12 UTC. --

Nov 04 23:05:33 ip-172-31-XXXkubelet[1921]: E1104 23:05:33.390930    1921 
reflector.go:205] k8s.io/kubernetes/pkg/kubelet/ 
<http://k8s.io/kubernetes/pkg/kubelet/kubelet.go:422>: Failed to list 
*v1.Node: Get https://Master_IP:6443/api/ 
<https://172.31.7.27:6443/api/v1/nodes?fieldSelector=metadata.name%3D172.31.4.225&resourceVersion=0>:
 
x509: certificate signed by unknown authority

Nov 04 23:05:34 ip-172-31-XXXkubelet[1921]: E1104 23:05:34.392144    1921 
reflector.go:205] k8s.io/kubernetes/pkg/kubelet/ 
<http://k8s.io/kubernetes/pkg/kubelet/kubelet.go:413>: Failed to list 
*v1.Service: Get https://Master_IP:6443/api/ 
<https://172.31.7.27:6443/api/v1/services?resourceVersion=0>: x509: 
certificate signed by unknown authority


*journalctl -fu kube-proxy*


-- Logs begin at Sat 2017-11-04 22:40:12 UTC. --

Nov 04 23:06:45 ip-172-31-XXXkube-proxy[2035]: E1104 23:06:45.793400   
 2035 reflector.go:205] k8s.io/kubernetes/pkg/client/ 
<http://k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:73>:
 
Failed to list *api.Endpoints: Get https://Master_IP:443/api/ 
<https://172.31.7.27/api/v1/endpoints?resourceVersion=0> Master_IP:443 
<http://172.31.7.27:443/>: getsockopt: connection refused

Nov 04 23:06:45 ip-172-31-XXXkube-proxy[2035]: E1104 23:06:45.794332   
 2035 reflector.go:205] k8s.io/kubernetes/pkg/client/ 
<http://k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:73>:
 
Failed to list *api.Service: Get https://Master_IP:443/api/ 
<https://172.31.7.27/api/v1/services?resourceVersion=0>: dial tcp 
Master_IP:443 <http://172.31.7.27:443/>: getsockopt: connection refused

Nov 04 23:06:46 ip-172-31-XXXkube-proxy[2035]: E1104 23:06:46.794316   
 2035 reflector.go:205] k8s.io/kubernetes/pkg/client/ 
<http://k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:73>:
 
Failed to list *api.Endpoints: Get https://Master_IP:443/api/ 
<https://172.31.7.27/api/v1/endpoints?resourceVersion=0> Master_IP:443 
<http://172.31.7.27:443/>: getsockopt: connection refuse



Will appreciate any help and suggestion on this. 



Thanks

sam

-- 
You received this message because you are subscribed to the Google Groups 
"Kubernetes user discussion and Q&A" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to kubernetes-users+unsubscr...@googlegroups.com.
To post to this group, send email to kubernetes-users@googlegroups.com.
Visit this group at https://groups.google.com/group/kubernetes-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to