본문 바로가기

Cloud

DNS 공부 1 한참 쿠버네티스 네트워크쪽을 공부하는데 이게 무슨 소리인지 모를 단어들이 너무 많았다. DNS 서버는 이름 IP 로 바꿔주는 큰 테이블같은 것이라고만 알고 있었는데 조금 더 상세한 공부가 필요한 것 같아 정리한다. - 여러 A 값 : A는 주소를 뜻함. (Ipv6의 경우 AAAA 레코드) - DNS 레코드 : 도메인에 관한 설정을 하기 위해 사용되는 일련의 문자. 레코드 유형은 다양하게 존재한다. 레코드 명 설명 예시 A 레코드 가장 기본적인 DNS 레코드 IP 주소를 조회할 때 사용됨 CNAME 레코드 A 레코드에 대한 별칭을 정의 하위 도메인이 존재할 때 사용 CNAME 레코드가 다른 CNAME 레코드를 가리킬 수는 있으나 권장되지는 않음 MX 레코드 메일 교환 레코드 이메일은 SMTP에 따라 라우팅..
Selector가 없는 Service 1. Service는 Endpoints를 갖는다. [root@master ~]# kubectl get endpoints -n monitoring NAME ENDPOINTS AGE prometheus-k8s 10.244.104.226:9090,10.244.87.210:9090 119d [root@ymaster ~]# kubectl get svc -n monitoring prometheus-k8s NodePort 10.96.240.250 9090:31425/TCP 119d [root@ymaster ~]# kubectl get pods -n monitoring -o wide NAME READY STATUS RESTARTS AGE IP prometheus-k8s-0 3/3 Running 0 10h 10.244...
IPTABLES service iptables start iptables의 구문은 여러 부분으로 나뉘어지며 중요한 부분은 chain이다. chain은 패킷이 조작될 상태를 지정하며 사용법은 다음과 같다. iptables -A chain -j target -A 옵션은 기존 규칙에 또 다른 규칙을 추가하며, chain은 규칙에 사용될 chain의 이름이다. iptables에 내장된 3가지 chain은 [INPUT, OUTPUT, FORWARD]이다. 이 3가지 chain은 영구적이며 삭제가 불가능하다. -j target 옵션은 iptables에서 이 특정 규칙을 jump하도록 지시한다. jump는 [ACCEPT, DROP, REGECT]가 있다. CHAIN INPUT : 호스트 컴퓨터를 향한 모든 패킷 OUTPUT : 호스..
Kubernetes Service Option - 2 의욕도 안생기고 힘들지만 할 건 해야지... SessionAffinity (None, ClusterIP) SessionAffinity는 Kubernetes에서 제공하는 Sticky Session 기능이다. Sticky Session은 한 클라이언트의 요청을 같은 인스턴스로 접속할 수 있도록 세션을 유지해주는 기능인데, 해당 기능을 사용하지 않으면 세션을 유지해야하는 옵션이 생겼을 때 접속시마다 다른 인스턴스로 요청하여 문제가 될 수 있다. 그럴 때 서비스 SessionAffinity 옵션을 ClusterIP로 바꾸면 특정 클라이언트의 연결을 동일한 파드로 전달할 수 있다. 사용 예는 아래와 같이 SessionAffinity 옵션을 걸어주고, 걸맞는 상세값을 제공하면 된다. 얘는 iptables을 활용하여..
Kubernetes Service Option - 1 - 이 글은 CNI를 Calico를 사용하는 가정하에 작성되었습니다. 클라우드 전환을 하다보면 문제가 되는 부분 중 하나가 바로 네트워크이다. 레거시 코드들은 개발자들의 생각보다 종속성을 많이 가지고 있는데 자주 나를 힘들게 하는건 IP이다. 파드가 기동될 때 마다 변경되는 파드 아이피, SRC/DST의 관리 등... 머리아프게 하는 것들이 많다. 자주 사용하는 옵션들을 천천히 정리해보려고 한다. ExtrnalTrafficPolicy (Local/Cluster) 서비스 타입 중 NodePort와 LoadBalancer는 ExternalTrafficPolicy 옵션에서 Local/Cluster를 선택할 수 있다(기본값은 Cluster). 해당 타입은 src가 클러스터 IP로 찍히는데 access log를 ..
R Studio YAML (Deployment, Template) 노션에만 정리해두었는데, 블로그 관리 안한지 너무 오래되서 같이 기재한다. 1. Deployment kind: Deployment apiVersion: apps/v1 metadata: name: rstudio-deploy labels: app: rstudio spec: replicas: 1 selector: matchLabels: app: rstudio template: metadata: labels: app: rstudio spec: volumes: - name: rstudio persistentVolumeClaim: claimName: rstudio containers: - resources: {} name: rstudio env: - name: PASSWORD value: [password] - n..
쿠버네티스 인 액션 스터디 - 12장 책이 집에 있어서 원문 PDF로 공부공부... 12. Securing the Kubernetes API server - Understanding authentication - What ServiceAccounts are and why they're used - Understanding the role-based access control (RBAC) plugin - Using Roles and RoleBindings - Using ClusterRoles and ClusterRoleBindings - Understanding the default roles and bindings 12.1 Understanding authentication Kubernetes의 API 서버는 인증 플러그인을 사용하여 클라이..