목록전체 글 (184)
후니의 IT인프라 사전
CNI - CNI란, Container Network Interface의 약자로 컨테이너 간의 네트워크를 정의하는 인터페이스를 말한다. - 기본적으로 Kubernetes에서 사용되는 CNI는 Calico, Flannel 등이 유명하고, AWS에서는 AWS VPC CNI라는 자체 CNI를 제공한다. - 현재까지는 KOPS에서는 POD 단위의 보안그룹 적용이 되지 않는다. (EKS는 가능) AWS VPC CNI 우리가 EKS 환경에서 실습을 하기 때문에 AWS VPC CNI에 대해서 조금 더 알아보자. AWS VPC CNI의 경우 파드의 IP 네트워크 대역이 해당 노드의 IP 대역과 같게 설정되어 직접 통신이 가능하다는 장점이 있다. 아래 그림에서 확인할 수 있듯 Calico에서는 node와 pod의 ip ..
1. kubectl 설치 https://kubernetes.io/ko/docs/tasks/tools/install-kubectl-linux/ 리눅스에 kubectl 설치 및 설정 시작하기 전에 클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 한다. 예를 들어, v1.26 클라이언트는 v1.25, v1.26, v1.27의 컨트롤 플레인과 연동될 수 있다. 호환되는 최신 버전 kubernetes.io curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" 2. helm 설치 https://helm.sh/docs/intro/insta..
쿠버네티스 간략 소개 Control Plane : 마스터노드라고도 하고, 쿠버네티스의 모든 리소스를 관리하고 통제하는 역할을 한다. Cloud Provider API : EKS와 같이 쿠버네티스 클러스터를 특정 클라우드 벤더사에서 직접 활용할 경우 Cloud Provider API를 활용한다. Node : 워커노드라고 하며, 실제 컨테이너가 동작되는 공간을 말한다. etcd : 클러스터 구성정보에 대한 메타데이터로 key:value형태의 저장소이다. kubelet : 쿠버네티스 데몬 중 하나로 모든 노드에 동작하며, api 통신과 데몬셋 등을 관리한다. KOPS란 무엇인가? Kops는 Kubernetes Operations의 약자로, 쿠버네티스 클러스터를 배포, 업그레이드 및 관리하는 도구입니다. Kop..
AWS Cli를 활용하기 위해서 설치하는 방법을 서술합니다. https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html 다양한 방법이 있으니 위 링크에 들어가서 설치를 하면되며, 저는 MAC OS에서 All User를 대상으로 하는 CLI 설치명령어를 사용하겠습니다. 설치 curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target / 해당 명령어는 curl을 통해서 pkg 파일을 다운받고, 자동으로 프로그램을 실행해 바이너리 등록까지 마쳐주는 명령어입니다. 설치 확인 설치가 완료되면..
현업에서 요즘 IntelliJ IDE를 정말 많이쓰더라구요. 저도 개발을 위해서 사용하려고 다운로드 받았습니다. 1. Jetbrains 홈페이지에 접속해 다운로드하여 실행합니다. https://www.jetbrains.com/idea/download/#section=mac Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains Download the latest version of IntelliJ IDEA for Windows, macOS or Linux. www.jetbrains.com Ultimate버전은 기업용으로 정말 많은 기능을 제공하지만, 주로 협업 및 고급기능들이고 단순히 개발하려면 Community 버전도 매우 좋습니다...
1. 기본 접속 명령 mysql -u 계정명 -p 2. 원격지 접속 명령 mysql -h 호스트 주소 -P 포트번호 -u 계정명 3. 원격지의 특정 DB테이블에 접속 mysql -h 호스트 주소 -P 포트번호 -u 계정명 -p 디비이름
결국 대학원을 갈까말까 하다가 준비를 시작한다. 기본적으로 국내 특수대학원을 생각했는데 학비에 비해 얻는 것이 없다고 생각이 많이 되었다. 또한 미국 대학 졸업을 통해서 추후 국내 외국계 기업에 이직할 수 있는 루트가 생길 수 있다는 생각도 있고 추후 여러가지 방면으로 도움이 많이 될 것으로 판단되어 조지아텍을 준비하게 되었다. 아래 내용을 참조해서 계속 알아보는 중인데 지금 당장 필요한 것을 적어본다. 일단 올해 9월 학기에 합격 여부를 떠나 지원이 가능한 상태로 만들고 지원하는게 목표이다. https://hyongdoc.tistory.com/445 https://tech-millennial.tistory.com/5 https://uzihoon.com/post/db726580-4524-11ed-8b0b..
CKAD도 취득했습니다. 원래 CKS를 먼저 따려고 했는데, 1회차 탈락의 고비가 있어서 ㅠㅠ먼저 CKAD 취득으로 변경했습니다. 전반적으로 확실히 deploy관련 문제가 제일 많았습니다. CKA를 취득하신 분들은 크게 무리없이 바로 취득할 수 있을 것 같습니다. 실질적인 공부시간은 3일 내외로 한 것 같네요. 전반적으로 나온 문제를 기억나는 것만 공유해보겠습니다.1. 시크릿을 생성해서 pod에 붙여야하며, 시크릿의 값을 가져올 수 있어야 합니다. 2. resource-request를 이용한 pod 리소스 제한 3. readiness 추가 4. service account 를 pod 에 추가 5. docker tar파일로 빌드하는 문제 6. depoly 버전업되어서 yaml 수정하기 7. deploy ..
보호되어 있는 글입니다.
테라폼은 tfstate 파일이라는 상태파일을 저장합니다. 사실상 이 파일이 테라폼이 자원을 관리하는 방식이고 테라폼을 실행할 때는 이 tfstate 파일을 현재 리소스와 비교해서 작업을 진행합니다. 그렇기 때문에 tfstate 파일에는 매우 중요한 정보들이 많이 있고, 이게 없어지거나 하나의 부분만 빠져도 사실상 리소스를 관리할 수 없게됩니다. 기본적인 저장위치는 local이지만, 테라폼에서는 원하는 지정 저장소에 tfstate파일을 저장할 수 있도록 하고 있습니다. 대표적인게 AWS S3입니다. S3를 백앤드로 쓰면 S3의 기능을 장점으로 활용할 수 있습니다. - AWS 리소스를 이용할 경우 (그 외에도) 중앙 저장소가 필요한데 S3를 통해서 중앙 저장소로 활용할 수 있다. - S3의 versionin..
이번 시간에는 Terraform을 통해서 NKS 클러스터를 구성해보도록 하겠습니다. 대략적인 구성은 아래와 같은 모습이고 NKS 서비스 자체가 managed master node이기 때문에 대부분의 클라우드 벤더사와 같이 kubernetes service 구성과 worker node pool을 별도로 구성하여 생성합니다. 1. bastion.tf 대부분 클러스터는 프라이빗 서브넷에 존재시키고 bastion에 kube-config정보를 등록하고 실행시키도록 구성하였습니다. bastion은 퍼블릭 서브넷에 존재하고, 접속을 위한 public IP를 받을 수 있도록 생성합니다. 그리고 login_key는 추후에 생성할 login pem키를 작성합니다. resource "ncloud_server" "bastio..
구조 파악 완성된 code는 github에서 확인할 수 있다. 사전 작업 이전글인 단일 웹서버 배포에서 구성했던 VPC, Subnet, ACG를 사용한다는 전제하에 작업을 진행합니다. 해당 리소스들이 규정되어있지 않다면 이전글을 참조해주기 바랍니다. Auto Scaling 구성 auto scaling은 기본적으로 launch configuration을 먼저 규정하여 해당 configuration의 이미지를 통해서 scaling 작업을 진행합니다. 따라서 autoscaling.tf 파일을 구성할 내용을 작성해보겠습니다. 1. launch_configuration 생성 resource "ncloud_launch_configuration" "lc" { name = "my-lc" server_image_prod..