Networking

hahic·2023년 1월 10일
1

Kubernetes/CKA

목록 보기
9/13
post-thumbnail

Explore Environment

ifconfig -a 명령어로 network를 확인할 수 있다


cni0: runtime interface
eth0: kubernetes interface

ip r 명령어로 기본 gateway 주소를 찾을 수 있다

nestat -natulp | grep XXX 명령어로 port를 찾을 수 있다

핵심 명령어

  • ifconfig -a
  • ip link
  • ip r
  • netstat -natnlp | grep kube-scheduler

CNI

interface plugin은 /opt/cni/bin에 저장되어 있다

kubernetes에서 사용하는 interface plugin의 구성 파일은 /etc/cni/net.d에서 확인할 수 있다

핵심 명령어

  • ps -aux | grep kubelet | grep --color container-runtime-endpoint
  • ls /opt/cni/bin/
  • ls /etc/cni/net.d/
  • cat /etc/cni/net.d/10-flannel.conflist

Deploy Network Solution

CNI 플러그인은 가상의 네트워크 환경을 구현하여 클러스터 내부에서 파드 간의 통신이 가능하게 해준다. CNI한 종류인 Weave를 설치하는 방법에 대해 알아본다.

CNI 이슈 관련 로그


해당 에러를 발견하면 CNI을 확인해봐야 한다

핵심 키워드

  • k apply -f weave/weave-daemonset-k8s.yaml

Reference

https://kubernetes.io/ko/docs/tasks/administer-cluster/network-policy-provider/weave-network-policy/ -> weave 설치 방법 - 공식 문서

Netwoking Weave

controlplane이 아닌 work node의 기본 게이트웨이를 확인하는 방법

  1. 해당 node에 pod를 게시한다

  2. 해당 pod에 접속해 ip route 명령어를 실행한다

Weave는 DeamonSet의 일종이다

각각의 Node에 Weave의 Pod가 하나씩 배치된다!

핵심 명령어

  • ls /etc/cni/net.d/
  • ls /opt/cni/bin/
  • ssh node01 ip link
  • k exec busybox -- ip route

Networking

Node의 Network 범위를 확인하는 방법

Pod의 Network 범위를 확인하는 방법

CNI의 일종인 Weave의 로그를 확인하여 찾을 수 있다

Service의 Network 범위를 확인하는 방법

/etc/kubernetes/manifest/kube-apiserver.yaml에서 확인할 수 있다

kube-proxy는 iptable의 일종이다

kube-proxy는 DeamonSet의 일종이다

CoreDNS in Kubernetes

CoreDNS는 Pod로 구성된다

CoreDNS Config file 위치는 Pod 세부사항에서 확인 할 수 있다

같은 Namespace에서 다른 Service에 접근하는 방법

  • web-service
  • web-service.default
  • web-service.default.svc
  • web-service.default.svc.cluster.local

다른 Namespace의 Service에 접근하는 방법

  • web-service.payroll
  • web-service.payroll.svc
  • web-service.payroll.svc.cluster.local

해당 pod에서 다른 pod 접근 가능한지 확인하는 방법

k exec hr -- nslookup mysql.payroll

핵심 명령어

  • k exec hr -- nslookup mysql.payroll

Ingress Network

  • Namespace: 동일한 Namespace의 Service는 생략해서 접근 가능
  • Default backend: 특정 Service 접근에 실패했을 경우, 접근할 Service 지정
  • Host: 특정 host에서 접근하는 것을 허용
  • Backends: 접근할 수 있는 Service를 명시

핵심 명령어

  • k get ingress
  • k get ingress -A
  • k describe ingress -n app-space ingress-wear-watch
  • k edit ingress -n app-space ingress-wear-watch
  • k get svc -A

Reference

https://kubernetes.io/docs/concepts/services-networking/ingress/

Ingress Network 2

Reference

https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllers/ -> Ingress Controller

profile
👩‍💻 Junior Backend Developer

0개의 댓글