when you use the kubectl command how the serv authentificate you
in fact in the command you should specify soma argument the certificate the key etc etc
but the re is a file in ~/.kube/config that is use for authenticate yourself
So if you create the file here you have not to specify something
here an example
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tS0K # or certificate-authority: /path/to/file
server: https://192.168.1.201:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
namespace: default # you can specify a custom namespace
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: LS0S0K # or client-authority: /path/to/file
client-key-data: LS0tLQo= # or client-authority: /path/to/file
dont forget the data of key and certificate is base64
you can see 3 part
cluster -> that list the cluster you can connect
Users -> users you use for connection
Contexts -> that link cluster with users
you don't create nothing here you use the things that are already config on a kub cluster
for see more information about the config file
kubectl config view
apiVersion: v1
kind: Config
clusters:
- name: production
cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
- name: development
cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
- name: kubernetes-on-aws
cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
- name: test-cluster-1
cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
contexts:
- name: test-user@development
context:
cluster: development
user: test-user
- name: aws-user@kubernetes-on-aws
context:
cluster: kubernetes-on-aws
user: aws-user
- name: test-user@production
context:
cluster: production
user: test-user
- name: research
context:
cluster: test-cluster-1
user: dev-user
users:
- name: test-user
user:
client-certificate: /etc/kubernetes/pki/users/test-user/test-user.crt
client-key: /etc/kubernetes/pki/users/test-user/test-user.key
- name: dev-user
user:
client-certificate: /etc/kubernetes/pki/users/dev-user/developer-user.crt
client-key: /etc/kubernetes/pki/users/dev-user/dev-user.key
- name: aws-user
user:
client-certificate: /etc/kubernetes/pki/users/aws-user/aws-user.crt
client-key: /etc/kubernetes/pki/users/aws-user/aws-user.key
current-context: test-user@development
preferences: {}
kubectl config use-context test-user@test-kube-cluster #its the name of the context here
kubectl config -h