이번 랩에서는 admin
자격 증명 기반으로 kubectl
명령어에 대한 kubeconfig 파일을 생성합니다.
해당 작업은 jumpbox
서버에서 수행합니다.
각 kubeconfig는 연결할 Kubernetes API Server가 필요합니다.
이전 랩에서 작업한 /etc/hosts
DNS 엔트리 항목을 기반으로 controlplane-1.kubernetes.local
과 통신이 되어야 합니다.
curl -k --cacert ca.crt \
https://controlplane-1.kubernetes.local:6443/version
{
"major": "1",
"minor": "30",
"gitVersion": "v1.30.1",
"gitCommit": "6911225c3f747e1cd9d109c305436d08b668f086",
"gitTreeState": "clean",
"buildDate": "2024-05-14T10:42:02Z",
"goVersion": "go1.22.2",
"compiler": "gc",
"platform": "linux/amd64"
}
admin
으로 인증하는데 필요한 kubeconfig 파일을 생성합니다.
{
kubectl config set-cluster kubernetes-the-hard-way \
--certificate-authority=/k8s-hardway/tls/ca.crt \
--embed-certs=true \
--server=https://controlplane-1.kubernetes.local:6443
kubectl config set-credentials admin \
--client-certificate=/k8s-hardway/tls/admin.crt \
--client-key=/k8s-hardway/tls/admin.key
kubectl config set-context kubernetes-the-hard-way \
--cluster=kubernetes-the-hard-way \
--user=admin
kubectl config use-context kubernetes-the-hard-way
}
위 명령어를 실행하면, kubectl
명령줄 도구에서 사용하는 기본 위치인 ~/.kube/config
에 kubeconfig 파일이 생성 됩니다. 해당 작업을 하면 다른 설정을 안해도 kubectl
명령을 실행할 수 있습니다.
Kubernetes Cluster 버전을 확인합니다.
kubectl version
Client Version: v1.30.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.30.1
Kubernetes Cluster에 있는 노드들을 확인합니다.
kubectl get nodes
NAME STATUS ROLES AGE VERSION
node-1 Ready <none> 12m v1.30.1
node-2 Ready <none> 10m v1.30.1