분류 전체보기 126

[Kubernetes] AKS의 워커노드에 접속하기

docs.microsoft.com/ko-kr/azure/aks/ssh AKS(Azure Kubernetes Service) 클러스터 노드에 대한 SSH 연결 만들기 - Azure Kubernetes Service 문제 해결 및 유지 관리 작업은 AKS(Azure Kubernetes Service) 클러스터 노드를 사용하여 SSH 연결을 만드는 방법을 알아봅니다. docs.microsoft.com 실행환경 : Ubuntu 18.06 또는 Mac AKS를 구성하고, Pod를 배포한 상황 Azure에서 PaaS로 제공하는 쿠버네티스 서비스를 사용하면, Master Node는 Azure에서 관리하고, 사용자는 Worker Node만 관리할 수 있다. AKS를 만들면 아래와 같이 가상머신확장집합 이라는 것이 생겼..

DevOps/Azure 2021.02.22

[BOJ 백준] 2473번 : 세 용액(Python, 파이썬)

www.acmicpc.net/problem/2473 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 투 포인터를 활용해서 문제를 풀었다. 기존의 투 포인터와 다른 점은 확인해야 할 값이 1개 더 있는것인데, 이것은 추가적인 포인터를 1개 더 두어 해결하였다. 포인터가 1개 더 추가 되면서 포인터끼리 겹치는 경우가 발생할 수 있기 때문에 따로 체크를 해줘야 한다. 세 용액의 합이 0이 되는 경우는 여러개 있을 수 있고, 그 중 아무거나 출력하면 되기 때문에 세 지점에서의 값들의 합이 0 이..

[Kubernetes Study - 09] - Replication Controller, ReplicaSet, Replicas, Selector

Controller Controller의 기능 Auto Healing Pod가 죽었을 때, 이 Pod를 다른 Node위에 새로 만들어준다. Auto Scaling Pod의 리소스 상태가 limit가 되었을 때, Controller가 Pod를 하나 더 만들어서 리소스의 부하를 낮춰준다. Software Update 여러 Pod에 대한 버전을 업데이트 하는 경우, 한번에 업데이트 가능 업데이트 중 문제가 생기면 롤백도 가능 Job 일시적인 작업을 해야하는 경우 그 순간에만 Pod(Job)을 만들어서 작업을 하고 삭제를한다. 그 순간에만 일시적으로 리소스를 늘렸다가 삭제하기 때문에 효율적인 리소스 활용 가능 ReplicationController ReplicationController는 Deprecated 되..

DevOps/Kubernetes 2021.02.20

[BOJ 백준] 20168번 : 골목 대장 호석 - 기능성(Python, 파이썬)

www.acmicpc.net/problem/20168 20168번: 골목 대장 호석 - 기능성 첫 줄에 교차로 개수 N, 골목 개수 M, 시작 교차로 번호 A, 도착 교차로 번호 B, 가진 돈 C 가 공백으로 구분되어 주어진다. 이어서 M 개의 줄에 걸쳐서 각 골목이 잇는 교차로 2개의 번호와, 골목의 www.acmicpc.net 다익스트라 문제를 풀려고 했는데, 백트래킹으로 풀었다. 처음에는 문제의 설명이 조금 헷갈렸는데, 고려해야할 조건은 다음과 같았다. 가진 돈을 목적지까지 도착하기 전에 전부 사용하지 않기 목적지에 도착했다면 지금까지 지나온 노드 중 가장 비용이 큰 값이 어떤 것인가? 목적지에 도착하는 길이 2개 이상인 경우 가장 비용이 큰 값 중 최소가 정답 위의 조건들을 백트래킹에 맞게 풀어주..

[Kubernetes Study - 08] Namespace, ResourceQuota, LimitRange

쿠버네티스 클러스터 안에는 여러개의 네임스페이스를 만들 수 있다. 또한, 하나의 네임스페이스 안에는 여러개의 파드를 만들 수 있다. 각 파드들은 하나의 클러스터 내부에 있는 자원을 공유해서 사용한다. 이때 특정 파드에서 너무 많은 자원을 사용하면 다른 네임스페이스에 있는 파드들이 리소스를 사용하지 못하므로 이것을 방지하기 위해서 네임스페이스 마다 resource quota를 할당할 수 있다. 또한, LimitRange를 둬서 네임스페이스에 두는 Pod의 크기를 제한할 수 있다. Namespace 같은 네임스페이스 안에서 오브젝트 끼리의 이름은 겹칠 수 없다. Pod와 Service의 네임스페이스가 서로 다르면, Selector로 묶을 수 없다. 서로 다른 Namespace에서 통신이 가능하지만 통신을 막..

DevOps/Kubernetes 2021.02.12

[BOJ 백준] 1806번 : 부분 합(Python, 파이썬)

www.acmicpc.net/problem/18061806번: 부분합첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다.www.acmicpc.net 문제의 이름에서도 알 수 있듯 부분합을 활용하는 문제이다. 부분합이란 시작점과 끝점을 정해서 해당 구간 내에 있는 원소들의 합을 구하는 것이다. for i in range(1, n+1): prefix[i] = prefix[i-1] + _list[i-1] 이 문제는 굳이 부분 합을 사용하지 않고, 투 포인터로도 풀 수 있는 문제였다. 투 포인터 소스코드import sys n,s = map(int, inp..

[Kubernetes Study - 07] ConfigMap, Secret

ConfigMap, Secret 개발환경과 운영환경이 다르다면 이미지를 만들 때 들어가는 설정들이 조금씩 다른 경우가 있다. 예를 들어, 개발환경에서는 SSH 접속을 가능하게 하고, 접근 유저와 키 값을 세팅할 수 있다. 반면 운영 환경에서는 SSH 접속을 불가능하게 해야한다. Service의 이미지로 만들어서 배포한다고 하면 이 정보만 수정하기 위해 이미지를 운영환경과 개발환경에서 각각 2개를 만들어 하고, 이는 관리의 어려움과 번거로움이 생길 수 있다. 이러한 설정 정보들을 따로 관리해 주는 것이 ConfigMap과 Secret이다. 컨테이너를 만들 때 ENV값에 넣어준다. Secret은 Base64 인코딩을 해서 저장해야 하고, 이를 파드에 배포하면 알아서 디코딩 해준다. secret에 Base64..

DevOps/Kubernetes 2021.02.10

[Kubernetes Study - 06] Volume - emptyDir, hostPath, PV/PVC

emptyDir Pod내의 컨테이너들끼리 데이터를 공유하기 위해 볼륨을 사용 볼륨은 Pod내에 위치한다. 최초에 생성할 때는 볼륨이 비어있는 상태이다. Pod안에 볼륨이 생성되기 때문에, Pod가 사라질 때 같이 사라진다. hostPath 자신(Pod)이 올라가 있는 Node의 path를 볼륨으로 사용 개별 노드를 위한 파일들을 관리하는데 용이함 Node의 파일 시스템을 접근하는데 유용하다. ex) 노드의 로그 파일을 읽어서 수집하는 용도 Pod들이 죽어도 볼륨은 사라지지 않는다. 만약 Node가 2개 이상일 경우 Pod가 다른 Node에 재생성되면 기존 Node에 볼륨마운트를 할 수 없으므로 문제가 생긴다. hostPath에 정의된 path는 Pod가 생성되기 전에 만들어져 있어야 한다 단, type ..

DevOps/Kubernetes 2021.02.09