k8s 129

[k8s] kubectl 플러그인 - kubectx / kubens

kubectx / kubens 멀티 클러스터 / 다중 네임스페이스 간의 쉬운 전환을 도와주는 kubectl 플러그인/도구이다. v0.9.0부터는 Go로 작성되었다. 두 개 도구 모두 https://github.com/ahmetb/kubectx에서 지원하고 있다. kubectx : kubectl에서 context 전환을 빠르게 할 수 있게 해주는 플러그인 kubens : 쿠버네티스 네임스페이스 간 전환을 쉽게 할 수 있게 해주는 플러그인 이 글에서는 설치 방법과 사용 방법을 간단히 정리해둔다. + 2023.02.04 - [k8s] kubectl 플러그인 - kube-ps1와 함께 사용하기 좋아 보인다. 설치 Ubuntu 기준으로 krew를 통한 설치, 수동 설치 방법 두 가지를 고려할 수 있다. Krew를..

Kubernetes 2023.02.05

[k8s] kubectl 플러그인 - kube-ps1

kube_ps1 kubectl에 구성된 현재 쿠버네티스 context와 namespace를 Bash/Zsh 프롬프트($PS1)에 표시한다. kubectl 플러그인 관리자인 krew에는 등록되지 않은 플러그인이다. Git 주소 : https://github.com/jonmosco/kube-ps1 설치 Bash 기준으로는 아래와 같이 설치한다. 1. Git 저장소 Clone git clone https://github.com/jonmosco/kube-ps1.git 2. .bashrc에 설정 추가 및 적용 vi ~/.bashrc # 아래 내용 추가 source /path/to/kube-ps1.sh PS1='[\u@\h \W $(kube_ps1)]\$ ' 3. .bashrc 적용 source ~/.bashrc ..

Kubernetes 2023.02.04

[k8s] krew - kubectl 플러그인 관리자

Krew kubectl을 보다 편리하게 사용할 수 있도록 해주는 플러그인 관리 도구로, apt, brew와 비슷하게 kubectl 플러그인을 검색하고 설치할 수 있다. 현재(2023년 1월) 기준 210개의 kubectl 플러그인이 배포되어 있다. macOS, Linux, Windows에서 사용할 수 있으며 kubectl v1.12 이상의 버전에서 지원 가능하다. 이 글에서는 Krew를 설치하고 사용하는 방법을 소개하려고 한다. 설치 Linux 기준으로 방법을 정리한다. 1. git 설치 여부를 확인한다. 설치되어 있지 않으면 설치한다. git version # 설치 apt install git-all 2. 아래 명령어를 실행하여 krew를 설치한다. ( set -x; cd "$(mktemp -d)" &..

Kubernetes 2023.02.03

[k8s] 인증서 기반 Group User 생성

개요 Kubernetes에서 작업하는 사용자(User)와 서비스 계정(Service Accounts)은 Role-based access control(RBAC)에 의해 클러스터 내 리소스 접근을 제어받는다. Kubernetes 클러스터 관리자는 RoleBinding을 생성하여 User, Group, ServiceAccount에게 권한이 부여된 Role을 연결할 수 있는데, 이때 Group은 User의 집합을 의미한다. 2022.09.07 - [k8s] 인증서 기반 User 생성에서는 단순 User를 생성해 보았는데, 이 글에서는 특정 Group에 속한 User를 생성해 볼 것이다. 기본적으로 OpenSSL을 사용하여 CSR을 생성하는 것은 동일하다. + 인증서를 생성하는 도구로 꼭 OpenSSL을 사용할..

Kubernetes 2023.02.02

[k8s] Released PV 재사용(Released to Available)

개요 kubernetes에서 사용이 끝난 PVC가 삭제되면 PVC가 사용 중이던 PV는 초기화(reclaim)하는 과정을 거친다. 초기화 정책은 3가지가 존재한다. Retain PVC가 삭제되면 PV를 Released 상태로 만들어 PV를 보존한다. PV 내 데이터는 유지되지만 PV를 재사용할 수 없다. PV에 연결되어 있던 외부 스토리지 볼륨을 삭제하려면 관리자가 작업해야 한다. 또한 볼륨을 재사용하기 위해서는 해당 볼륨을 이용하는 PV를 재생성하는 등의 작업이 필요하다. Delete PV 및 연결되어 있던 외부 스토리지 볼륨을 삭제한다. 동적 프로비저닝으로 생성된 PV는 Delete가 기본값이다. Recycle Reclaiming 시 새 PVC에서 사용할 수 있는 상태로 만든다. 과정 중 PV 내 데..

Kubernetes 2023.01.30

[k8s] 사용자 전체 권한 확인 - 1

개요 2022.01.06 - RBAC에서 사용자가 특정 리소스에 대한 권한을 확인할 수 있는 can-i 명령을 살펴보았었다. 다만 현재 사용자에게 부여된 권한 전체를 확인할 필요성이 있어 추가로 정리한다. 사용자 권한 목록 확인 can-i 명령의 --list 옵션은 허용된 모든 action을 출력한다. 다만 --all-namespaces 옵션을 지원하지 않아 네임스페이스 별로 확인해야 한다. kubectl auth can-i --list 모든 권한을 부여받았는지 여부 can-i 명령에서 *는 모든 리소스 또는 모든 verb를 의미한다. 따라서 아래와 같은 방식으로 모든 리소스에 대한 모든 권한이 부여되어 있는지 확인할 수 있다. # 현재 네임스페이스 kubectl auth can-i '*' '*' # 모..

Kubernetes 2023.01.28

[AWS] EKS 접근 설정

개요 이미 생성되어 있는 EKS에 접속할 수 있도록 설정해보려고 한다. EKS에 접근하기 위해서는 다음과 같은 사항이 필요하다. aws cli : eks는 버전 2에서만 지원한다. EKS 클러스터 접근 권한이 부여된 IAM 사용자 또는 역할 kubectl 방법은 다음과 같다. 권한 설정 및 확인 aws profile을 등록하고, 접근할 EKS 클러스터의 정보를 조회할 수 있는지 확인한다. # profile 등록 aws configure # 클러스터 목록 확인 aws eks list-clusters \ --profile --region ap-northeast-2 # 클러스터 정보 확인 aws eks describe-cluster \ --name \ --profile --region ap-northeast-..

AWS 2023.01.09

[kubeadm] 노드 삭제

개요 kubeadm으로 구성한 쿠버네티스 클러스터에서 특정 노드를 제외하려고 한다. 방법을 정리해둔다. kubectl로 작업 1. Node 상태 확인 kubectl get nodes 2. Node 스케쥴링 비활성화 Node에 Pod가 스케쥴링되지 않도록 상태를 변경한다. kubectl drain # --ignore-daemonsets : drain 시 daemonset에 의한 pod 제외 Daemonset에 의해 생성된 Pod가 동작 중인 경우에는 --ignore-daemonsets 옵션을 사용하여 실행한다. 참고 : 2022.06.23 - [k8s] drain 3. 노드 삭제 kubectl delete nodes 제거한 노드에서 작업 1. kubeadm reset kubeadm reset은 kubead..

Kubernetes 2022.11.08

[Killercoda] 쿠버네티스 플레이그라운드

소개 기본적으로 쿠버네티스를 실습하려면 클러스터가 구성되어 있어야 한다. 다만 사용할 수 있는 서버도 없고 구성하기 귀찮은 경우에는 웹 상에서 쿠버네티스 플레이그라운드를 이용해 쿠버네티스를 실습할 수 있다. 기존에 katacoda의 쿠버네티스 플레이그라운드를 사용할 수 있었는데 현재는 서비스를 중단한 것 같다. 이 글에서는 killercoda를 소개한다. killercoda kubernetes 환경 : https://killercoda.com/playgrounds/scenario/kubernetes 환경 정보 로그인 계정 필요 : Github, Gitlab, Google, Email로 로그인 가능 1시간 유지 후 만료 controlplane 1개, node 1개 구성 : 1 CPU, 2GB MEM, 10..

기타 2022.09.09

[k8s] kubeconfig - 사용자 추가

kubectl config 사용자는 쿠버네티스 클러스터를 조작하기 위해 apiserver에 작업을 요청한다. 이때 curl 명령으로도 요청할 수 있으나 key, cert, cacert를 매번 지정해주어야 하는 불편함이 있어 kubeconfig 파일에 해당 정보를 설정해두고 kubectl 명령어로 요청하게 된다. kubectl config 명령은 kubeconfig 파일을 수정한다. 관련 명령어를 통해 2022.09.07 - [k8s] 인증서 기반 User 생성 에서 생성한 user를 추가하고, user가 kubectl을 통해 클러스터를 조작할 수 있도록 설정해보도록 한다. 등록된 정보 확인 kubeconfig에 등록된 사용자, 클러스터, context 정보는 get-* 명령으로 확인할 수 있다. 💡 co..

Kubernetes 2022.09.08