I've set up an insecure k8s master node using hyperkube
, with an insecure API:
docker run -d --name=k8s-apiserver --net=container:etcd gcr.io/google_containers/hyperkube:v1.8.5 /apiserver --etcd-servers=http://127.0.0.1:2378 --service-cluster-ip-range=10.0.0.1/24 --insecure-bind-address=0.0.0.0 --insecure-port=8080 --admission-control=AlwaysAdmit
Moving on to configuring the nodes, what option to the docker run -d --name=kubelet gcr.io/google_containers/hyperkube:v1.8.5 /kubelet
command points kubelet
to the master apiserver
? I can't seem to find this option using --help
.
Starting from kubernetes version 1.8 you should use --kubeconfig
key to specify a path to a kubeconfig
file where is described how to connect to API server:
--kubeconfig string Path to a kubeconfig file, specifying how to connect to the API server. (default "/var/lib/kubelet/kubeconfig")
where /var/lib/kubelet/kubeconfig
something like:
apiVersion: v1
clusters:
- cluster:
certificate-authority: ~/.kube/ca.crt
server: https://<API_IP>:<API_PORT>
name: dev
contexts:
- context:
cluster: dev
user: dev
name: dev
current-context: dev
kind: Config
preferences: {}
users:
- name: dev
user:
as-user-extra: {}
client-certificate: ~/.kube/client.crt
client-key: ~/.kube/client.key
So, finally you should just mount the config file inside kubelet
docker container:
docker run -d -v /var/lib/kubelet/kubeconfig:/var/lib/kubelet/kubeconfig --name=kubelet gcr.io/google_containers/hyperkube:v1.8.5 /kubelet