반응형

쿠버네티스 13

Istio 설치

이번에는 Istio 설치를 해보겠습니다.Istio란?Istio는 서비스 메쉬(Service Mesh)로, 클라우드 네이티브 애플리케이션에서 마이크로서비스 간의 통신을 쉽게 관리할 수 있도록 돕는 오픈 소스 입니다. Istio는 주로 Kubernetes 환경에서 사용되며, 다음과 같은 기능을 제공합니다. 트래픽 관리: 마이크로서비스 간의 네트워크 트래픽을 제어하고 라우팅하는 기능을 제공합니다. 이를 통해 A/B 테스트, 카나리 배포, 서비스 간 로드 밸런싱 등을 쉽게 할 수 있습니다. 보안: 서비스 간 통신을 자동으로 암호화(TLS)하고, 인증 및 권한 부여를 관리합니다. 또한 서비스 간의 보안 정책을 중앙에서 관리할 수 있게 해줍니다. 관찰 가능성(Observability): 마이크로서비스 간의 트래픽에..

쿠버네티스 2024.09.27

쿠버네티스 대시보드 생성 및 접속

쿠버네티스 대시보드 생성# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml  그리고 저는 metallb를 사용하고 있어서 서비스 type을 LoadBalancer로 변경 하였습니다. # kubectl edit service -n kubernetes-dashboard kubernetes-dashboard  그리고 LoadBalancer의 IP로 접속을 하면 토큰, kubeconfig 방식 중 하나로 로그인 하도록 되어있습니다.저는 Token 방식으로 진행하였습니다.우선 ServiceAccount 부터 생성을 해줍니다.# vim serviceaccount.yamlap..

쿠버네티스 2024.08.06

쿠버네티스 클러스터 내 DNS 주소 변경

저 같은 경우 k8s 클러스터에서 ArgoCD를 설치하였는데,제가 생성한 GitLab Repository를 등록하는 데, Error가 나왔습니다.Error를 정리 해보면,CoreDNS에서 제가 생성한 GitLab의 도메인을 찾지 못하여 ArgoCD에서 Repository를 등록하지 못하는 에러가 나왔었습니다.그래서 CoreDNS의 ConfigMap을 수정하여 다음과 같은 에러를 해결했습니다.CoreDNS ConfigMap 수정# kubectl edit configmaps -n kube-system coredns 위 명령어를 입력 해주면 아래 이미지와 같이 나옵니다. 여기서 저는 forward . 부분에 제가 사용하는 DNS 서버의 IP를 입력 해주었더니만 ArgoCD에서 정상적으로 제가 생성한 GitLa..

쿠버네티스 2024.07.26

쿠버네티스 공부 1일차 (라이브니스 프로브, 데몬셋)

라이브니스 프로브(liveness probe)란?쿠버네티스에서 컨테이너가 살아 있는지, 죽어있는지 확인 할 수 있게 해준다.라이브니스 프로브에는 3가지 메커니즘이 존재합니다.HTTP GET 프로브, 지정한 IP 주소, 포트, 경로에 HTTP GET 요청을 통해 컨테이너의 상황을 확인 합니다.TCP 소켓 프로브, 컨테이너의 지정된 포트에 TCP 연결을 시도하여 컨테이너의 상황을 확인 합니다.Exec 프로브, 컨테이너 내의 임의의 명령을 실행하고 명령의 종료 상태 코드를 확인 하여 컨테이너의 상황을 확인 합니다.ex) HTTP GET 프로브 방식apiVersion: v1kind: Podmetadata: name: kubia-livenessspec: containers: - image: luksa/kub..

쿠버네티스 2024.07.18

쿠버네티스 네임스페이스 변경

쿠버네티스에서는 네임스페이스 별로 pod, service 등등 자원이 나뉘는데, 특정 네임스페이스에 있는 자원들을 조회하려면ex) # kubectl get pods -n test 위와 같이 네임스페이스를 명시해줘야한다. (기본적으로는 default 네임스페이스)뒤에 -n 옵션 후 네임스페이스를 명시하는 것이 귀찮다면, 기본적으로 default 네임스페이스를 다른 네임스페이스로 변경 할 수 있다.예를 들어 ansible-awx 라는 네임스페이스를 default 네임스페이스 대신 하고 싶다면,# kubectl config set-context --current --namespace ansible-awx 위와 같이 커맨드를 입력을 해주면 변경된다. 변경 후 확인 방법은, 아래의 커맨드를 입력해주면 된다.# k..

쿠버네티스 2024.06.27

Kubernetes 네임스페이스 별 자원할당

이번엔 네임스페이스 별로 자원할당량을 설정해주고 serviceaccount에해당 네임스페이스에 대한 권한만 부여하여 자원을 나눠서 사용해보도록 하겠습니다.1. Namespace 생성우선 Namespace를 생성 해줍니다.# kubectl create namespace ex) kubectl create namespace test2. Service Account 생성네임스페이스를 사용할 Service Account를 생성 해줍니다.# kubectl create serviceaccount -n ex) kubectl create serviceaccount test-sa -n test3. Role 정의Service Account에 넣어줄 권한을 정의해주는 Role을 생성 해줍니다.apiVersion: rbac...

쿠버네티스 2024.06.11

쿠버네티스 Metrics 설치

이번엔 쿠버네티스 클러스터에 Metrics 설치를 해보겠습니다.우선 githup에서 metrics-server 설치를 위한 코드를 받아오겠습니다. # git clone https://github.com/kubernetes-sigs/metrics-server.git kubelets에서 제공하는 인증서를 무시하기 위해서 --kubelet-insecure-tls 옵션을 넣어줍니다.# cd metrics-server/manifest/base# vim deployment.yaml  그리고 이제 yaml 파일을 사용해서 배포 해줍니다.위치는 /metrics-server/manifests/base# kubectl apply -k .  설치 완료 후 확인# kubectl top nodes

쿠버네티스 2024.06.10

쿠버네티스 클러스터에 Master, Worker 노드 추가

이번엔 쿠버네티스 클러스터에 Master, Worker 노드 추가해보도록 하겠습니다. Master와 Worker 노드를 추가하려면 token을 생성해주어야 합니다. 아래의 명령어를 통해 Master 노드에서 Token을 생성 할 수 있습니다. # kubeadm token create 아래 명령어로 생성된 토큰을 확인 할 수 있습니다. # kubeadm token list Master 노드 추가하는 방법 Master 노드를 추가하려면 certificate key를 생성 해줍니다. # kubeadm init phase upload-certs --upload-certs I0418 11:01:19.681646 532904 version.go:256] remote version is much newer: v1.3..

쿠버네티스 2024.04.18

MetalLB 사용해서 외부로 노출 시키기

바닐라 쿠버네티스에서 서비스를 외부로 노출시키는 방법으로 LoadBalancer 타입이 존재하는데, 일반적인 바닐라 쿠버네티스에서는 LoadBalancer 서비스를 사용할 수 없습니다. 때문에, MetalLB를 설치하여 외부로 서비스를 노출 시켜보도록 하겠습니다. MetalLB를 설치하는 방법은 크게 두 가지가 있습니다. 1) Kubernetes 매니페스트 파일 사용 2) Helm 패키지를 사용하여 설치 이번엔 1번 방법을 사용하여 설치를 해보도록 하겠습니다. MetalLB 설치 MetalLB 설치 방법은 공식 홈페이지에 모두 나와있습니다. (https://metallb.universe.tf/installation/) 우선 kube-proxy 설정을 변경 해줍니다. # kubectl edit config..

쿠버네티스 2024.04.15

쿠버네티스 클러스터 구조 알아보기

쿠버네티스 클러스터가 어떻게 구성되어 있는지 알아보겠습니다. 컨트롤 플레인 컨트롤 플레인은 클러스터를 제어하고 작동시킵니다. 또한 클러스터의 상태를 유지하고 제어하지만, 애플리케이션을 실행하지 않습니다. 구성 요소는 아래와 같습니다. API 서버: 사용자, 컨트롤 플레인 구성 요소와 통신을 담당한다. 스케줄러: 애플리케이션의 배포를 담당 ex) 워커 노드의 상태를 확인하여 파드를 할당 컨트롤러 매니저: 구성 요소 복제본, 워커 노드 추적, 노드 장애 처리 등과 같은 클러스터 단의 기능을 수행 ETCD: 클러스터 구성을 지속적으로 저장하는 분산 데이터 저장소 각 구성요소에 대해 조금 더 자세히 설명을 하면, ETCD의 기능 : API 서버가 다시 시작되거나 실패하더라도 쿠버네티스에서 생성하는 모든 오브젝트..

쿠버네티스 2024.04.10
반응형