반응형

 

shell script 작성 후 shell script를 실행 시키는 image 를 Alpine linux 로 이미지 생성 후 Pod 실행시

No such file or directory 에러가 발생하였다.

 

확인해보니 shell script 제일 상단에 #!/bin/bash 가 문제였고

Alpine linux 의 경우 shell script 제일 상단에 #!/bin/sh 로 해주어야한다.

#!/bin/bash -> #!bin/sh

 

bash를 사용해야하는 경우라면 bash를 추가해서 사용하면 된다.

apk add bash

 

반응형
반응형

 

Docker 대신 image를 만들 수 있는 도구

기본적으로 Docker 명령어와 동일한 듯 하다.

 

1. install

sudo apt install buildah

 

2. build

buildah build -f Dockerfile -t fedora-httpd .
# or
buildah build -t fedora-httpd

 

3. push 

buildah push registry.example.com/my_image

 

https://github.com/containers/buildah/blob/main/docs/tutorials/01-intro.md

https://github.com/containers/buildah/blob/main/docs/buildah-push.1.md

반응형
반응형

 

1. Docker 아키텍쳐 pull

docker pull --platform linux/amd64 nginx:latest

 

2. Docker image 저장

docker save -o a.tar imagenams

 

3. Docker image 업로드

docker load -i a.tar

 

 

4. Docker image 태그 변경

docker image tag imageid a:1.0

 

반응형
반응형

 

crio 설치시 service start가 안되고 아래와 같은 에러가 발생하였다.

validating runtime config: cannot enable checkpoint/restore support without the criu binary in $PATH

 

간단히 criu만 설치해주면 되었는데, apt list를 조회하니 아래와 같이 2개가 조회되었다.

criu/jammy 3.16.1-2 arm64

golang-github-checkpoint-restore-go-criu-dev/jammy 5.1.0-1 all

 

그래서 2개다 설치해주었다. (하나만 설치해도 됐을지도)

apt-get install criu/jammy
apt-get install golang-github-checkpoint-restore-go-criu-dev/jammy

# 설치 후 cri-o 재시작
systemctl restart crio.service

 

 

반응형
반응형

 

주로 사용하던 sed 명령어들

 

1. sed 수정

sed -i 's/ver: 1.0.0/ver: 1.0.1' /home/user/test.conf

 

 

2. sed 특정 글 위에추가, 특정 글 아래 추가

특정 글 위에 추가

sed -i -r -e '/ver: 1.0.1/i\Description: version' /home/user/test.conf

 

특정글 아래 추가

sed -i -r -e '/ver: 1.0.1/a\End Of File' /home/user/test.conf

 

 

3. 특정 글 아래 수정

sed -i '/Description: version/{ n; s/ver: 1.0.1/version: 1.0.1/I}' /home/user/test.conf

 

 

4.  띄어쓰기(space) 입력

기본적으로 한줄이면 그냥 스페이스바 입력으로 되지만, 그게 아니라면 역슬래쉬(\)를 해주어야 함.

# 한 줄로 작성할 경우
sed -i -r -e '/version: 1.0.1/a\  Date: 2024' /home/user/test.conf

# 여러 줄로 작성할 경우
sed -i -r -e '/Date: 2024/a\
\ \ Month: 4(April)' /home/user/test.conf

 

 

최종 결과물

 

반응형
반응형

 

이전에 Ubuntu 20.04 에 Docker/Contained 로 Kubernetes 설치하는 글을 썼으나,

(이전 글 - 2023.08.21 - [Develop/k8s] - Ubuntu 20.04 kubernetes(k8s) 설치)

최근에 Mac M2 Arm 아키텍처에 Ubuntu 22.04에서 그대로 설치를 진행하니 kube-apiserver가 

계속 종료되는 현상이 발생했다. 아마 k8s 와 containerd 간의 cgroup 설정문제로 그런 것 같은데

이참에 cri-o 로 cgroup 설정도 해볼겸 다시 설치를 진행하였다.

 

 

기본적으로 root 계정으로 실행하며, 아래 5번까지는 Master노드와 Worker 노드에 똑같이 설정한다

1. 패키지 업데이트 또는 필요한 항목 설치

apt-get update
apt-get install -y software-properties-common curl

 

 

2. Kubernetes과 cri-o 다운 경로 설정

해당 설정은 직접 버전과 경로를 설정하면 필요 없다.

KUBERNETES_VERSION=v1.29
PROJECT_PATH=prerelease:/main

 

 

3. Kubernetes 와 cri-o Repository 설정

# kubernetes
curl -fsSL https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/deb/Release.key |
    gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/deb/ /" |
    tee /etc/apt/sources.list.d/kubernetes.list
    
# cri-o 
curl -fsSL https://pkgs.k8s.io/addons:/cri-o:/$PROJECT_PATH/deb/Release.key |
    gpg --dearmor -o /etc/apt/keyrings/cri-o-apt-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/cri-o-apt-keyring.gpg] https://pkgs.k8s.io/addons:/cri-o:/$PROJECT_PATH/deb/ /" |
    tee /etc/apt/sources.list.d/cri-o.list

 

 

4. 패키지 설치

apt-get update
apt-get install -y cri-o kubelet kubeadm kubectl

 

설치하게되면 cri-o 가 동작중이 아니므로, 서비스 실행

systemctl start crio.service

 

 

5. 클러스터 동작을 위한 기본 구성

swapoff -a
modprobe br_netfilter
sysctl -w net.ipv4.ip_forward=1

 

 

6. kubernetes init (Master 노드만 진행한다)

kubeadm init

 

진행 후 완료 되면 나오는 메세지대로 config 파일을 생성한다.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

정상적으로 성공할 경우 아래 값 반환 해당값 메모장에 임시 저장

kubeadm join 192.x.x.x:6443 --token c5l89v.9ao1r5texepx06d8 \
	--discovery-token-ca-cert-hash sha256:50cb3eaxe334612e81c2342790130801afd70ddb9967a06bb0b202141748354f

 

 

7. Node 등록 (Worker 노드만 진행한다.)

6번에서 저장한 kubeadm join 입력

kubeadm join 192.x.x.x:6443 --token c5l89v.9ao1r5texepx06d8 \
	--discovery-token-ca-cert-hash sha256:50cb3eaxe334612e81c2342790130801afd70ddb9967a06bb0b202141748354f

 

 

8. Master에서 확인

Master에서 아래 명령어 실행

kubectl get nodes -o wide

 

Ready 로 잘 연결된 것을 확인

 

 

9. cilium 설치 (Master 노드만 진행한다)

# Arm 아키텍처여서 Arm으로 진행 github에 접속해서 알맞은 아키텍처로 설치 필요
curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-arm64.tar.gz

 

설치 후 압축 해제 및 cilium install

sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
cilium install

 

cilium 설치 확인(설치되고 pod가 뜨는데 몇분걸림) 및 핵심 pod 정상 확인

 

 

 

v1.29가 아닌 v1.28이하로 설치할 경우 cri-o만 따로 설치 후 이전과 비슷한 방법으로 k8s를 설치해줘야 하는 것 같다.

참고 - https://github.com/cri-o/cri-o/blob/main/install.md#installation-instructions

cri-o v1.29 이상 설치 - https://github.com/cri-o/packaging/blob/main/README.md

cri-o v1.28 이하 설치 - https://github.com/cri-o/cri-o/blob/main/install-legacy.md

cilium - https://kubernetes.io/ko/docs/tasks/administer-cluster/network-policy-provider/cilium-network-policy/

반응형
반응형

 

Node.js 에서 yaml 파일 읽고 쓰려면 간단히  js-yaml 라이브러리를 사용한다

 

1. install js-yaml

npm install js-yaml --save

 

2. Read & Write 

js-yaml 에서 제공하는 load와 dump 기능을 통해 사용한다.

const yaml = require('js-yaml');
const fs = require('fs');

const url = './config.yaml';

try {

    const file = yaml.load(fs.readFileSync(url), 'utf8');
    file.clusters[0].cluster.server = '192.168.0.1';
    fs.writeFileSync('./new-config.yaml', yaml.dump(file), 'utf8')

} catch (e) {
    console.log(e)
}

 

 

이렇게 간단하게 적용하면 되긴되나, 배열의 경우 옵션을 주지 않으면 아래와 같이 쓸모없는 indent가 추가된다.

 

기존 config.yaml

# config.yaml

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: test
    server: https://127.0.0.1:6443

 

변경된 new-config.yaml

# new-config.yaml

apiVersion: v1
clusters:
  - cluster:
      certificate-authority-data: test
      server: 192.168.0.1
    name: dev-k8s

 

 

3. 이 경우 js-yaml 라이브러리에서 제공하는 noArrayIndent 를 사용하여 해결 가능하다.

const yaml = require('js-yaml');
const fs = require('fs');

const url = './config.yaml';

try {
    
    const file = yaml.load(fs.readFileSync(url), 'utf8');
    file.clusters[0].cluster.server = '192.168.0.1';
    fs.writeFileSync('./new-config.yaml', yaml.dump(file, {
        noArrayIndent: true
    }), 'utf8')

} catch (e) {
    console.log(e)
}

 

결과.

# new-config.yaml

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: test
    server: 192.168.0.1
  name: dev-k8s

 

 

참고 : https://github.com/nodeca/js-yaml

반응형
반응형

 

kubectl api-resources 명령어를 통해 모든 리소스 조회 가능하다.

root@master:/# kubectl api-resources
NAME                              SHORTNAMES         APIVERSION                             NAMESPACED   KIND
bindings                                             v1                                     true         Binding
componentstatuses                 cs                 v1                                     false        ComponentStatus
configmaps                        cm                 v1                                     true         ConfigMap
endpoints                         ep                 v1                                     true         Endpoints
events                            ev                 v1                                     true         Event
limitranges                       limits             v1                                     true         LimitRange
namespaces                        ns                 v1                                     false        Namespace
nodes                             no                 v1                                     false        Node
persistentvolumeclaims            pvc                v1                                     true         PersistentVolumeClaim
persistentvolumes                 pv                 v1                                     false        PersistentVolume
pods                              po                 v1                                     true         Pod
podtemplates                                         v1                                     true         PodTemplate
replicationcontrollers            rc                 v1                                     true         ReplicationController
resourcequotas                    quota              v1                                     true         ResourceQuota
secrets                                              v1                                     true         Secret
serviceaccounts                   sa                 v1                                     true         ServiceAccount
services                          svc                v1                                     true         Service
mutatingwebhookconfigurations                        admissionregistration.k8s.io/v1        false        MutatingWebhookConfiguration
validatingwebhookconfigurations                      admissionregistration.k8s.io/v1        false        ValidatingWebhookConfiguration
customresourcedefinitions         crd,crds           apiextensions.k8s.io/v1                false        CustomResourceDefinition
apiservices                                          apiregistration.k8s.io/v1              false        APIService
controllerrevisions                                  apps/v1                                true         ControllerRevision
daemonsets                        ds                 apps/v1                                true         DaemonSet
deployments                       deploy             apps/v1                                true         Deployment
replicasets                       rs                 apps/v1                                true         ReplicaSet
statefulsets                      sts                apps/v1                                true         StatefulSet
applications                      app,apps           argoproj.io/v1alpha1                   true         Application
applicationsets                   appset,appsets     argoproj.io/v1alpha1                   true         ApplicationSet
appprojects                       appproj,appprojs   argoproj.io/v1alpha1                   true         AppProject
selfsubjectreviews                                   authentication.k8s.io/v1               false        SelfSubjectReview
tokenreviews                                         authentication.k8s.io/v1               false        TokenReview
localsubjectaccessreviews                            authorization.k8s.io/v1                true         LocalSubjectAccessReview
selfsubjectaccessreviews                             authorization.k8s.io/v1                false        SelfSubjectAccessReview
selfsubjectrulesreviews                              authorization.k8s.io/v1                false        SelfSubjectRulesReview
subjectaccessreviews                                 authorization.k8s.io/v1                false        SubjectAccessReview
horizontalpodautoscalers          hpa                autoscaling/v2                         true         HorizontalPodAutoscaler
cronjobs                          cj                 batch/v1                               true         CronJob
jobs                                                 batch/v1                               true         Job
certificatesigningrequests        csr                certificates.k8s.io/v1                 false        CertificateSigningRequest
leases                                               coordination.k8s.io/v1                 true         Lease
endpointslices                                       discovery.k8s.io/v1                    true         EndpointSlice
events                            ev                 events.k8s.io/v1                       true         Event
flowschemas                                          flowcontrol.apiserver.k8s.io/v1beta3   false        FlowSchema
prioritylevelconfigurations                          flowcontrol.apiserver.k8s.io/v1beta3   false        PriorityLevelConfiguration
ingressclasses                                       networking.k8s.io/v1                   false        IngressClass
ingresses                         ing                networking.k8s.io/v1                   true         Ingress
networkpolicies                   netpol             networking.k8s.io/v1                   true         NetworkPolicy
runtimeclasses                                       node.k8s.io/v1                         false        RuntimeClass
poddisruptionbudgets              pdb                policy/v1                              true         PodDisruptionBudget
clusterrolebindings                                  rbac.authorization.k8s.io/v1           false        ClusterRoleBinding
clusterroles                                         rbac.authorization.k8s.io/v1           false        ClusterRole
rolebindings                                         rbac.authorization.k8s.io/v1           true         RoleBinding
roles                                                rbac.authorization.k8s.io/v1           true         Role
priorityclasses                   pc                 scheduling.k8s.io/v1                   false        PriorityClass
csidrivers                                           storage.k8s.io/v1                      false        CSIDriver
csinodes                                             storage.k8s.io/v1                      false        CSINode
csistoragecapacities                                 storage.k8s.io/v1                      true         CSIStorageCapacity
storageclasses                    sc                 storage.k8s.io/v1                      false        StorageClass
volumeattachments                                    storage.k8s.io/v1                      false        VolumeAttachment

 

 

이 명령어를 잘 이용하면 각 서비스에 대한 yaml파일들을 백업할 수 있다.

#!/bin/sh

DIR=/k8s-bak/resouruces # 경로 입력

mkdir -p 

for NS in $(kubectl get ns --no-headers | awk '{ print $1 }') # 모든 Namespace 조회
do
    mkdir -p ${DIR}/${NS} # 각 Namespace 별 폴더 생성
    for RESOURCE in $(kubectl api-resources --no-headers | awk '{ print $1 }') # 리소스 조회
    do
        kubectl get ${RESOURCE} -n ${NS} -o yaml > ${DIR}/${NS}/${RESOURCE}.yaml # YAML 백업
    done
done

 

실행결과

root@master:~# ./bak.yaml

root@master:/k8s-bak/resources# ls
argocd  default  ingress-nginx  kube-node-lease  kube-public  kube-system

root@master:/k8s-bak/resources# cd argocd/

root@master:/k8s-bak/resources/argocd# ls
apiservices.yaml                 mutatingwebhookconfigurations.yaml
applicationsets.yaml             namespaces.yaml
applications.yaml                networkpolicies.yaml
appprojects.yaml                 nodes.yaml
bindings.yaml                    persistentvolumeclaims.yaml
certificatesigningrequests.yaml  persistentvolumes.yaml
clusterrolebindings.yaml         poddisruptionbudgets.yaml
clusterroles.yaml                pods.yaml
componentstatuses.yaml           podtemplates.yaml
configmaps.yaml                  priorityclasses.yaml
controllerrevisions.yaml         prioritylevelconfigurations.yaml
cronjobs.yaml                    replicasets.yaml
csidrivers.yaml                  replicationcontrollers.yaml
csinodes.yaml                    resourcequotas.yaml
csistoragecapacities.yaml        rolebindings.yaml
customresourcedefinitions.yaml   roles.yaml
daemonsets.yaml                  runtimeclasses.yaml
deployments.yaml                 secrets.yaml
endpointslices.yaml              selfsubjectaccessreviews.yaml
endpoints.yaml                   selfsubjectreviews.yaml
events.yaml                      selfsubjectrulesreviews.yaml
flowschemas.yaml                 serviceaccounts.yaml
horizontalpodautoscalers.yaml    services.yaml
ingressclasses.yaml              statefulsets.yaml
ingresses.yaml                   storageclasses.yaml
jobs.yaml                        subjectaccessreviews.yaml
leases.yaml                      tokenreviews.yaml
limitranges.yaml                 validatingwebhookconfigurations.yaml
localsubjectaccessreviews.yaml   volumeattachments.yaml
반응형
반응형

kubectl 도구를 이용하여 Windows에서 기타 서버에 설치되어있는 k8s cluster를 사용할 수 있으며,

k8s 클러스터가 여러개일 경우에도 선택하여 사용가능하다.

 

1. k8s 설치

Window에 Terminal 또는 Powershell을 열어 아래의 명령어를 통해 kubectl을 다운받는다.

curl.exe -LO "https://dl.k8s.io/release/v1.28.4/bin/windows/amd64/kubectl.exe"

 

다운 후 Path에 등록하여도 되고 직접 kubectl 설치되어있는 폴더 호출 하여 사용해도 무관.

# C드라이브 test폴더에서 kubectl 파일 다운받았을 경우
C:\test> ./kubectl

 

 

2. k8s config 파일 복사

서버에 있는 k8s config파일의 내용을 복사한다.

cat ~/.kube/config

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCRXhNelV4TlROYUZ3MHpNekE0TVRneE16VTJOVE5hTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURmZTZSREhXZE90Q25qczZnNHFESVprZHFzR2ZRUEE5MXlWYS9LN3AwcTZIRllvRzRQcGZHMkdUeFIKWi9HeXFqU3ZIS01KYWo1WUIvdHJ1TEtrMnoreTFGZXp0eHJFc1JkVi96UXlNOENrcGZVd1FhV2dNMGhSUTF3NgpKcTZGOHhsMlBSaDFlRjJ1eG9YT0pPOFFGam1EV2lUWVQrNEhTL0dRRE5hTlYvNlAxOXllM2VNQWhyZndQeU4xCkJKWXNwRnBTRFJLMTNpNG1IYTk3ZS9WMU9iQkFaQlJNZHhYc3FsaHQvaDR3UWFaRGF4N05tb2huVC9QOGlJTzYKamdtMC82cDBiRmhaaU5nam10TFkwdW9sd2R5Z1JyV1laSCtsclJ6b3FmbW0wUzRieEwrNC9lUXVCeFNlYzBmQwozWjlTaFJPaitiVkt6MFdmRG5PUEQ4S29kTmJqQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSNHR3RnVGY2JTN3VxZXhPcFdCdTEreTFUU0x6QVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQUJpSXNhK0EvNgpkdzIzWVNhTm8wU0FaQ3ZUckc1eE1wVWtpRktDcXd0eXU5OFhOR29JNWlhY3pyMllsS2ZueGh6eVNzSFJuWTBNCnZUT3k3aUp2ZGhseldqUlUvcGZMS0hRMVZuSkZ6ZzQ1NDhrdE5MUHQ3eVFTL25HelJDZnJhZGhzc0FKTzJMc1cKTnRxVm5kM3hibVpFTDREamM4ZWNmYVJZMHJTMm9yQ3RoZzZQZFZhMTdQaWlWTk1zS0hGSnJpMVRPdEY5VzdKYQpNQkRLN2ttL2syZThnRmJPYzhlZHc5VGVmS09QTFBLenN6NXVzbWRCNnVyNnZxRFlUYWhtVi9UV2NrQW04aFd6ClU4bkxDcEE1VVllV3hkbTBJSGU2L0NOUmNEeXQzUEtOQTlMZm5zeHcxZjh5c24zSElSSTc2REhyVE9OK3lQUjQKRFpacjI5YjRsWkVtCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    server: https://192.168.1.1:6443
  name: dev-k8s
contexts:
- context:
    cluster: dev-k8s
    user: pangyeon
  name: pangyeon-dev
current-context:  pangyeon-dev
kind: Config
preferences: {}
users:
- name: pangyeon
  user:
    client-certificate-data: LS0tLS1CRUdJTiBSUZJQDQWdtZ0F3SUJBZ0lJSGpubTVYZWxsbk13RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBNE1qRXhNelV4TlROYUZ3MHlOREE0TWpBeE16VTJOVFphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTJ0QVJiWnBiUmNsdFZXRjAKaldFVCt4ZlJ6NC9naG0rYlhCM3Y1clphVzNNSkxxT0JaSGNaZUJPTEFCTmtvbk5nK3BQTVRndmNQSzQ1TGlBRgo3a0orbXg5UWVUbm0va2U5Rm1FQSswNDRIMlFmczFQOTk1ZWRrZHdZZ1RBNzhUWHc5MnNkWUZ4ZjJKNHpEV3YvCjJiSjkxR0ozSUhMYTNzeGwxRlEvS1Q3ZmFYa0U1Sk5Id283ZStYYVdBTmNET0hUT1Z5SjBYTzdEamJZeHpvZ2YKRVZxeWxEYjlrM0JmZlFHNmdNZGVtR251NGZJNHMybFlUZWtzVGZBdE1Eb0VzYk1TWVpsaGh5VXl4U0wvTGc5MApQSzJTMUFoZUhuYXArT1FKUEczaHh0cW1vKzltY0RDYlZKbkx5d2g3ejBnVWtmNXYzcnpLOE8wamxMSVBSTlAzCmtwNEF4UUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JSNHR3RnVGY2JTN3VxZXhPcFdCdTEreTFUUwpMekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBc3MzUVpGT3V2Nmk1MGsrNTlrU252cUxuSDhNZkNod0ZxSHdZCmVESThQTUVXQXUvdDZ4Ty9CSUFhNm1QOVNvUk9WbHcwejRaRmVMeVIvU0tRQjZINXZjbzJGanpNUFNXaGVsdEYKdjBqTGdleTVjemkvVnJJUkNQNEttRjhqZ1JVMnJPRUsxblB4Tm5jOGp3d1NDamdrSmp6THNhRjBEVng3bjI1NwpBUER3b3NMMGNPMXA1OVVHOEZmWXNCUVhmZDZpZm9vb0VmVjJLSEdyZkZ1WVlqNmNhQjQ0ZjZEVWF0bmIrcXNZCk00VWd0dDhpRklKUEdwQlBIMGlGWjQ2R0dVbFZ0NGw5cFhSRVRQVEQ0K0txekM1UjIvbHJQRkdoVnpJUUFwWlkKYnRHeUI1ejlhRFB0UWJSSTNUaloxTHY2em1HUkk3OUNvSDJ6ZnJmN0svdHBTMk9JSVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    client-key-data: LS0tLS1CRUdJTiBSU0EgUBUmJacGJSY2x0VldGMGpXRVQreGZSejQvZ2htK2JYQjN2NXJaYVczTUpMcU9CClpIY1plQk9MQUJOa29uTmcrcFBNVGd2Y1BLNDVMaUFGN2tKK214OVFlVG5tL2tlOUZtRUErMDQ0SDJRZnMxUDkKOTVlZGtkd1lnVEE3OFRYdzkyc2RZRnhmMko0ekRXdi8yYko5MUdKM0lITGEzc3hsMUZRL0tUN2ZhWGtFNUpOSAp3bzdlK1hhV0FOY0RPSFRPVnlKMFhPN0RqYll4em9nZkVWcXlsRGI5azNCZmZRRzZnTWRlbUdudTRmSTRzMmxZClRla3NUZkF0TURvRXNiTVNZWmxoaHlVeXhTTC9MZzkwUEsyUzFBaGVIbmFwK09RSlBHM2h4dHFtbys5bWNEQ2IKVkpuTHl3aDd6MGdVa2Y1djNyeks4TzBqbExJUFJOUDNrcDRBeFFJREFRQUJBb0lCQVFDTGxKcnBmY09uZXR5QgowSThXK014VUtsZXV2aXNOMXZnV0JRclo4NDBrTlBld2hxQ3R3OE85YzBvQ0hGemZ2QllyQWtrYnFEa3ZoRHY1CmpuZjZDdlRVWTE5a1ZXbGkzOFJoR0RRV0cwbDF6TnJqL0RwUHpLbTVOOXR4M2FEL045ZWxIUEU2WFBMUExldUgKTGxPaFBWbERPQ1NoMEdLS0tYenp1MkluSDNKSXhyby9XYk12MmkwdWtVcEllTkdta1JMZ1VDR09zL25qNmpjdAowOHl2ZHpZUVdwQW5QcHRvZ2RQbTgrUzJHVHBXWktlOUhEbDRqd3NpWVRVZW9IYnpRWWJBUys1SzRmdkJmUGN5CmUyZmU5ZGUxL3lpc1h1b3VHcmt1cGs1ejgveXN6eGJTVlZ2ZlhlWmhjV2dub0xrOEJ2RkY4WC9KV0ZIWE5oUisKY3JhUEg2bkJBb0dCQU81Z2FtVDdzQjhCUWJaQVR1VXlDMk13ZHkzV0l6K21NKzdyVFFLU3htR296VnJlOVhUcgpyN0dub1J4dnpVUWxkWk1HNWQ5RTB5ZFBqOFMzeW81NG16LzZOaW5iQnBaT1NDN2N4eHlOTnNRMFY4TWZxRVEwCnB4T094K1FJaG9GRC9vRXFlVmhvSFYvQ2IzOEN3K1p5VVlyejdxZk40WEZkQ2ovYTMrVnR5S0ROQW9HQkFPcjkKWVp4aU1PaXkzR0pJVlJ1SzY1N005QWsyZFF3blJDeWZTbUZXNzdHMTdRc1RWQy9uVXVueHRMNGNiVEhaRndVMgo2dXVIUUg2QUNMS2p1ek03djJ3MERsZUNlbG1TKzFaelZvS2I2Mmc2S3pUZXZ2bWhrczI0Vkxtc1BMT0lta1pGCndHSmJoT1lFcDhXcktZalZQNzJXSmg4bXhLVFBUSVhFNTZKSzZIL1pBb0dCQU0yQXUxaHhqdVU3M1IyMGxRK00KTkRyL3hrN3l4QktVUTBOZkFWWU5tUThLU25kanJYSnQyVnFyNi80cStHZ2VieDBnbmozOEJKbG9Rc1pSdUVOWgpBR2FJVy9kN2hsTkFDNFN5K3NqSGlRWmZKYVhtL2RaSEdoNkhRaFo1cnhOenZjNDNBc1BQaGp0TzBYWkt1UDVMClliY01FcHdCcHJCbmlIV0NTUEZ1MHI2bEFvR0FSUGdYUlJIZ3J2dUlDV1NYYmgwSTZMUFkwRGRtaFNtbExiK1cKMGhqMUF1Q1ZjUkc4UE04Vkc4cXdOTGdkS0d0Q0FXckw2bExwRC9lK0ZjaE9ja3dQODg4WGdvR3VMVW9oY0k4cgpqZXY3WEx6dDMzZWM3NkdIZDgrcE5sR2lBME9ObkNCdXhhOTh3eElNdDh4enhWQnBnOWhrMmZIRDkyZE1XMXFlCmJaaTB3b2tDZ1lFQTdoWUNYSXlXQkpkU3lrMnNPakVndHdLY3AwY2VxUC9sd2QwbGFya2VDU1laSEtweGY5TSsKMm93dGd6UzFTZ1pibHlvRytMQzVFRkF6cXJIK002aHdXZCtMcG8yeWhBZ1hVNm9SMDlNdG56ZUo0UGhBTzI5WQo1ejNiZHp5Q1RNZlN4RUYweWNOL21yZnI1N2VGVk51d1ZnUkVySWxkVGw5NkRaVENXS2ZDb0h3PQotLS0tLUVORCBSU0EgUFJJVkFURSBS0tLQo=

 

 

3. 복사한 파일 이동 및 조회

아래 두가지 방법으로 사용가능

 

3.1 Windows 계정 폴더로 이동

C:\Users\본인계정\  으로 이동하여 .kube 폴더 생성 후 아래에 config파일 이동

 

C:\Users\본인계정\.kube\config 에 파일이 있을 경우 바로 사용가능하다.

# C드라이브 test에 kubectl 파일이 있는 경우
PS C:\test> ./kubectl get pods -A
NAMESPACE       NAME                                                READY   STATUS        RESTARTS       AGE
ingress-nginx   ingress-nginx-controller-6544f7745b-z4lsr           1/1     Running       1 (52m ago)    24h
kube-system     coredns-5dd5756b68-2tl8x                            1/1     Terminating   0              1d
kube-system     coredns-5dd5756b68-6b55b                            1/1     Terminating   0              1d
kube-system     coredns-5dd5756b68-7fxrc                            1/1     Running       8 (52m ago)    1d
kube-system     coredns-5dd5756b68-h982d                            1/1     Running       9 (52m ago)    1d
kube-system     etcd-ubuntu                                         1/1     Running       0              1d
kube-system     kube-apiserver-ubuntu                               1/1     Running       0              1d
kube-system     kube-controller-manager-ubuntu                      1/1     Running       0              1d
kube-system     kube-proxy-2sngh                                    1/1     Running       9 (52m ago)    1d
kube-system     kube-proxy-mmsbf                                    1/1     Running       10 (52m ago)   1d
kube-system     kube-proxy-zh22k                                    1/1     Running       0              1d
kube-system     kube-scheduler-ubuntu                               1/1     Running       0              1d
kube-system     weave-net-94f8g                                     2/2     Running       24 (52m ago)   1d
kube-system     weave-net-gszsj                                     2/2     Running       30 (51m ago)   1d
kube-system     weave-net-hxknh                                     2/2     Running       1 (99d ago)    1d

 

 

3.2 사용하기 편한곳에 config 파일두고 kubectl --kubeconfig 옵션을 통해 사용

# C드라이브 내 test폴더에 config파일이 있을 경우
./kubectl get pods -A --kubeconfig=C:\test\config
NAMESPACE       NAME                                                READY   STATUS        RESTARTS       AGE
ingress-nginx   ingress-nginx-controller-6544f7745b-z4lsr           1/1     Running       1 (52m ago)    24h
kube-system     coredns-5dd5756b68-2tl8x                            1/1     Terminating   0              1d
kube-system     coredns-5dd5756b68-6b55b                            1/1     Terminating   0              1d
kube-system     coredns-5dd5756b68-7fxrc                            1/1     Running       8 (52m ago)    1d
kube-system     coredns-5dd5756b68-h982d                            1/1     Running       9 (52m ago)    1d
kube-system     etcd-ubuntu                                         1/1     Running       0              1d
kube-system     kube-apiserver-ubuntu                               1/1     Running       0              1d
kube-system     kube-controller-manager-ubuntu                      1/1     Running       0              1d
kube-system     kube-proxy-2sngh                                    1/1     Running       9 (52m ago)    1d
kube-system     kube-proxy-mmsbf                                    1/1     Running       10 (52m ago)   1d
kube-system     kube-proxy-zh22k                                    1/1     Running       0              1d
kube-system     kube-scheduler-ubuntu                               1/1     Running       0              1d
kube-system     weave-net-94f8g                                     2/2     Running       24 (52m ago)   1d
kube-system     weave-net-gszsj                                     2/2     Running       30 (51m ago)   1d
kube-system     weave-net-hxknh                                     2/2     Running       1 (99d ago)    1d

 

 

4. k8s 클러스터가 여러개일경우

config 파일에 등록한다.

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJTC9XdXZlY1ZxL013RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBNE1qRXhNelV4TlROYUZ3MHpNekE0TVRneE16VTJOVE5hTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURmZTZSREhXZE90Q25qczZnNHFESVprZHFzR2ZRUEE5MXlWYS9LN3AwcTZIRllvRzRQcGZHMkdUeFIKWi9HeXFqU3ZIS01KYWo1WUIvdHJ1TEtrMnoreTFGZXp0eHJFc1JkVi96UXlNOENrcGZVd1FhV2dNMGhSUTF3NgpKcTZGOHhsMlBSaDFlRjJ1eG9YT0pPOFFGam1EV2lUWVQrNEhTL0dRRE5hTlYvNlAxOXllM2VNQWhyZndQeU4xCkJKWXNwRnBTRFJLMTNpNG1IYTk3ZS9WMU9iQkFaQlJNZHhYc3FsaHQvaDR3UWFaRGF4N05tb2huVC9QOGlJTzYKamdtMC82cDBiRmhaaU5nam10TFkwdW9sd2R5Z1JyV1laSCtsclJ6b3FmbW0wUzRieEwrNC9lUXVCeFNlYzBmQwozWjlTaFJPaitiVkt6MFdmRG5PUEQ4S29kTmJqQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSNHR3RnVGY2JTN3VxZXhPcFdCdTEreTFUU0x6QVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQUJpSXNhK0EvNgpkdzIzWVNhTm8wU0FaQ3ZUckc1eE1wVWtpRktDcXd0eXU5OFhOR29JNWlhY3pyMllsS2ZueGh6eVNzSFJuWTBNCnZUT3k3aUp2ZGhseldqUlUvcGZMS0hRMVZuSkZ6ZzQ1NDhrdE5MUHQ3eVFTL25HelJDZnJhZGhzc0FKTzJMc1cKTnRxVm5kM3hibVpFTDREamM4ZWNmYVJZMHJTMm9yQ3RoZzZQZFZhMTdQaWlWTk1zS0hGSnJpMVRPdEY5VzdKYQpNQkRLN2ttL2syZThnRmJPYzhlZHc5VGVmS09QTFBLenN6NXVzbWRCNnVyNnZxRFlUYWhtVi9UV2NrQW04aFd6ClU4bkxDcEE1VVllV3hkbTBJSGU2L0NOUmNEeXQzUEtOQTlMZm5zeHcxZjh5c24zSElSSTc2REhyVE9OK3lQUjQKRFpacjI5YjRsWkVtCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    server: https://192.168.1.1:6443
  name: dev-k8s
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJTC9XdXZlY1ZxL013RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBNE1qRXhNelV4TlROYUZ3MHpNekE0TVRneE16VTJOVE5hTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURmZTZSREhXZE90Q25qczZnNHFESVprZHFzR2ZRUEE5MXlWYS9LN3AwcTZIRllvRzRQcGZHMkdUeFIKWi9HeXFqU3ZIS01KYWo1WUIvdHJ1TEtrMnoreTFGZXp0eHJFc1JkVi96UXlNOENrcGZVd1FhV2dNMGhSUTF3NgpKcTZGOHhsMlBSaDFlRjJ1eG9YT0pPOFFGam1EV2lUWVQrNEhTL0dRRE5hTlYvNlAxOXllM2VNQWhyZndQeU4xCkJKWXNwRnBTRFJLMTNpNG1IYTk3ZS9WMU9iQkFaQlJNZHhYc3FsaHQvaDR3UWFaRGF4N05tb2huVC9QOGlJTzYKamdtMC82cDBiRmhaaU5nam10TFkwdW9sd2R5Z1JyV1laSCtsclJ6b3FmbW0wUzRieEwrNC9lUXVCeFNlYzBmQwozWjlTaFJPaitiVkt6MFdmRG5PUEQ4S29kTmJqQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSNHR3RnVGY2JTN3VxZXhPcFdCdTEreTFUU0x6QVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQUJpSXNhK0EvNgpkdzIzWVNhTm8wU0FaQ3ZUckc1eE1wVWtpRktDcXd0eXU5OFhOR29JNWlhY3pyMllsS2ZueGh6eVNzSFJuWTBNCnZUT3k3aUp2ZGhseldqUlUvcGZMS0hRMVZuSkZ6ZzQ1NDhrdE5MUHQ3eVFTL25HelJDZnJhZGhzc0FKTzJMc1cKTnRxVm5kM3hibVpFTDREamM4ZWNmYVJZMHJTMm9yQ3RoZzZQZFZhMTdQaWlWTk1zS0hGSnJpMVRPdEY5VzdKYQpNQkRLN2ttL2syZThnRmJPYzhlZHc5VGVmS09QTFBLenN6NXVzbWRCNnVyNnZxRFlUYWhtVi9UV2NrQW04aFd6ClU4bkxDcEE1VVllV3hkbTBJSGU2L0NOUmNEeXQzUEtOQTlMZm5zeHcxZjh5c24zSElSSTc2REhyVE9OK3lQUjQKRFpacjI5YjRsWkVtCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    server: https://192.168.2.1:6443
  name: stg-k8s
contexts:
- context:
    cluster: dev-k8s
    user: pangyeon-dev
  name: pangyeon-dev
- context:
    cluster: stg-k8s
    user: pangyeon-stg
  name: pangyeon-stg
current-context: pangyeon-dev
kind: Config
preferences: {}
users:
- name: pangyeon-dev
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJSGpubTVYZWxsbk13RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBNE1qRXhNelV4TlROYUZ3MHlOREE0TWpBeE16VTJOVFphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTJ0QVJiWnBiUmNsdFZXRjAKaldFVCt4ZlJ6NC9naG0rYlhCM3Y1clphVzNNSkxxT0JaSGNaZUJPTEFCTmtvbk5nK3BQTVRndmNQSzQ1TGlBRgo3a0orbXg5UWVUbm0va2U5Rm1FQSswNDRIMlFmczFQOTk1ZWRrZHdZZ1RBNzhUWHc5MnNkWUZ4ZjJKNHpEV3YvCjJiSjkxR0ozSUhMYTNzeGwxRlEvS1Q3ZmFYa0U1Sk5Id283ZStYYVdBTmNET0hUT1Z5SjBYTzdEamJZeHpvZ2YKRVZxeWxEYjlrM0JmZlFHNmdNZGVtR251NGZJNHMybFlUZWtzVGZBdE1Eb0VzYk1TWVpsaGh5VXl4U0wvTGc5MApQSzJTMUFoZUhuYXArT1FKUEczaHh0cW1vKzltY0RDYlZKbkx5d2g3ejBnVWtmNXYzcnpLOE8wamxMSVBSTlAzCmtwNEF4UUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JSNHR3RnVGY2JTN3VxZXhPcFdCdTEreTFUUwpMekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBc3MzUVpGT3V2Nmk1MGsrNTlrU252cUxuSDhNZkNod0ZxSHdZCmVESThQTUVXQXUvdDZ4Ty9CSUFhNm1QOVNvUk9WbHcwejRaRmVMeVIvU0tRQjZINXZjbzJGanpNUFNXaGVsdEYKdjBqTGdleTVjemkvVnJJUkNQNEttRjhqZ1JVMnJPRUsxblB4Tm5jOGp3d1NDamdrSmp6THNhRjBEVng3bjI1NwpBUER3b3NMMGNPMXA1OVVHOEZmWXNCUVhmZDZpZm9vb0VmVjJLSEdyZkZ1WVlqNmNhQjQ0ZjZEVWF0bmIrcXNZCk00VWd0dDhpRklKUEdwQlBIMGlGWjQ2R0dVbFZ0NGw5cFhSRVRQVEQ0K0txekM1UjIvbHJQRkdoVnpJUUFwWlkKYnRHeUI1ejlhRFB0UWJSSTNUaloxTHY2em1HUkk3OUNvSDJ6ZnJmN0svdHBTMk9JSVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBMnRBUmJacGJSY2x0VldGMGpXRVQreGZSejQvZ2htK2JYQjN2NXJaYVczTUpMcU9CClpIY1plQk9MQUJOa29uTmcrcFBNVGd2Y1BLNDVMaUFGN2tKK214OVFlVG5tL2tlOUZtRUErMDQ0SDJRZnMxUDkKOTVlZGtkd1lnVEE3OFRYdzkyc2RZRnhmMko0ekRXdi8yYko5MUdKM0lITGEzc3hsMUZRL0tUN2ZhWGtFNUpOSAp3bzdlK1hhV0FOY0RPSFRPVnlKMFhPN0RqYll4em9nZkVWcXlsRGI5azNCZmZRRzZnTWRlbUdudTRmSTRzMmxZClRla3NUZkF0TURvRXNiTVNZWmxoaHlVeXhTTC9MZzkwUEsyUzFBaGVIbmFwK09RSlBHM2h4dHFtbys5bWNEQ2IKVkpuTHl3aDd6MGdVa2Y1djNyeks4TzBqbExJUFJOUDNrcDRBeFFJREFRQUJBb0lCQVFDTGxKcnBmY09uZXR5QgowSThXK014VUtsZXV2aXNOMXZnV0JRclo4NDBrTlBld2hxQ3R3OE85YzBvQ0hGemZ2QllyQWtrYnFEa3ZoRHY1CmpuZjZDdlRVWTE5a1ZXbGkzOFJoR0RRV0cwbDF6TnJqL0RwUHpLbTVOOXR4M2FEL045ZWxIUEU2WFBMUExldUgKTGxPaFBWbERPQ1NoMEdLS0tYenp1MkluSDNKSXhyby9XYk12MmkwdWtVcEllTkdta1JMZ1VDR09zL25qNmpjdAowOHl2ZHpZUVdwQW5QcHRvZ2RQbTgrUzJHVHBXWktlOUhEbDRqd3NpWVRVZW9IYnpRWWJBUys1SzRmdkJmUGN5CmUyZmU5ZGUxL3lpc1h1b3VHcmt1cGs1ejgveXN6eGJTVlZ2ZlhlWmhjV2dub0xrOEJ2RkY4WC9KV0ZIWE5oUisKY3JhUEg2bkJBb0dCQU81Z2FtVDdzQjhCUWJaQVR1VXlDMk13ZHkzV0l6K21NKzdyVFFLU3htR296VnJlOVhUcgpyN0dub1J4dnpVUWxkWk1HNWQ5RTB5ZFBqOFMzeW81NG16LzZOaW5iQnBaT1NDN2N4eHlOTnNRMFY4TWZxRVEwCnB4T094K1FJaG9GRC9vRXFlVmhvSFYvQ2IzOEN3K1p5VVlyejdxZk40WEZkQ2ovYTMrVnR5S0ROQW9HQkFPcjkKWVp4aU1PaXkzR0pJVlJ1SzY1N005QWsyZFF3blJDeWZTbUZXNzdHMTdRc1RWQy9uVXVueHRMNGNiVEhaRndVMgo2dXVIUUg2QUNMS2p1ek03djJ3MERsZUNlbG1TKzFaelZvS2I2Mmc2S3pUZXZ2bWhrczI0Vkxtc1BMT0lta1pGCndHSmJoT1lFcDhXcktZalZQNzJXSmg4bXhLVFBUSVhFNTZKSzZIL1pBb0dCQU0yQXUxaHhqdVU3M1IyMGxRK00KTkRyL3hrN3l4QktVUTBOZkFWWU5tUThLU25kanJYSnQyVnFyNi80cStHZ2VieDBnbmozOEJKbG9Rc1pSdUVOWgpBR2FJVy9kN2hsTkFDNFN5K3NqSGlRWmZKYVhtL2RaSEdoNkhRaFo1cnhOenZjNDNBc1BQaGp0TzBYWkt1UDVMClliY01FcHdCcHJCbmlIV0NTUEZ1MHI2bEFvR0FSUGdYUlJIZ3J2dUlDV1NYYmgwSTZMUFkwRGRtaFNtbExiK1cKMGhqMUF1Q1ZjUkc4UE04Vkc4cXdOTGdkS0d0Q0FXckw2bExwRC9lK0ZjaE9ja3dQODg4WGdvR3VMVW9oY0k4cgpqZXY3WEx6dDMzZWM3NkdIZDgrcE5sR2lBME9ObkNCdXhhOTh3eElNdDh4enhWQnBnOWhrMmZIRDkyZE1XMXFlCmJaaTB3b2tDZ1lFQTdoWUNYSXlXQkpkU3lrMnNPakVndHdLY3AwY2VxUC9sd2QwbGFya2VDU1laSEtweGY5TSsKMm93dGd6UzFTZ1pibHlvRytMQzVFRkF6cXJIK002aHdXZCtMcG8yeWhBZ1hVNm9SMDlNdG56ZUo0UGhBTzI5WQo1ejNiZHp5Q1RNZlN4RUYweWNOL21yZnI1N2VGVk51d1ZnUkVySWxkVGw5NkRaVENXS2ZDb0h3PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
- name: pangyeon-stg
  user:
    client-certificate-data: LS0tLS1CRUdJTiGSDKLNMFKGHtLS0tCk1JSURJVENDQWdubTVYZWxsbk13RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBNE1qRXhNelV4TlROYUZ3MHlOREE0TWpBeE16VTJOVFphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTJ0QVJiWnBiUmNsdFZXRjAKaldFVCt4ZlJ6NC9naG0rYlhCM3Y1clphVzNNSkxxT0JaSGNaZUJPTEFCTmtvbk5nK3BQTVRndmNQSzQ1TGlBRgo3a0orbXg5UWVUbm0va2U5Rm1FQSswNDRIMlFmczFQOTk1ZWRrZHdZZ1RBNzhUWHc5MnNkWUZ4ZjJKNHpEV3YvCjJiSjkxR0ozSUhMYTNzeGwxRlEvS1Q3ZmFYa0U1Sk5Id283ZStYYVdBTmNET0hUT1Z5SjBYTzdEamJZeHpvZ2YKRVZxeWxEYjlrM0JmZlFHNmdNZGVtR251NGZJNHMybFlUZWtzVGZBdE1Eb0VzYk1TWVpsaGh5VXl4U0wvTGc5MApQSzJTMUFoZUhuYXArT1FKUEczaHh0cW1vKzltY0RDYlZKbkx5d2g3ejBnVWtmNXYzcnpLOE8wamxMSVBSTlAzCmtwNEF4UUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JSNHR3RnVGY2JTN3VxZXhPcFdCdTEreTFUUwpMekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBc3MzUVpGT3V2Nmk1MGsrNTlrU252cUxuSDhNZkNod0ZxSHdZCmVESThQTUVXQXUvdDZ4Ty9CSUFhNm1QOVNvUk9WbHcwejRaRmVMeVIvU0tRQjZINXZjbzJGanpNUFNXaGVsdEYKdjBqTGdleTVjemkvVnJJUkNQNEttRjhqZ1JVMnJPRUsxblB4Tm5jOGp3d1NDamdrSmp6THNhRjBEVng3bjI1NwpBUER3b3NMMGNPMXA1OVVHOEZmWXNCUVhmZDZpZm9vb0VmVjJLSEdyZkZ1WVlqNmNhQjQ0ZjZEVWF0bmIrcXNZCk00VWd0dDhpRklKUEdwQlBIMGlGWjQ2R0dVbFZ0NGw5cFhSRVRQVEQ0K0txekM1UjIvbHJQRkdoVnpJUUFwWlkKYnRHeUI1ejlhRFB0UWJSSTNUaloxTHY2em1HUkk3OUNvSDJ6ZnJmN0svdHBTMk9JSVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJGSNRYJASQAWpNSUlFcFFJQkFBS0NBUUVBMnRBUmJacGJSY2x0VldGMGpXRVQreGZSejQvZ2htK2JYQjN2NXJaYVczTUpMcU9CClpIY1plQk9MQUJOa29uTmcrcFBNVGd2Y1BLNDVMaUFGN2tKK214OVFlVG5tL2tlOUZtRUErMDQ0SDJRZnMxUDkKOTVlZGtkd1lnVEE3OFRYdzkyc2RZRnhmMko0ekRXdi8yYko5MUdKM0lITGEzc3hsMUZRL0tUN2ZhWGtFNUpOSAp3bzdlK1hhV0FOY0RPSFRPVnlKMFhPN0RqYll4em9nZkVWcXlsRGI5azNCZmZRRzZnTWRlbUdudTRmSTRzMmxZClRla3NUZkF0TURvRXNiTVNZWmxoaHlVeXhTTC9MZzkwUEsyUzFBaGVIbmFwK09RSlBHM2h4dHFtbys5bWNEQ2IKVkpuTHl3aDd6MGdVa2Y1djNyeks4TzBqbExJUFJOUDNrcDRBeFFJREFRQUJBb0lCQVFDTGxKcnBmY09uZXR5QgowSThXK014VUtsZXV2aXNOMXZnV0JRclo4NDBrTlBld2hxQ3R3OE85YzBvQ0hGemZ2QllyQWtrYnFEa3ZoRHY1CmpuZjZDdlRVWTE5a1ZXbGkzOFJoR0RRV0cwbDF6TnJqL0RwUHpLbTVOOXR4M2FEL045ZWxIUEU2WFBMUExldUgKTGxPaFBWbERPQ1NoMEdLS0tYenp1MkluSDNKSXhyby9XYk12MmkwdWtVcEllTkdta1JMZ1VDR09zL25qNmpjdAowOHl2ZHpZUVdwQW5QcHRvZ2RQbTgrUzJHVHBXWktlOUhEbDRqd3NpWVRVZW9IYnpRWWJBUys1SzRmdkJmUGN5CmUyZmU5ZGUxL3lpc1h1b3VHcmt1cGs1ejgveXN6eGJTVlZ2ZlhlWmhjV2dub0xrOEJ2RkY4WC9KV0ZIWE5oUisKY3JhUEg2bkJBb0dCQU81Z2FtVDdzQjhCUWJaQVR1VXlDMk13ZHkzV0l6K21NKzdyVFFLU3htR296VnJlOVhUcgpyN0dub1J4dnpVUWxkWk1HNWQ5RTB5ZFBqOFMzeW81NG16LzZOaW5iQnBaT1NDN2N4eHlOTnNRMFY4TWZxRVEwCnB4T094K1FJaG9GRC9vRXFlVmhvSFYvQ2IzOEN3K1p5VVlyejdxZk40WEZkQ2ovYTMrVnR5S0ROQW9HQkFPcjkKWVp4aU1PaXkzR0pJVlJ1SzY1N005QWsyZFF3blJDeWZTbUZXNzdHMTdRc1RWQy9uVXVueHRMNGNiVEhaRndVMgo2dXVIUUg2QUNMS2p1ek03djJ3MERsZUNlbG1TKzFaelZvS2I2Mmc2S3pUZXZ2bWhrczI0Vkxtc1BMT0lta1pGCndHSmJoT1lFcDhXcktZalZQNzJXSmg4bXhLVFBUSVhFNTZKSzZIL1pBb0dCQU0yQXUxaHhqdVU3M1IyMGxRK00KTkRyL3hrN3l4QktVUTBOZkFWWU5tUThLU25kanJYSnQyVnFyNi80cStHZ2VieDBnbmozOEJKbG9Rc1pSdUVOWgpBR2FJVy9kN2hsTkFDNFN5K3NqSGlRWmZKYVhtL2RaSEdoNkhRaFo1cnhOenZjNDNBc1BQaGp0TzBYWkt1UDVMClliY01FcHdCcHJCbmlIV0NTUEZ1MHI2bEFvR0FSUGdYUlJIZ3J2dUlDV1NYYmgwSTZMUFkwRGRtaFNtbExiK1cKMGhqMUF1Q1ZjUkc4UE04Vkc4cXdOTGdkS0d0Q0FXckw2bExwRC9lK0ZjaE9ja3dQODg4WGdvR3VMVW9oY0k4cgpqZXY3WEx6dDMzZWM3NkdIZDgrcE5sR2lBME9ObkNCdXhhOTh3eElNdDh4enhWQnBnOWhrMmZIRDkyZE1XMXFlCmJaaTB3b2tDZ1lFQTdoWUNYSXlXQkpkU3lrMnNPakVndHdLY3AwY2VxUC9sd2QwbGFya2VDU1laSEtweGY5TSsKMm93dGd6UzFTZ1pibHlvRytMQzVFRkF6cXJIK002aHdXZCtMcG8yeWhBZ1hVNm9SMDlNdG56ZUo0UGhBTzI5WQo1ejNiZHp5Q1RNZlN4RUYweWNOL21yZnI1N2VGVk51d1ZnUkVySWxkVGw5NkRaVENXS2ZDb0h3PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=

 

 

5. use-context 옵션을 통해 클러스터를 선택한다.

PS C:\test> ./kubectl config use-context pangyeon-dev
Switched to context "pangyeon-dev".

 

 

6. 선택 후 조회

./kubectl get pods -A
NAMESPACE       NAME                                                READY   STATUS        RESTARTS       AGE
ingress-nginx   ingress-nginx-controller-6544f7745b-z4lsr           1/1     Running       1 (52m ago)    24h
kube-system     coredns-5dd5756b68-2tl8x                            1/1     Terminating   0              1d
kube-system     coredns-5dd5756b68-6b55b                            1/1     Terminating   0              1d
kube-system     coredns-5dd5756b68-7fxrc                            1/1     Running       8 (52m ago)    1d
kube-system     coredns-5dd5756b68-h982d                            1/1     Running       9 (52m ago)    1d
kube-system     etcd-ubuntu                                         1/1     Running       0              1d
kube-system     kube-apiserver-ubuntu                               1/1     Running       0              1d
kube-system     kube-controller-manager-ubuntu                      1/1     Running       0              1d
kube-system     kube-proxy-2sngh                                    1/1     Running       9 (52m ago)    1d
kube-system     kube-proxy-mmsbf                                    1/1     Running       10 (52m ago)   1d
kube-system     kube-proxy-zh22k                                    1/1     Running       0              1d
kube-system     kube-scheduler-ubuntu                               1/1     Running       0              1d
kube-system     weave-net-94f8g                                     2/2     Running       24 (52m ago)   1d
kube-system     weave-net-gszsj                                     2/2     Running       30 (51m ago)   1d
kube-system     weave-net-hxknh                                     2/2     Running       1 (99d ago)    1d

 

 

참고

https://kubernetes.io/ko/docs/tasks/tools/install-kubectl-windows/

https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/

반응형
반응형

 

1. etcdctl leader 및 list 조회 명령어 입력시 Error: context deadline exceeded 발생할 경우 cacert, cert, key를 입력해준다.

# 아래 두개 중 하나 사용
etcdctl member list --cacert="/etc/kubernetes/pki/etcd/ca.crt" --cert="/etc/kubernetes/pki/etcd/peer.crt" --key="/etc/kubernetes/pki/etcd/peer.key"
or
etcdctl member list --cacert="/etc/kubernetes/pki/etcd/ca.crt" --cert="/etc/kubernetes/pki/etcd/server.crt" --key="/etc/kubernetes/pki/etcd/server.key"

 

 

2. etcdctl 사용시 open /etc/kubernetes/pki/etcd/ca.crt: permission denied 발생할 경우

kube-system의 etcd 버전과 맞춰준다.

cat /etc/kubernetes/manifests/etcd.yaml | grep image
# image: image: registry.k8s.io/etcd:3.5.9-0 
# 위 image 버전확인 후 etcdctl 다운
# https://github.com/etcd-io/etcd/releases
curl https://storage.googleapis.com/etcd/v3.5.9/etcd-v3.5.9-linux-amd64.tar.gz -o ./etcd-v3.5.9-linux-amd64.tar.gz
반응형

+ Recent posts