목록Study (268)
전공공부
설명 자료형 때문에 꽤나 애 먹었던 문제다. long 캐스팅이 잘 안 되어서 오래걸렸다. Prim 알고리즘을 사용했고 입력으로 들어오는 값은 거리를 구하는 것에 사용하고 list의 인덱스는 거리가 입력으로 들어오는 순서에 따라서 지정을 하고 이에 따른 거리값을 weight 값으로 넣었다. 코드 package MST; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.PriorityQueue; import java.util.StringTokenizer; public class BOJ_1774 { static class D..
이전 내용에서는 사용자를 네임스페이스 리소스(Pod,Deployments,...)에 인증하는 방법을 알아보았습니다. 우리는 그것에 Roles 및 RoleBindings을 사용했구요. 그러나, 사용자에게 Node 또는 PV와 같은 클러스터 범위의 리소스에 권한을 부여하려면 어떻게 해야 할까요? 해결법은 Cluster Roles 및 Cluster Role Bindings을 쓰면 됩니다. 클러스터 롤 (Cluster Roles) 클러스터 롤은 롤과 매우 유사하지만 클러스터 범위의 리소스를 위한 것입니다. 예를 들어 클러스터 관리자 롤을 만들어 클러스터 관리자에게 클러스터 내의 노드를 보거나 만들거나 삭제할 수 있는 권한을 부여할 수 있습니다. 마찬가지로 스토리지 관리자 롤을 만들어 스토리지 관리자에게 PV, ..
우리는 전에 ABAC 방식이나 Node 방식등을 알아 봤습니다. 그때, 저희는 Role에 따라서 주는것이 좋은 걸 알았죠. 그리고, core 그룹과 named API 그룹에 대해서 알아봤습니다. 아래와 같이 설정을 하고 Role을 아래와 같이 만들 수 있습니다. 이때, 이렇게 만들어지면 pods 리소스에 대해서는 get 요청 및 list,create,update,delete의 요청이 가능합니다. 또한, 이후에 아래 명령어로 Role 개채 생성 한 후 Role을 각 유저에 바인딩 해줍시다. RoleBinding apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: developer rules: - apiG..
설명 프림 알고리즘을 활용하여 인접 행렬을 인접 리스트 형식으로 받아서 처리했다. 코드 package MST; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.PriorityQueue; import java.util.StringTokenizer; public class BOJ_16398 { static class Data implements Comparable { int end; int weight; public Data(int end, int weight) { this.end = end; this.weigh..
쿠버네티스에서 권한 부여는 어떻게 이루어 질 수 있는지 알아봅시다. ABAC - 특성 베이스 각 특성에 맞는 권한을 일일이 부여해야 하고 이는 Kube API 서버를 다시 시작하게 끔한다. 그런데 이는 매우 비효율적인 방법이다. 개발자 한 명이 추가 될 때마다 그에 맞는 특성을 개발자 1에게 모두 직접 부여하고 API SERVER를 껐다 키는게 정상은 아니니 말이다. RBAC - Rule 베이스 개발자는 개발자 권한을 부여한다. 보안 담당자는 보안 담당 권한을 부여한다. 즉, 자신의 권한에 맞는 권한 부여 셋팅을 미리 내려주고 이는 API SERVER가 읽어서 바로 적용 될 수 있게 한다. 일반적인 방법이다. Authorization Mode 인증에는 모드가 존재한다. 아래는 모드의 종류임 NODE는 노..

쿠버네티스의 API에 대해서 자세히 알아 봅시다. 클러스터 상태에 대해서 알아보는 API에 대해서 집중적으로 알아봅시다. 아래는 쿠버네티스의 코어 API 입니다. 1. API Groups named API의 경우에는 좀 더 세부 디테일 작업과 Resource의 액션모음을 가지며 위 아래 API 서비스는 모두 API 서버에 포트 6443으로 액세스하면 사용 가능한 API 그룹이 표시되며 명명된 API 그룹 내에서 지원되는 모든 그룹이 반환된다. 하지만, curl을 사용해서 직접 보려면 아래와 같은 명령어를 사용하여야 한다. 보면 알겠지만 굉장히 복잡하고 힘들다 이런 과정이 복잡하기 때문에 개발된 것이 kubectl proxy이다. # 예시: 현재 컨텍스트를 사용하여 pod 목록을 조회하는 명령 curl -..
설명 문제 조건을 요약하면 최소가 되는 두 동내의 연결 길의 합을 구하는 것인데 우선 처음 시작이 한 동내에서 두 동내로 끊는것이다. 그렇기 때문에, MST로 모두 연결하고 이때 최대의 값을 가지는 간선을 제외 시켜 버리면 최소합으로 갈 수 있는 두 동내의 연결 길을 만들 수 있다. 코드 package MST; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.PriorityQueue; import java.util.StringTokenizer; /** * MST 활용 문제 * 도시 분할 계획 * * 두 동내의..
CA 설정이 모두 끝났다면 kube - apiserver에 요청 할 때마다 원래는 -- ca.crt 등의 요청을 기입하는 것을 알고 있을 것이다. 그러나, 우리는 절대 이런식으로 쓰지 않는다. kubectl get pod를 쓰지 kubectl get pod --ca.crt=/kube/... 이런식으로 다 기입 하지 않지 않는가? 그래서, 이를 간단히 해결 해 줄 방법책을 공유한다. apiVersion: v1 kind: Config current-context: my-cluster-context #별도 설정이 없다면 해당 context 셋팅을 기본으로 쓴다는 것이다. clusters: - name: my-cluster cluster: server: https://cluster-api-server-url c..