분류 전체보기(472)
-
백준 2004 조합 0의 개수
https://www.acmicpc.net/problem/2004 2004번: 조합 0의 개수 첫째 줄에 정수 n, m(0≤m≤n≤2,000,000,000, n!=0)이 들어온다. www.acmicpc.net 백준 2004 조합 0의 개수는 조합의 결과가 제일 뒤 0의 개수가 몇개가 나오는지 확인하는 문제이다. 1676번 팩토리얼의 0의 개수와 같듯이 2, 5의 등장횟수를 구한 뒤 적은 등장 횟수가 답이된다. 왜냐하면 2*5가 한개씩 있으면 10이되고 두개씩 있으면 100이되면서 뒤의 숫자들은 2와 5의 개수로 결졍된다. 조합은 아래와 같은 공식을 따른다. 그래서 우리는 n!, (n-r)!, r!에 5와 2가 몇번 등장해야하는지 확인해야한다. 예를 들어 25!이면 1 부터 25까지의 곱셈을 의미한다. 그..
2020.02.20 -
kubernetes - 인그레스(ingress)
ingress kubernetes에 특별한 요청이 올 때 어떻게 처리할 것인지 도와주는 기능을 합니다. 기능 1. 외부 요청의 라우팅: /apple, /apple/red 등과 같이 특정 경로로 들어온 요청을 어떠한 서비스로 전달하는 라우팅ㅇ 규칙을 설정할 수 있습니다. 2. 가상 호스트 기반의 요청 처리: 같은 IP에 대해 다른 도메인 이름으로 요청이 도착했을 때, 어떻게 처리할 것인지 정의할 수 있습니다. 3. SSL/TLS 보안 연결 처리: 여러 개의 서비스로 요청을 라우팅할 때 보안 연결을 위한 인증서를 쉽게 적용할 수 있습니다. 하지만 기존의 NodePart, LoadBalancer 등의 서비스로도 충분히 위기능을 이용할 수 있을 것 같은데 ingress는 왜 사용해야 할까요? 만약 위와 같이 i..
2020.02.19 -
kubernetes 리소스의 관리와 설정 - Configmap, Secret
애플리케이션을 만들면 초기 설정 값이 필요한 오브젝트들이 있을 것입니다. ex) DB, Nginx 등등 도커에서 이러한 설정 값을 넘겨 주는데 -e옵션을 사용하거나 Dokcerfile을 작성했습니다. 이러한 방법이 좋은 방법이 될 수 있지만 상황에 따라서는 나쁜 선택이 될 수 있습니다. 그래서 kubernetes에서는 yaml 파일과 설정값을 분리할 수 있는 configmap, secret이라는 오브젝트를 제공합니다. configmap은 설정 값을 secret은 노출되서는 안되는 값을 넣어 줄 때 사용합니다. configmap 사용해보기 configmap은 namespace에 속하기 떄문에 namespace별로 configmap이 존재합니다. kubectl create configmap kubectl c..
2020.02.19 -
kubernetes 리소스의 관리와 설정 - namespace
namespace 쿠버네티스에서는 오브젝트들을 논리적으로 구분지을 수 있는 namespace라는 기능을 제공하고 있습니다. 포드, 레플리카셋, 디플로이먼트, 서비스 등을 묶여 있는 하나의 가상 공간 또는 그룹이라고 이해하면 됩니다. 예를 들어 database기능을 제공하는 포드들 끼리는 database라고 묶으면 되고 테스트 코드를 위한 오브젝트는 testbed 등을 묶으면 공통적인 성질을 가지고 있는 오브젝트를 좀 더 손 쉽게 관리할 수 있습니다. 네임 스페이스 사용해보기 kubectl get namespace or ns 를 통해 현재 존재하는 namespace를 확인할 수 있습니다. 여러분이 특별한 네임 스페이스를 만들지 않아도 아래와 같은 네임 스페이스가 만들어져있습니다. kubectl get na..
2020.02.19 -
kubernetes started(5) 서비스(Service)
이전에 오브젝트들인 pod, raplicaset, deployment를 만들면 외부에서 접근할 수 없었습니다. 게다가 도커 컨테이너와 마찬가지로 포드의 IP는 영속적이지 않아 계속해서 변할 수 있습니다. 그리고 이전의 yaml 파일을 확인해보면 containerPort를 볼 수 있는데 그렇다고 해서 이 포트를 통해서 외부에서 접근할 수 없습니다. spec: containers: - name: nginx image: nginx:1.10 ports: - containerPort: 80 그래서 디플로이먼트의 포드들이 외부에서 접근하려면 서비스라고 불리는 별도의 쿠버네티스 오브젝트를 생성해야합니다. 우리는 서비스를 통해 아래와 같은 기능을 사용할 수 있습니다. 1. 여러 개의 포드에 쉽게 접근할 수 있도록 고유..
2020.02.15 -
kubernetes started(4) 디플로이먼트(Deployment)
Deployment는 reflica의 상위 오브젝트입니다. 보통 디플로이먼트가 생성되면 해당 디플로이먼트에 대응하는 레플리카셋도 함께 생성됩니다. 따라서 디플로이먼트를 사용하면 포드와 레플리카셋을 직접 생성할 필요가 없습니다. deployment yaml 생성 apiVersion: apps/v1 kind: Deployment metadata: name: replicaset-nginx spec: replicas: 4 selector: matchLabels: app: my-nginx template: metadata: name: my-nginx-pod labels: app: my-nginx spec: containers: - name: nginx image: nginx:1.10 ports: - contain..
2020.02.15