# AKS

Kubernetes, Azure Kubernetes Service 도입하기 - 4
AKS에서 KEDA를 사용할 수 있는 방법은? 우선 KEDA가 뭔지 모르는 사람들은 전에 내가 쓴 글이 있으니 참고가 필요하면 갔다오자!! https://velog.io/@pwcasdf/Azure-Kubernetes-Service-KEDA-service-bus-%EA%B8%B0%EB%B0%98-hpa-%EA%B5%AC%EC%84%B1 Azure Kubernetes Service에서 KEDA를 사용하는 방법은 2가지로 나눠진다. AKS add on 사용하기 AKS 에 내가 직접 설치해서 사용하기 해보자!! 1. AKS add on 사용하기 [Microsoft docs 링크!](https://learn.microsoft.com/en-us/azure/aks/keda-about%3FW

Kubernetes, Key Vault 활용하기
Key Vault를 Kubernetes에서 왜 활용해? secret!? kubernetes에서는 secret이라는 object가 있다. 이름에서도 알 수 있듯이 비밀스러운 것들을 넣고 빼는 건데 이러한 사람들이 있을 수 있다. 내 yaml 파일이 어쩔 수 없이 여러 사람들과 공유되어 사용되고 있는데 이 secret 값들을 그 사람들이 보는게 싫다. base64 디코딩 하면 다 보이니 위험해 보인다. 그냥 진짜 비밀 스럽게 숨겨서 쓰고 싶다. >이러한 경우, key vault를 활용해 보는걸 추천한다. Key Vault를 활용하면 yaml 또는 application에 비밀번호 및 숨기고싶은 정보를 적지 않은채 pod에서 활용할 수 있다!! _**물론 cicd 과정에서 ci 때 갖은 수단과 방법을 가리지 않고 여러 정보들을 넣어줄 수 있다지만, 이번에는 쉽고 정상적인 접근으로 접근해보자!! 우리가 괴롭히지 않아도 devops 엔지니어들은

Kubernetes, Azure Kubernetes Service 도입하기 - 3
로깅을 하자! 운영을 하다보면 엔지니어라면 피해갈 수 없는 추리물이 있다. 바로 원인분석!! 범인잡기 범인잡기?! 세상에 완벽한 솔루션은 없다. 조금 바꿔말해 보자면, 계산기 수준의 간단함이 아니라면 결함 및 오류는 언제나 일어난다고 생각한다. 아니, 계산기 수준의 간단한 어플리케이션이라도 여러 문제로 인해 문제는 발생할 수 있다. 가만히 놔뒀는데도 불구하고, 운영 단계에서 문제가 일어날 수 있는 원인은 너무 다양하다. ex) 갑자기 업데이트가 되며 VM이 꺼지는 경우 클라우드 플랫폼 자체적인 문제로 안되는 경우 app 자체의 메모리 누수가 발생되어 oom이 난 경우 사용하는

[k8s]AKS Jenkins CICD 구축(4)
Intro AKS에 thanos와 prometheus, grafana를 사용하여 모니터링 시스템을 구축하였습니다. 이 내용에서 추가적으로 cicd를 구축해보는 것이 이번 내용입니다. 이전글과 연동하셔도 상관 없으며 따로 구축하셔도 무방한 내용입니다. Azure CLI에 대한 코드도 적어두었습니다. 해당 코드는 vscode에서 powershell로 Azure cli를 사용하고 있습니다. 사전 구축 내용 만약 이미 aks 리소스가 존재한다면 VM(ubuntu)만 한개 생성해주시면 됩니다. 가장 먼저 Azure cli를 사용하기 위하여 login을 합니다. 해당 ID에 여러개의 구독을 가지고 있거나 여러 테넌트에 등록된 계정이라면 구성을 원하는 구독을 세팅하는 작업이 필요
[AKS] Cloocus AKS 교육 관련 메모
Cloocus AKS 교육메모 Container의 강점 OverView Virtualiation VS Container Bare Metal -> Virtualiation -> Container Container 구성 요소 Cgroup & Namespace Cgroup 자원(memory, CPU I/O, Network, device)등을 제어함. 해당 기능을 활용해 특정 컨테이너 에서 사용할 수 있는 자원을 제한 할 수 있음 NameSpace 자원을 격리할 수 있음 서로 다른 그룹은 볼 수 없도록 분리됨. 방화벽 규칙 및 라우팅 테이블 등을 격리함 MicroServiceArchitecture(MSA) MicroService를 사용하는 이유 Mi
Kubernetes, Azure Kubernetes Service 도입하기 - 2
Azure Kubernetes Service, 생성 옵션!? 클라우드에서 리소스를 생성할 때, 정말 많은 옵션들을 볼 수 있다. Azure의 Kubernetes, AKS 또한 예외는 아니다. 특정 플랫폼을 도입하기로 하였으면, 생성할 때의 옵션들을 꼼꼼히 보는것은 필수이다. >생성할 때 대충대충 진행하면, 위와 같은 상황을 꽤 자주 겪게된다. 이번 시리즈는 현재 회사에서 진행하는 프로젝트 그 자체이기 때문에, 어떤 선택을 어떤 이유에서 하게 되었는지에 대해서도 공유를 하게 될 것 같다. 모든 플랫폼 도입의 시작점은 Access

Kubernetes, Azure Kubernetes Service 도입하기 - 1
누구에게 필요한 글일까? 나는 kubernetes 또는 AKS (Azure Kubernetes Service) 경험은 있지만, 처음 도입하려는 순간부터의 경험은 없었다 . 즉 내 솔루션을 위한 kubernetes 도입을 해본적이 없었다. 타 회사를 위한 구축만 하다보니 도입 초기부터 운영까지의 고려가 아닌 중간중간에 기술지원 혹은 결정되어진 부분들을 구축하는 쪽만 진행 해왔다. 아래와 같은 부분들에 대한 목마름이 있었다. kubernetes 클러스터 관련 고려 경험 (eg. 인증방식, control plane과의 네트워킹 등) kubernetes 로깅 시스템 관련 고려 경험 (eg. plg, elk, ef

[k8s]AKS 모니터링 서버 구축(3)
사전구축 이전 AKS front + back 서버 구축(2)을 마친 이후에 작업을 진행해도 되지만 굳이 안해도 상관없는 내용입니다. AKS 클러스터 생성과 노드 확인후 credentials을 얻은 후에 노드를 확인했다고 한다면 큰 문제 없이 진행될 것입니다. 현재 window환경에서 작업 중입니다. 구축 모니터링 시스템을 구축하기 앞서 먼저 helm을 설치해야 합니다. 윈도우 pc의 경우 helm을 설치하기 위해 패키지 매니저인 chocolatey를 설치한 이후 kubernetes-helm을 인스톨 하는 방식으로 진행합니다. 설치 완료후 choco를 입력했을 경우 아래와 같이 나오면 성공입니다. 만약 이상이 생긴다면 [chocolatey의 공식 홈페이지](https://docs.chocolatey.org/en-us

[k8s]AKS front + back 서버 구축(2)
사전 구축 AKS 클러스터 구축 - 이전 자료를 확인하여 주시기 바랍니다. 링크 frontend (react) - 저는 프론트 엔드로 react를 선택하였고 nginx를 이용할 예정입니다. github에 있는 crud를 간단하게 구축해놓은 소스를 이용하여 조금 수정하여 사용하였습니다. 출처는 링크를 참조해 주시기 바랍니다 backend server (go) - gin-gonic과 gorm을 이용한 백엔드 서버를 구축하여 crud api server를 구축하여 사용하였습니다. DB (Azure Database for mysql) 구축 가장 먼저 해야할 내용은 front와 back 서버를 docker image로 만드는 것입니다. 이를

[k8s] AKS 기본 구축(1)
k8s VS AKS AKS는 Azure kubernetes service의 약자로 managed Kubernetes입니다. 그렇다면 managed와 일반 쿠버네티스의 차이점이 무엇일까요? non-managed k8s는 기본적으로 사용자들이 직접 관리를 해야합니다. 서버를 생성하여 마스터 노드와 워커 노드를 구분하고 각각에 k8s 소프트웨어 패키지를 생성하여 연결하는 등 여러가지 작업을 진행해야 사용 가능한 k8s가 완성이 됩니다. 이전 쿠버네티스 테스트 환경 구축을 보시면 해야할 작업들이 생각보다 많다는 것을 알 수 있습니다. 또한 관리적인 측면을 보자면 만약 노드를 늘려야 할 경우가 발생할 수 있는데 자동화를 해놓았으면 다행
[AZURE AKS] access AKS cluster nodes
there are times we want to k8s computing nodes on AKS. follow below steps on azure powershell or azure cli get nodes access containers using kubectl debug we are inside a node! reference https://learn.microsoft.com/ko-kr/azure/aks/node-access
[AZURE AKS] AKS 클러스터 노드에 접속
AKS상의 k8s 노드에 들어가고 싶을 때가 있다. azure 파워쉘이나 azure cli 상에서 아래 스텝대로 해본다. 노드 이름 확인 kubectl debug 명령어로 권한있는 컨테이너 실행 및 연결 접속 성공 참조 https://learn.microsoft.com/ko-kr/azure/aks/node-access

AKS
🧁 들어가며.. 이번 포스트는 Azure 클라우드 상에서 Kubernetes 클러스터를 구축하고 관리하는 서비스인 AKS 에 대해서 다루어보겠습니다. 이전 포스트에서도 다루었던 것처럼 AWS에서는 유사한 서비스로 EKS가 존재합니다. 🍦 장점 먼저 간단하게 Cloud 상에서 클러스터를 구축하는 이유에 대해서 다루어 보겠습니다. 1. Master Node를 Azure 가 관리 쿠버네티스를 이용해 본 개발자들이 겪는 고통의 원인 중 하나가 Master Node를 관리하는 것이라고 할 수 있을 것입니다. AKS을 사용하면 Master Node를 Azure가 관리해주기에 개발자가 Worker Node 이용 및 관리에만 집중할 수 있습니다. 2. Node의 Scaling 자동화 가능 k8s에서는 Pod의 Scaling은 자동화가 가능하나, Node는 개발자가 직접 연결해주는 등 자동화가 되지 않습니다. 그러나 AKS를 이용하면 VM

20220530 필기노트
Chocolatey설치 K8s lens https://k8slens.dev/ GUI를 제공해줌 윈도우에 kubectl 설치 및 인증서 복사 Prometheus 설치 및 실행 
Azure Kubernetes Service, KEDA, service bus 기반 hpa 구성
이 글을 들어왔다는 뜻은, KEDA나 AKS + Service Bus와 같은, 흔치 않으며 고통 가득한 키워드로 들어왔을텐데, 지금까지 web을 헤메며 여기까지 다다른 당신에게 경의를 표한다. hpa란? 내가 잘 개발해놓은 서비스가, 실제 오픈하고 대박이 친다면? 너무 좋지만, 곧이어 이런 생각이 들 것이다. >트래픽... 버티겠지? 이 트래픽을 버티기 위해, 부하분산이라는 것을 하고, lb 뒤에 많은 서버들을 붙이는 작업을 우리는 여태까지 해왔다. 사람이 수작업으로 하기 불편하니, autoscaling 가능한 서비스들이 나왔고 인기를 끌었다. kubernetes에서도 마찬가지다. 서비스 뒤에 다수의 pod를 둘 수 있으며, 이를 사람이 수작업 할 수 없으니, hpa, horizontal pod autoscaling, 이 cpu나 memory와 같은 특정 m
Azure Kubernetes Service, application logging 뭘 써야할까? - 3
AKS node 안으로 왜 들아가나? 나는 어떤 부분을 파악할 때, 가능하다면 실제로 보는 것들을 선호한다. 고등학교 때, 잘 못하긴 했지만 물리에 큰 흥미를 느꼈던 것도 같은 이유다. >lab에서 중력 실험 후, 실제 실험 결과 기반으로 제출되야 했기에, 지구 중력이 20g로 lab report가 마무리 되었다는건 비밀 직접 해보면 신기하기도하고 재미도 있기에, AKS node 안으로 들어가서 직접 어떻게 돌아가나 확인해 보자!! >단지 재밌기 때문에 들어간다. AKS node 안 탐험하기 먼저 아래의 명령어를
Azure Kubernetes Service, application logging 뭘 써야할까? - 2
어떤 로그들이 저장될까? AKS에서 container 안에서 발생되는 로그들은 어떤 로그들을 가져오게 될까? 라는 부분이 가장 먼저 궁금해졌었다. 우선 결론부터 말하자면, container 안에서 발생되는 stdout, stderr 로그들이 AKS node에 저장이 되어진다. stdout, stderr 들은, 각 프레임워크들도 뱉어 내고, 우리가 짜는 코드들 또한 뱉어낼 수 있다. 간단한 예로, python의 경우, 5가지 레벨(DEBUG, INFO, WARNING, ERROR, CRITICAL)을 로그관련하여 제공하는데, default로는 WARNING 부터 stdout으로 나가게 된다. (default에서는 DEBUG나 INFO로 찍히는 부분은 stdout 스트림으로 나가지 않는다.) >_그럼 stdout, stderr로 각종 프레임워크들이나, 언어에서 뱉어내는건 알겠는데, stdou
Azure Kubernetes Service, application logging 뭘 써야할까? - 1
Kubernetes에서의 로깅이란? Kubernetes 환경에서 로깅이란 크게 2가지로 나눌 수 있다. 노드 및 클러스터의 cpu, memory, network와 같은 metric 로그 container 안에서 구동되는 application에 대한 로깅 먼저, 노드 및 클러스터 관련된 로깅은, 제공해주는 플랫폼들이 많고 잘 되어 있다. 특히 클라우드 환경에서 사용한다면, 손쉽게 적용 또한 가능하다. Azure monitor라는 서비스를 통해 손쉽게 등록하고, 각 노드들에 대한 세세한 정보도 얻을 수 있다. 다시 말해서 클라우드 환경에서 Kubernetes를 사용할 시, **노드 및 클러스터의 cpu, memory