programing

zure의 원격 kubernetes 클러스터에 액세스하도록 kubectl 명령 구성

linuxpc 2023. 5. 26. 20:47
반응형

zure의 원격 kubernetes 클러스터에 액세스하도록 kubectl 명령 구성

쿠버네티스 클러스터를 동물원에서 실행하고 있습니다.로컬 kubectl 명령에서 클러스터에 액세스하는 방법은 무엇입니까?여기서 언급했지만 kubernetes 마스터 노드에는 kuber config 파일이 없습니다.또한, kubectl 구성 보기 결과는 다음과 같습니다.

apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []

클러스터의 노드 중 하나에 ssh'하지 않고 원격 kubernetes 클러스터에 액세스할 수 있는 방법을 찾았습니다.아래와 같이 ~/.kube/config 파일을 편집해야 합니다.

apiVersion: v1 
clusters:    
- cluster:
    server: http://<master-ip>:<port>
  name: test 
contexts:
- context:
    cluster: test
    user: test
  name: test

그런 다음 다음을 실행하여 컨텍스트를 설정합니다.

kubectl config use-context test

그 후에는 클러스터와 상호 작용할 수 있어야 합니다.

참고: 인증 및 키를 추가하려면 http://kubernetes.io/docs/user-guide/kubeconfig-file/ 링크를 사용하십시오.

또는 다음 명령을 사용할 수도 있습니다.

kubectl config set-cluster test-cluster --server=http://<master-ip>:<port> --api-version=v1
kubectl config use-context test-cluster

파일 하려면 " " " " " 를 합니다.--kubeconfig매개 변수

들어 copy 를들어, 사복예를 합니다.~/.kube/config프로젝트의 입니다.~/myproject/.kube/config~/myproject 를 실행하여 할 수 .kubectl get pods --kubeconfig ./.kube/config.

할 때 단순한 "Kubernetes"를 합니다.kubectl config view구성 파일의 비밀을 표시하지 않기 때문에 충분하지 않습니다.대신에, 당신은 다음과 같은 것을 해야 합니다.cat ~/.kube/config또는 사용scp전체 파일 내용을 가져옵니다.

참조: https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/

이 질문에 대답하는 사람은az합니다. cli는 문제를 해결합니다.

az aks get-credentials --name MyManagedCluster --resource-group MyResourceGroup

되어 있는 내 는 .kube\config였다).C:\Users\[user]\.kube\config및 연결로

언급

를 ..kubek8s 컴퓨터의 디렉터리입니다.
/유닉스에서 됩니다./root/.kube
창에는 다음과 같은 위치에 있습니다.C:/User/<username>/.kube
을 서구 복합니에서 복사합니다..kube 폴더 k8s 러터폴:.kube입니다.
복사: 클이언인복사서라:/etc/cfc/conf/kubecfg.crt
클이언키트라:/etc/cfc/conf/kubecfg.key
.kube로컬 컴퓨터의 폴더입니다.
파을편에서 구성 합니다..kubekubecfg.crt그리고.kubecfg.key로컬 컴퓨터에 있습니다.
/etc/cfc/conf/kubecfg.crt-->C:\Users\<username>\.kube\kubecfg.crt
/etc/cfc/conf/kubecfg.key-->C:\Users\<username>\.kube\kubecfg.key

이제 클러스터와 상호 작용할 수 있습니다.'kubectl get pods'를 실행하면 k8s 클러스터에 있는 포드를 볼 수 있습니다.

클러스터를 어떻게 설정했습니까?클러스터에 원격으로 액세스하려면 kubeconfig 파일이 필요합니다(없는 것처럼 보입니다). 그렇지 않으면 방금 배포한 클러스터를 사용할 수 없기 때문에). 설치 스크립트는 클러스터 배포 프로세스의 일부로 로컬 kubeconfig 파일을 생성합니다.다른 사용자가 클러스터를 배포한 경우 연결한 페이지의 지침에 따라 클러스터에 연결하는 데 필요한 클라이언트 자격 증명의 복사본을 가져와야 합니다.

Azure 설정은 ssh 포트만 외부에 표시합니다.이 문제는 ./output/kube_xxxxxxxxxxx_ssh_conf에서 찾을 수 있습니다. 제가 한 일은 ssh 포트 터널을 추가하여 시스템에서 ssh를 사용할 수 있도록 터널링한 것입니다.위의 파일로 이동하여 "host *" 섹션 아래에 다음과 같은 다른 줄을 추가합니다.

LocalForward 8080 127.0.0.1:8080

이는 로컬 시스템 포트 8080(Kubectl이 기본 컨텍스트를 검색함)을 마스터가 api 호출을 수신하는 원격 시스템 8080 포트에 매핑합니다.일반 문서에 표시된 대로 kube-00에 ssh를 열면 추가 구성 없이 로컬 kubectl에서 호출을 수행할 수 있습니다.

원래 kops 클러스터를 만든 클라이언트와 다른 클라이언트에 kubectl을 설정하려고 했습니다.이것이 Azure에서 작동할지는 확실하지 않지만 AWS 지원(kops) 클러스터에서 작동했습니다.

kops / kubectl - 다른 서버에 생성된 상태를 가져오려면 어떻게 해야 합니까?

클라우드 제공자의 VM을 사용하여 수동으로 생성된 클러스터의 경우 다음에서 kubeconfig를 가져옵니다.~/.kube/config그러나 GKE와 같은 관리형 서비스의 경우 올바른 토큰으로 런타임에 생성된 kubeconfig를 얻기 위해 gcloud에 의존해야 합니다.

일반적으로 토큰을 생성하여 올바른 kubeconfig를 얻는 데 도움이 되는 서비스 계정을 만들 수 있습니다.비슷한 것이 애저에서도 발견될 수 있습니다.

창이 있는 경우 %HOME% 환경 변수를 확인하면 사용자 디렉토리를 가리켜야 합니다.그런 다음 "C:/users/your_user"에 ".kube" 폴더를 만들고 이러한 폴더 내에 "Phagun Baya"에 설명된 대로 "config" 파일을 만듭니다.

에코 %HOME%

언급URL : https://stackoverflow.com/questions/36306904/configure-kubectl-command-to-access-remote-kubernetes-cluster-on-azure

반응형