DevOps
-
io.kubernetes.client.openapi.ApiException configmaps is forbiddenDevOps/Kubernetes 2024. 4. 8. 17:53
io.kubernetes.client.openapi.ApiException: Message: HTTP response code: 403 HTTP response body: { "kind":"Status", "apiVersion":"v1", "metadata":{}, "status":"Failure", "message":"configmaps is forbidden: User \"system:serviceaccount:default:default\" cannot list resource \"configmaps\" in API group \"\" in the namespace \"default\"", "reason":"Forbidden", "details":{"kind":"configmaps"}, "code"..
-
clusterRole, clusterRoleBindingDevOps/Kubernetes 2021. 10. 29. 08:59
롤과 롤바인딩은 네임스페이스가 지정된 리소스로, 하나의 네임스페이스상에 상주하며 해당 네임스페이스의 리소스에 적용된다는 것을 의미한다. 일반 롤은 롤이 위치하고 있는 동일한 네임스페이스의 리소스에만 액세스할 수 있다. 다른 네임스페이스의 리소스에 누군가가 액세스 할 수 있게 하려면 해당 네임스페이스마다 롤과 롤바인딩을 만들어야 한다. 클러스터 수준 리소스에 액세스 권한을 부여하려면 클러스터롤바인딩과 클러스터롤을 사용해야 한다. 예를 들어 어떤 리소스들은 전혀 네임스페이스를 지정하지 않는데 노드, 퍼시스턴트 볼륨 등이 있다. 클러스터 롤은 네임스페이스가 지정되지 않은 리소스나 리소스가 아닌 URL에 액세스를 허용하는 클러스터 수준의 리소스로 각 네임스페이스에 동일한 롤을 재정의할 필요 없이 개별 네임스페이..
-
AWS의 Cloud Front 란 ( CDN 서비스 )DevOps/AWS 2020. 9. 6. 23:24
CND이란? Cloud Front는 CDN (Contents Delivery Network)이다. 이미지나 동영상 같은 정적인 콘텐츠들을 서비스한다. 서버가 있는 데이터 센터에서 서비스를 하게 되면 네트워크 latency로 인해 성능이 저하가 된다. 따라서 전 세계의 여러 개의 데이터 센터에 서버를 넣고 ( edge Node, edge Server ) 클라이언트와 가까운 데이터 센터로부터 콘텐츠를 제공하는 서비스이다. 얼마나 많은 지역별 데이터 센터에 edge Node를 설치하고 서비스를 제공하느냐 혹은 각 edge Node의 네트워크 대역폭이나 용량 등은 충분한지에 따라 서비스의 품질을 결정하게 된다. 그 예로 Akamai와 Limelight 등의 업체가 있다. 아마존의 경우도 Cloud Front라는..
-
AWS의 Route 53 DNS 서비스DevOps/AWS 2020. 9. 4. 19:53
Route53 Route53는 AWS에서 제공하는 DNS 서비스이다. DNS란? DNS는 Domain Name(www.helloworld.com)을 IP 주소로 바꾸어 주는 일종의 DIrectionary 서비스이다. 이러한 맵핑 정보를 저장해 놓는 파일은 DNS Zone file이라고 한다. 이 서비스는 DNS 서버에 저장해놓은 파일을 기반으로 주소를 변환한다. 캐슁 DNS 서버의 특성 중에서 주의 깊게 봐야 하는 특성은 캐슁이다. 보통 DNS 서버는 클라이언트가 사용하는 로컬 네트워크에 있는 DNS를 사용하게 된다. 회사 네트워크라면 회사 내의 DNS 서버, 집과 모바일을 사용할 경우 사용할 경우 해당 통신사의 DNS 서버를 사용한다. 이 DNS 서버들은 look up을 요청한 목적 서비스 서버에 대한..
-
kubernetes Tutorials 4. 서비스를 사용해서 App을 공개하기DevOps/Kubernetes 2020. 5. 6. 02:29
지금까지 App은 컨테이너 안에서 돌며 굉장히 private 한 IP를 쓰고 네트워크 역시 isolated 된 상태였다. 따라서 밖에서 쉽게 접근할 수가 없었고 콘솔에다가 kubectl 프락시를 붙이고 그 프락시가 준 IP와 포트 뒤에다가 어떤 특정 API를 통해 POD이름을 주고 이를 통해 접속할 수 있었다. 학습목표 1. 쿠버네티스에서 말하는 서비스란? 2. 레이블과 레이블셀렉터 오브젝트들이 서비스와 어떻게 연관이 있는지 이해하기 3. 서비스를 사용해서 쿠버네티스 클러스터 밖으로 App을 노출시키기 Pods는 언젠가는 죽는다. Pods는 라이프사이클을 가진다고 한다. 어떤 워커 노드가 죽으면 그 노드에서 돌고있는 Pods 역시 사라지게 된다. 그렇게 되면 ReplicationController는 동적..
-
kubernetes Tutorials 3. Pods 와 NodesDevOps/Kubernetes 2020. 5. 1. 03:13
학습 목표 1. 쿠버네티스 Pods 가 무엇인지 2. 쿠버네티스 Nodes가 무엇인지 3. 배포한 App에 트러블 슈팅하는 방법 Kubernetes Pods 란? 앞 시간에 Deployment를 만들었고 쿠버네티스는 Pods를 만들어서 이 App 인스턴스를 호스팅 해주게 된다. 하나 또는 여러 App 컨테이너 그룹을 추상화 한 개념이 이 Pods이다. 도커 같은 컨테이너 뿐 아니라 그런 컨테이너들이 사용하는 리소스들 까지 통틀어서 Pods라는 개념이 되는 것이다. 리소스들에는 Shared storage, 볼륨, 네트워킹, Pods하나 당 IP address, 이미지 버전이나 컨테이너들이 사용하는 포트 등 이 있다. Pods는 App에 특화된 논리적인 호스트를 모델링한 것이다. 따라서 여러 다른 App 컨..
-
kubernetes Tutorials 2. kubectl을 사용해서 배포하기DevOps/Kubernetes 2020. 4. 27. 21:39
목표 : kubectl을 통해 App을 쿠버네티스에 배포해보자 쿠버네티스 배포 일단 동작하는 쿠버 네티스 클러스터가 있으면 컨테이너화 App을 그 위에다 배포할 수 있다. 그렇게 하려면 쿠버 네티스 배포 설정을 만들어야 한다. 배포 설정은 쿠버 네티스가 어떻게 그 App의 인스턴스들을 만들고 갱신해야 하는지를 알려주는 역할을 한다. 따라서 일단 Deployment를 만들면 쿠버네티스 마스터가 App의 인스턴스들을 각각의 노드에 스케쥴링을 하는 방식이다. App의 인스턴스가 만들어지면 쿠버네티스 Deployment 컨트롤러는 지속적으로 그 인스턴스를 모니터링한다. 만약 노 드가 다운되거나 삭제되면 컨트롤러가 다른 노드에다 배포하거나 하는 방식. 그렇게 함으로써 self-healing 방식을 제공 한다. 첫..