구성 오류: 지정된 컨텍스트에 대한 컨텍스트를 찾을 수 없습니다. 종류-종류

구성 오류: 지정된 컨텍스트에 대한 컨텍스트를 찾을 수 없습니다. 종류-종류

이것은 내 skaffold.yaml파일입니다:

apiVersion: skaffold/v2alpha3
kind: Config
deploy:
  kubeContext: kind-kind
  kubectl: 
    manifests:
      - ./infra/k8s/*
build:
  local:
    push: false
  artifacts:
    - image: learnertester/auth
      context: auth
      docker:`
        dockerfile: Dockerfile
      sync:
        manual:
          - src: 'src/**/*.ts'
            dest: .
    - image: learnertester/ticketing-client
      context: client
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: '**/*.js'
            dest: .
    - image: learnertester/tickets
      context: tickets
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: 'src/**/*.ts'
            dest: .
    - image: learnertester/orders
      context: orders
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: 'src/**/*.ts'
            dest: .
    - image: learnertester/expiration
      context: expiration
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: 'src/**/*.ts'
            dest: .
    - image: learnertester/payments
      context: payments
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: 'src/**/*.ts'
            dest: .

시도하면 kubectl config view다음과 같은 결과가 나타납니다.

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.1.2:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: DATA+OMITTED
    client-key-data: DATA+OMITTED

나는 또한 kind그것을 사용하여 클러스터를 설치하고 만들었습니다. 이는 다음의 결과입니다 kubectl cluster-info --context kind-kind.

Kubernetes control plane is running at https://127.0.0.1:41887
CoreDNS is running at https://127.0.0.1:41887/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

그러나 실행하면 skaffold dev마지막에 다음 오류가 발생합니다.

 - Error in configuration: context was not found for specified context: kind-kind
WARN[0480] deployer cleanup:kubectl delete: exit status 1  subtask=-1 task=DevLoop
unable to connect to Kubernetes: getting client config for Kubernetes client: error creating REST client config for kubeContext "kind-kind": context "kind-kind" does not exist

kubeContext: kind다음과 같이 파일 에서 제거하고 그 대신 파일 skaffold.yaml내부에 컨텍스트를 추가하려고 했습니다 ./.skaffold/config

global:
  local-cluster: true
  survey:
    last-prompted: "2022-12-18T12:20:01-08:00"
  collect-metrics: true
  update:
    last-prompted: "2022-12-18T12:30:37-08:00"
kubeContexts: [kind-kind]

하지만 여전히 나는 다음과 같은 결과를 얻습니다.

WARN[0000] Could not load global Skaffold defaults. Error encounter while unmarshalling the contents of file "/home/a/.skaffold/config"  subtask=-1 task=DevLoop
WARN[0000] error retrieving insecure registries from global config: push/pull issues may exist...  subtask=-1 task=DevLoop
getting run context: getting cluster: unmarshalling global skaffold config: yaml: unmarshal errors:
  line 8: cannot unmarshal !!str `kind-kind` into config.ContextConfig

답변1

skaffold는 'kubectl' 바이너리를 사용하여 클러스터에 배포합니다. Skaffold yaml을 확인하세요. Kubernetes 클러스터에 액세스하기 위해 kubectl은 구성 파일을 사용합니다. 기본 구성 파일은 kubeconfig 파일에 있으며 ~/.kube/config이를 kubeconfig 파일이라고 합니다. 마스터 노드로 이동하여 kubectl config view --flatten출력을 실행하고 ~/.kube/configPC에 붙여넣은 다음 PC에서 kubectl을 실행해 보세요. 올바른 컨텍스트가 설정된 시스템에 올바른 kubeconfig 파일이 필요합니다. 현재 컨텍스트를 확인하려면 다음을 사용하십시오.kubectl config current-context

비슷한거 참고하세요SO1 SO2자세한 내용은.

답변2

나에게는 상황을 바꿔야 했습니다.

kubectl config use-context <cluster_name>

관련 정보