개발자의 기록장 블로그

만나서 반가워 !
이거 좋아해?

쿠버네티스 Service
·
DevOps/Kubernetes
쿠버네티스 ServiceK8S 클러스터 환경에서 동일한 서비스를 제공하는 POD 그룹에 단일 진입점을 만들기 위해 생성하는 리소스이다. 각 서비스에는 서비스가 존재하는 동안 절대로 변경되지 않는 IP주소:PORT 가 존재한다.클라이언트는 POD에 직접 연결하는 것이 아니라 서비스의 IP:PORT 로 연결을 시도하면 POD로 라우팅된다. 이로써 POD는 서비스에 종속되며, 클러스터 주변을 자유롭게 움직일 수 있다.POD들은 label selector 에 의해 관리되며 Round Robin 혹은 백분율의 Load Balancing 을 서비스가 수행한다.Cluster IP가장 기본 타입으로 클러스터 내부의 노드에서 접근 가능하다.Ingress를 통해 외부에서 내부로 들어오는 GateWay를 만들 것이기 때문에..
쿠버네티스 네트워크
·
DevOps/Kubernetes
쿠버네티스 네트워크Docker HostK8S NodeK8S Environment 다중 Node 환경에서, 만일 docker0 의 IP 가 동일하다면, ( Bridge network IP가 동일하다면 ) POD의 IP가 중복되는 상황이 발생한다. 이러한 상황을 막기 위해서는 K8S 클러스터 환경에서는 docker0가 아닌 cbr0 ( custom bridge ) 를 사용하며 IP를 다르게 해 POD의 IP 중복을 방지한다.
쿠버네티스 POD 배포
·
DevOps/Kubernetes
쿠버네티스 POD 배포쿠버네티스는 POD의 배포를 단일 단위로 하지 않고 Kubernetes Controller 라는 것으로 배치처리한다.Replication ControllerPOD의 개수를 보장한다.어떤 이유로든 POD가 Kill되면 재배포를 진행한다.하지만 Template (yml파일) 의 수정이 이미 배포된 POD들의 update를 보장하지 않는다.삭제kubectl delete rc --cascade=falseReplica SetReplication Controller의 새로운 버전이며 더욱 풍부한 label selector 를 제공한다.옵션In : 라벨의 값이 지정된 값 중 하나와 일치해야 한다.NotIn : 라벨의 값이 지정된 값과 일치해서는 안된다.Exists : pod에는 지정된 키가 있..
쿠버네티스 POD 관리
·
DevOps/Kubernetes
쿠버네티스 POD 관리POD란?K8S에서 배포의 단위가 되며, App Container들로 구성됨. POD란 컨테이너와 마찬가지로 독립된 프로세스 환경을 구성하는데 그렇기 때문에 POD 내부의 컨테이너들은 프로세스 자원을 공유할 수 있다.PAUSE 컨테이너POD를 생성할 때 PAUSE 컨테이너가 우선적으로 생성된다.PAUSE 컨테이너가 생성될 때 이 컨테이너에 네임스페이스가 할당되고, 이후 생성되는 APP Container가 이 네임스페이스를 공유하면서 POD 내부의 프로세스 자원을 공유할 수 있게 된다. 같은 네임스페이스를 공유하기 때문에 localhost로 통신이 가능하다.또한 PAUSE 컨테이너의 네임스페이스를 공유하기 때문에 PAUSE 컨테이너는 APP Container의 PID를 알고있다. 따라..
쿠버네티스 실습
·
DevOps/Kubernetes
실습 환경EC2 3대 - centos7VPC - defaultK8S - 1.23vdocker - latestEC2 구성centos7 이미지 파일로 t2.medium 으로 생성해준다.2코어 이상이 필요하므로 적절한 리소스를 사용하자2024년 6월 21일 부로 오류가 발생했다. 다른 버전을 사용하자 추후 각 ec2에 동일한 포트를 열어주기 위해 생성할 때 같은 보안그룹을 설정해준다.NACL과 보안그룹은 다른 영역의 내용이다. 서브넷 NACL을 개방하더라도 적용되지 않는다. ec2에 접근시 유저 이름을 centos 로 설정해야 정상적으로 접속된다.예를 들어ssh -i "key_file_name.pem" ec2-user@publicDomainName 이라면, ec2-user 를 centos 로 설정해야 정상적으..
쿠버네티스 개요
·
DevOps/Kubernetes
K8S 개요K8S 공식사이트 쿠버네티스는 컨테이너 기반 환경에서 서비스의 고가용성, 운영, 스케일아웃, 네트워크, 로드밸런싱을 쉽게 할 수 있도록 나온 오픈소스이다. 기업에서 쿠버네티스만을 쓰는 곳은 없고, 관리형 쿠버네티스인 EKS와 같은 서비스를 이용한다고 한다. 1.24v 이후부터 컨테이너엔진을 골라서 사용할 수 있는데, 그 이전 버전은 도커엔진을 사용하도록 하드코딩 돼있다. 따라서 실습 환경은 1.23v 을 사용할 것이다.K8S 구성VM 기반으로 클러스터를 구성할 것이며 Control Plane 1대, Worker Node 2대로 이루어져있다.클러스터의 각 노드들은 각자의 사설IP로 통신하며, TCP/IP 기반의 네트워크 통신을 한다.배포 단위K8S는 컨테이너 오케스트레이터로 배포의 단위가 컨테이..
AWS - VPC 설정
·
DevOps/AWS
VPC를 통해 AZ별로 서브넷 마스크를 나누어 VLan을 구성할 수 있다.인터넷 게이트웨이에 공개할 대역을 선택해 외부에서 접근 가능한 서비스와 내부에서 통신할 서비스들을 분리시켜 보안을 향상시킬 수 있다.VPC 설정AWS의 VPC 서비스로 이동하면 기본으로 설정된 VPC를 확인할 수 있다.우리는 VPC중 사용할 VPC를 선택할 수 있으므로 범위가 겹치더라도 문제가 생기지 않는다.VPC 생성사용할 VPC의 대역 CIDR 를 설정한다 생성이 완료되면 우리가 설정한 정보를 확인할 수 있다. 우리가 만든 VPC를 선택 후 작업을 클릭해 VPC 설정 편집을 한다.아래와 같이 DNS 설정을 모두 체크해준다. 서브넷 설정서브넷 생성VPC를 우리가 원하는 서브넷마스크로 사용 범위를 나누어주기 위해 서브넷을 생성해주어..
Github Authorization
·
DevOps/Git
로컬 환경, 원격 환경, 리눅스 컴퓨터 리소스 등 다양한 플랫폼에서 소스 코드 관리를 위한 도구로 깃을 사용한다.가끔씩 인증이 풀려서 github 인증이 풀리는 경우가 많은데 해결 법으로 SSH 와 Personal Access Token (Classic) 이 있다.SSH기존 SSH 키 확인새 SSH 키를 만들기 이전에 머신에 있는 기존 키를 확인한다.2022년 3월 이후로 DSA 키는 더이상 지원하지 않는다. RSA 키를 사용하자.ls -al ~/.ssh키가 존재한다면 해당 키의 id_rsa.pub 를 사용하거나 새로운 키를 생성한다.SSH 키 생성Ed25519 알고리즘 지원 시스템ssh-keygen -t ed25519 -C "your_email@example.com"미지원 레거시 시스템ssh-keyge..