Kubernetes 8

containerd 에 Private Registry Credential 설정 (aka config.toml)

OverView본문에서는 containerd 가 Registry (컨테이너 이미지 저장소) 로부터 image 를 다운 (pull) 받을 때 pod imageSecret 설정 없이 가능하도록 설정하는 방법을 설명합니다. CRI 로 containerd, cri-o, docker 등 다양하지만 저는 containerd 를 사용하고 있습니다.containerd 의 설정 파일은 /etc/ containerd/config.toml 경로에 있습니다. 해당 파일이 없을 경우 아래 커맨드로 기본 설정 파일 생성이 가능합니다.containerd config default > /etc/containerd/config.toml Configure Registry Credentials$ sudo ctr --versionClien..

Kubernetes 2024.07.01

Nginx Ingress Rewirte & AWS Load Balancer Controller

(AS-IS) AWS ALB - Ingress - Service - Pod (TO-BE) AWS NLB - Ingress Nginx - Service - Pod 기존에 EKS ALB 와 Ingress 를 사용하여 Path-based Routing 을 적용했으나, 한 도메인으로 여러 Back End , Front End 서비스를 운영해야하는 환경이었으므로 정규식을 이용한 Rewrite 기능이 필요해졌습니다. (23-08 기준, ALB ingress는 rewrite를 지원하지 않습니다.) 1. Nginx Ingress Controller 설치 따라서 NLB 로 변경후 ssl key 는 NLB 에 적용했으며, Nginx Ingress Controller 를 추가로 설치했습니다. 자주 쓰이는 Nginx Ingr..

Kubernetes 2023.09.12

[kubectl] krew - Kubernetes Plugin Manager

쿠버네티스 플러그인 관리자 - Krew Krew는 쿠버네티스 플러그인 패키지 관리자입니다. macOS의 brew, Ubuntu의 apt 와 비슷한 역할을 수행한다고 보면 됩니다. Krew 를 통해 현재 217개이상의 플러그인을 설치할 수 있으며, 사용법도 매우 단순하다. krew 의 주요기능은 다음과 같다. 플러그인 검색 플러그인 설치 플러그인 업데이트 Installing krew 설치 방법 # macOS & Linux # git 이 설치되어 있어야합니다. # () 부분도 포함하여 붙여 넣습니다. ( set -x; cd "$(mktemp -d)" && OS="$(uname | tr '[:upper:]' '[:lower:]')" && ARCH="$(uname -m | sed -e 's/x86_64/amd6..

Kubernetes 2023.07.10

vCluster (Multi-Tenancy in Kubernetes)

kubernetes 멀티 테넌시를 구현하며 vcluster 에 대해 공부한 내용에 대해 정리합니다. 1. vCluster 개요 vcluster 는 가상 Kubernetes 클러스터를 생성할 때 사용할 수 있다. 가상 클러스터 오버헤드를 줄이기 위해 vcluster는 기본적으로 k3s 에서 빌드합니다. k3s 외에도 k0s 및 Vanilla k8s와 같은 다른 Kubernetes 배포판 지원 각 vcluster 는 k8s 클러스터의 namespace 내에서 실행되며, 별도의 완전한 클러스터를 생성하는것보다 비용이 저렴하다. 일반 namespace 보다 더 나은 multi-tenancy 와 격리성을 제공한다. 가상 클러스터를 통해 사용자는 CRD(CustomResourceDefinitions), 네임스페이스..

Kubernetes 2023.07.10

[kubectl] kubectx + kubens 설정 및 자동 완성

1. kubectx kubectx는 cluster 간의 전환을 쉽고 빠르게 할 수 있게 해주는 플러그인입니다. A. kubectl 명령어를 이용한 context 변경 # 컨텍스트 리스트 출력 kubectl config get-contexts # kind-kind 를 기본 컨텍스트로 설정 kubectl config use-context kind-kind B. kubectx 설치 # kubectx 설치 wget https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubectx sudo install kubectx /usr/local/bin # 설치확인 $ which kubectx /usr/local/bin/kubectx C. kubectx 사용법 cont..

Kubernetes 2023.07.09

nginx ingress controller tcp 설정

개발자는 DBeaver , MySQL Workbench 와 같은 DataBase Tool 을 이용하여 Table 의 schema , Data 를 확인하기 때문에 db 접근이 가능해야한다. (pod 내에서 shell로 가능하긴하지만.. 매우 불편하다.) k8s 에 띄운 service 는 ingress 를 설정한 후 외부에서 접근할 수 있게 되지만 mysql 은 ingress만 생성한다고 외부에서 접근하여 DB connection 을 이용할 수 있는 것은 아니다. # TCP 를 사용하는 port 를 ingress controller 에 설정해줄것 방법 설명 요약 k8s Ingress 객체는 TCP, UDP port로 routing하기 위한 service를 지원하지 않는다. 때문에 Ingress control..

Kubernetes 2022.12.26

k3d & nginx igress - 로컬 PC 에 쿠버네티스 설치

K3d 란? k3d는 도커에서 k3s (Rancher Lab의 최소 Kubernetes 배포) 를 실행하는 경량 래퍼 이다. k3d를 사용하면 예를 들어 Kubernetes의 로컬 개발을 위해 Docker에서 단일 및 다중 노드 k3s 클러스터 를 매우 쉽게 생성할 수 있다. k3d 설치후 docker ps 명령어로 확인해보면 k3d 가 설치된것을 확인할 수 있다. 특이점 k3d 는 default ingress-controller 가 traefik 으로 install 되는 것을 확인할 수 있다. K3d는 다음과 같은 호스트 이름을 제공합니다 >> host.k3d.internal 호스트에서 실행 중인 서비스에 액세스 K3d에서 실행하는 일부 워크로드는 Docker 호스트에서 이미 실행 중인 서비스에 액세스..

Kubernetes 2022.12.26

kind & nginx ingress - 로컬 PC 에 쿠버네티스 설치

Local 환경에서 K8s를 사용하기 위해서 다양한 방법을 사용 할 수 있다. 그중 본문에서는 Kind 설치에 대해 설명한다. Kind 란? Kind (Kubernetes in Docker)는 가용성이 높은 Kubernetes 클러스터를 설치하는 CNCF 인증 프로젝트이다. 이름에서 알 수 있듯이 kind는 노드라는 Docker 컨테이너에서 k8s 클러스터를 가동한다. 따라서 minikube 및 microk8s와 같은 VM 기반 Kubernetes에 비해 Kubernetes 설정이 더 빠르다고한다. 실행 환경 본문은 Local 환경에서 별도 VM 생성 없이 WSL 환경에서 테스트했습니다. (Window 10) PS C:\Users > wsl -l -v NAME STATE VERSION Ubuntu Run..

Kubernetes 2022.12.26