반응형

Container Orchestration/Kubernetes 40

K8S 인증서 10년 만기 생성 방법

Overview 오늘은 k8s 인증서 10년 만기 생성 방법에 대해서 알아보려고 한다. 나의 k8s 버전은 1.16.8이다. 참고자료 아래의 github의 소스코드를 가지고 진행했습니다. https://github.com/yuyicai/update-kube-cert 해당 github를 보면, v1.9 이하인 경우와 v1.9이상인 경우에 대해서 전부 정리되어있다. 클러스터 버전이 v1.9 이하인 경우, etcd는 기본적으로 TLS 연결을 사용하지 않습니다. 따라서 마스터 노드의 인증서만 업데이트하면 됩니다. 1. 인증서 만료일 확인 $ sudo openssl x509 -in /etc/kubernetes/ssl/apiserver.crt -noout -text |grep Not Not Before: Sep 1..

kubectl 명령어 정리

kubectl version --short 버전 정보 > kubectl version --short Client Version: v1.16.6-beta.0 Server Version: v1.17.12 kubectl api-resources 쿠버네티스에서 사용가능한 오브젝트 리스트 > kubectl api-resources NAME SHORTNAMES APIGROUP NAMESPACED KIND bindings true Binding componentstatuses cs false ComponentStatus configmaps cm true ConfigMap endpoints ep true Endpoints events ev true Event limitranges limits true LimitRang..

Ingress(인그레스)

Oveview 오늘은 ingress에 대해서 공부해보려고 한다. 용어 이 가이드는 용어의 명확성을 위해 다음과 같이 정의한다. 노드(Node): 클러스터의 일부이며, 쿠버네티스에 속한 워커 머신. 클러스터(Cluster): 쿠버네티스에서 관리되는 컨테이너화 된 애플리케이션을 실행하는 노드 집합. 이 예시와 대부분의 일반적인 쿠버네티스 배포에서 클러스터에 속한 노드는 퍼블릭 인터넷의 일부가 아니다. 에지 라우터(Edge router): 클러스터에 방화벽 정책을 적용하는 라우터. 이것은 클라우드 공급자 또는 물리적 하드웨어의 일부에서 관리하는 게이트웨이일 수 있다. 클러스터 네트워크(Cluster network): 쿠버네티스 네트워킹 모델에 따라 클러스터 내부에서 통신을 용이하게 하는 논리적 또는 물리적 링..

Kubernetes Probe (Liveness, Readiness, Startup)

Overview 오늘은 쿠버네티스의 Probe라는 개념에 대해 정리해보고자한다. 예전에 사내 dev 클러스터 구축 시 probe 라는 개념이 yaml에 적혀있어 이것이 무엇인지 궁금해서 찾아보았다. Probe란? Probe는 컨테이너에서 kubelet에 의해 주기적으로 수행되는 진단이다. 이 Probe를 통해 쿠버네티스는 각 컨테이너의 상태를 주기적으로 체크한 후, 문제가 있는 컨테이너를 자동으로 재시작하거나 또는 문제가 있는 컨테이너를 서비스에서 제외할 수 있다. kubelet은 컨테이너의 상태를 진단하기 위해 핸들러를 호출하는데 핸들러는 수행하는 작업의 분류에 따라서 ExecAction, TCPSocketAction, HttpGetAction로 나뉜다. Handler 컨테이너의 상태를 진단하기 위해 ..

Kubernetes 어피니티

overview 쿠버네티스 클러스터의 어피니티를 사용해 쿠버네티스 파드를 할당하는 방법을 공부하려고 한다. 쿠버네티스에서는 사용자가 파드를 어떤 노드에 배포할 것인지 아래의 기능을 통해 설정할 수 있다. 노드 셀렉터(NodeSelector) 어피니티(Affinity) 노드 어피니티(Node Affinity) 파드 어피니티(Pod Affinity) 안티 어피니티(Anti Affinity) 테인트& 톨러레이션(Taint) 커든(Cordon) 드레인(Drain) 1. NodeSelector 파드의 .spec 필드에 노드셀렉터를 이용하여 어떤 노드에서 실행될지 설정한다. 가장 간단한 스케줄링 옵션임 Key-Value 쌍으로 설정한다. 우선 노드셀렉터를 적용하려면 원하는 노드의 노드레이블에 어떤 Key-Value..

Kubernetes 컨테이너 이미지 생성하기

Overview 컨테이너 이미지를 만들자. 쿠버네티스를 이용해 서비스를 하려면 컨테이너화된 앱(컨테이너 이미지)가 필요하다. 여기선 간단히 hello + 서버의 호스트네임을 출력하는 웹앱 컨테이너 이미지를 만들 것이다. 호스트네임을 출력하는 이유는 차후 로드밸런싱이 잘 되는지(컨테이너가 바뀌면서 응답하는 건지) 확인하기 위해 위와 같이 만들기로 하였다. 웹서버 : apache + CGI 언어 : python 로직 : hello + 서버의 hostname을 출력. 위와 같은 컨테이너 이미지를 만들자. Docker Docker CLI는 컨테이너 이미지를 만드는 기능을 지원한다. 우리가 사용하는 crictl은 컨테이너 이미지를 만드는 기능이 없다.. 결론은 도커가 설치된 서버가 필요하다. 빌드머신 도커를 설치..

Kubernetes 클러스터 구축하기(kubespray)

Overview Kubespray 도구를 사용하여 현 최신버전(2022-05-10 기준) Kubernetes Cluster를 구성해본다. 아래의 글을 참고하길 바란다. 2024.02.02 - [Container Orchestration/Kubernetes] - Kubernetes 클러스터 구축하기(kubespray 2024v.) Kubernetes 클러스터 구축하기(kubespray 2024v.) Overview Kubespary를 사용해서 Kubernetes를 설치해본다. 그리고 Worker Node를 한대 추가해 조인까지 진행해본다. Kubespray 설치 2024.01.22 기준이다. 시스템 구성 OS : Ubuntu 20.04 LTS(Focal) Cloud: Google Compute Engine..

Kubernetes 클러스터 구축하기(kubeadm)

Overview kubeadm 도구를 사용하여 현 최신버전 kubernetes cluster를 구성하자. 버전 OS : Debian 11.3 Bullseye kubernetes : v1.14.0 CRI(Container Runtime Interface) : containerd v1.2.5 CNI(Container Network Interface) : calico v3.5 서버구성 서버 유형 Hostname OS CPU 메모리 IP 계정 가상머신 k-master Debian Bullseye 4 Cores 4G 192.168.xxx.235 (/24) root, user 가상머신 k-node1 Debian Bullseye 4 Cores 4G 192.168.xxx.236 (/24) root, user 가상머신 ..

쿠버네티스 배포 도구 : Kubeadm vs Kubespray vs Kops

Overview 오늘은 쿠버네티스의 클러스터를 설정하는 도구인 Kubeadm 과 Kubespray 그리고 Kops 차이를 알아보고자 한다. 먼저, 많은 웹 사이트의 Article에서는, Kubeadm는 quick start를 위해서 사용하기 좋고, Kubespray는 production 레벨에서 적용할 수 있는 솔루션이라고 말하고 있다. 또한, 배포 프로세스를 용이하게 하기 위해 `Kops` , `Kubeadm` , `Kubespray` 또는 `Kubo` 와 같은 여러 도구 를 사용할 수 있다 . 차트는 Mermaid Live Editor를 활용해서 그렸다. Kubeadm vs Kubespray vs Kops Kops 핵심 Kubernetes 팀에서 유지 관리하는 kops의 가장 큰 장점은 향후 기본 설..

Kubernetes 개념과 Minikube 실습

1. Kubernetes의 개념과 특징, 그리고 아키텍처 1) 개념 Kubernetes는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼이다. ​ 2) 특징 Kubernetes는 `Deployment, StatefulSets, DaemonSet, Job, CronJob` 등 다양한 배포 방식을 지원한다. 그리고 다양한 웹 애플리케이션을 하나의 로드 밸런서로 서비스하기 위해 `Ingress` 기능을 제공한다. 또한, 부하에 따라 자동으로 서버를 늘리는 기능인 AutoScaling이 있고 IP를 할당 받아 LoadBalancer로 사용할 수 있다. 하나의 클러스터를 논리적으로 구분하여 사용할 수 있다. 하나의 클러스터에 다양한 프레임워크와 애플리케이션을 설치하기 때문에 기본외에 여러..

반응형