12
I would like to use the dev-user to access test-cluster-1. Set the current context to the right one so I can do that.
Once the right context is identified, use the kubectl config use-context command.
정답
k config --kubeconfig=/root/my-kube-config use-context research
풀이
set-context: 새 컨텍스트를 설정하거나 기존의 컨텍스트를 수정하는 명령어use-context: 설정된 컨텍스트 중에서 실제로 사용할 컨텍스트로 전환하는 명령어13
We don't want to specify the kubeconfig file option on each kubectl command.
Set the my-kube-config file as the default kubeconfig file and make it persistent across all sessions without overwriting the existing ~/.kube/config. Ensure any configuration changes persist across reboots and new shell sessions.
Note: Don't forget to source the configuration file to take effect in the existing session. Example:
source ~/.bashrc
Default kubeconfig file configured
정답
vi ~/.bashrc
아무 위치에 아래 내용 추가하기
export KUBECONFIG=/root/my-kube-config
적용하기
source ~/.bashrc
풀이
export KUBECONFIG=/root/my-kube-config:/root/other-kube-config14
With the current-context set to research, we are trying to access the cluster. However something seems to be wrong. Identify and fix the issue.
Try running the kubectl get pods command and look for the error. All users certificates are stored at /etc/kubernetes/pki/users.
풀이
에러 메세지 확인
controlplane / ➜ k get pods
error: unable to read client-cert /etc/kubernetes/pki/users/dev-user/developer-user.crt for dev-user due to open /etc/kubernetes/pki/users/dev-user/developer-user.crt: no such file or directory
config 파일 확인
controlplane / ➜ kubectl config view
apiVersion: v1
clusters:
- 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: production
- cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://controlplane:6443
name: test-cluster-1
contexts:
- context:
cluster: kubernetes-on-aws
user: aws-user
name: aws-user@kubernetes-on-aws
- context:
cluster: test-cluster-1
user: dev-user
name: research
- context:
cluster: development
user: test-user
name: test-user@development
- context:
cluster: production
user: test-user
name: test-user@production
current-context: research
kind: Config
preferences: {}
users:
- 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
- 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: 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
문제에서 알려준 경로를 가보면
controlplane ~ ➜ ll ../etc/kubernetes/pki/users/dev-user
total 20
drwxr-xr-x 2 root root 4096 Jan 28 05:02 ./
drwxr-xr-x 5 root root 4096 Jan 28 05:02 ../
-rw-r--r-- 1 root root 1025 Jan 28 05:07 dev-user.crt
-rw-r--r-- 1 root root 924 Jan 28 05:07 dev-user.csr
-rw------- 1 root root 1704 Jan 28 05:07 dev-user.key
이 부분을 developer-user.crt -> dev-user.crt수정하기
vi my-kube-config
- name: dev-user
user:
client-certificate: /etc/kubernetes/pki/users/dev-user/dev.crt