Kans

Monitoring CoreDNS in EKS with Grafana Cloud

  • kkumtree

2024-10-30T23:44:01+09:00

Grafana Cloud ์ฒซ ์‚ฌ์šฉ๊ธฐ

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์ฃผ์ฐจ๋Š” ์‹ค๊ฐ์ด ์•„์ง ์•ˆ๋‚˜๋Š”๋ฐ, ์Šคํ„ฐ๋”” ๋งˆ์ง€๋ง‰ ์ฃผ์ฐจ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ๋ถ„์ด ์ž˜ ์•Œ๊ณ , ๋งค์šฐ ์ข‹์•„ํ•˜๋Š” EKS๋ฅผ ํ†ตํ•ด, CoreDNS ์ด์Šˆ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” Hands-on์„ ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผํ•ด๋ณด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ Blog๋ฅผ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผํ•ด๋ณผ ๊ฒ๋‹ˆ๋‹ค.

0. EKS Cluster ์ƒ์„ฑ

์Šคํ„ฐ๋””์—์„œ ์ œ๊ณต๋œ CloudFormation์„ ํ†ตํ•ด EKS Cluster๋ฅผ ์ƒ์„ฑํ•ด๋ณผ๊นŒํ•ฉ๋‹ˆ๋‹ค.
eksctl์ด ์–ธ๊ธ‰๋˜์–ด ์žˆ์–ด์„œ ์™ ์ง€… ๋‚˜์ค‘์— ๋กค๋ฐฑํ•˜๊ณ  ํƒœ์ดˆ๋งˆ์„๋ถ€ํ„ฐ eksctl ๊ธฐ๋ฐ˜ CloudFormation ๋ฐฐํฌ๋ฅผ ํ•  ๊ฒƒ ๊ฐ™์€ ๋ถˆ์•ˆํ•จ์ด ์žˆ์ง€๋งŒ ํ•ด๋ณด์ฃ (?).

Kubernetes Service(5): Cillium Quick-start w/Hubble UI

  • kkumtree

2024-10-26T01:35:59+09:00

๊ทธ๋Ÿผ ๋งค๋ฒˆ ์‹คํŒจ๋งŒ ํ–ˆ๋˜ Cilium ๋ฐฐํฌ๋ฅผ ํ•œ๋ฒˆ ํ•ด๋ณผ๊นŒ์š”?

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. CSP VM ๊ณจ๋ผ๋ณด๊ธฐ

์ด๋ ‡๊ฒŒ ์“ด ์ด์œ ๋Š” ๊ฒฐ๊ตญ ๋„คํŠธ์›Œํฌ๋ฅผ ์ž˜ ์•Œ์•„์•ผํ•˜๋Š”๋ฐ,
์ž‘๋…„์— ํ•  ๋•Œ๋Š” ๊ทธ๋Ÿฐ๊ฑฐ ์ƒ๊ฐ๋„ ์•ˆํ•˜๊ณ  ๊ทธ๋ƒฅ ์˜ฌ๋ ค๋ณด๋ ค ํ–ˆ์œผ๋‹ˆ ๋‹น์—ฐํžˆ ์•ˆ ๋Œ์•„๊ฐ€๊ฒ ์ฃ ?

๊ทธ๋ƒฅ ๊ณฐ๊ณฐํžˆ ์˜ค๋ฆฌduckduckgo๋ž‘ ํˆฌ๋‹ฅ๊ฑฐ๋ฆฌ๋‹ค๋ณด๋‹ˆ, ๋น„๋ก ์—ฐ์‹์ด ๋˜๊ธด ํ–ˆ์ง€๋งŒ
ํด๋ฆญ์„ ์•ˆํ•˜๊ณ ๋Š” ๋ชป๋ฐฐ๊ธธ ์œ„์˜ ๋ธ”๋กœ๊ทธ ์ œ๋ชฉ์ด ๋ˆˆ์— ๋„์˜€์Šต๋‹ˆ๋‹ค.

Why eBPF?

  • kkumtree

2024-10-21T19:47:33+09:00

๊ณ ์ณ์•ผํ•  ๋ถ€๋ถ„์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋‚˜์ค‘์— ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ ๊ธ€์„ ์ž‘์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์–ด๋А๋ง ์ด๋ฒˆ ์Šคํ„ฐ๋””๋„ ๋Œ€๋ง์˜ Cilium์„ ๋‹ค๋ฃจ๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
Cilium์— ์ด๋ ‡๊ฒŒ๋„ (์ €๋ฅผ ํฌํ•จํ•œ) ๋ชจ?๋‘๊ฐ€ ์—ด๊ด‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์ „์—
๊ทผ๊ฐ„์ด ๋˜๋Š” eBPF๋ฅผ ๋จผ์ € ๊ฐ€๋ณ๊ฒŒ ์•Œ์•„๋ณด๊ณ  ๊ฐ€๋ คํ•ฉ๋‹ˆ๋‹ค.
์ด ๋•Œ๋Š” ์„ค๋งˆ ํ–ˆ์ง€๋งŒ, ์—ญ์‹œ๋‚˜ ์Šค๋ถˆ์žฌ ์—”๋”ฉ์ด์—ˆ๋‹ค

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. Linux Network Stack

์Šคํ„ฐ๋”” 1์ฃผ์ฐจ์˜ Jenkins ์ปจํ…Œ์ด๋„ˆ์—์„œ Host์˜ Docker ๋ฐ๋ชฌ ์‚ฌ์šฉํ•˜๊ธฐ์—์„œ ๊ฐ€๋ณ๊ฒŒ ๋ง›์„ ๋ณด๊ณ  ๋„๋ง์น˜๊ธฐ ๋ฐ”๋นด์ง€๋งŒ, ์—ฌํŠผ ์•„๋ž˜์˜ ์‚ฌํ•ญ์€ ์Šค์ณ์ง€๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค.

Kubernetes Service(4): envoy config

  • kkumtree

2024-10-19T16:59:16+09:00

์ •์ /๋™์  ์„ค์ •์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.
traefik์„ ๋ง›๋ณผ๋•Œ๋Š”, ํ˜ธ๋˜๊ฒŒ ๋ฐ์ธ ๋ถ€๋ถ„์ธ๋ฐ envoy๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๋ช…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. Static Configuration

์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • static_resources
    • listeners
    • clusters

(a) static_resources

envoy์˜ ์‹œ์ž‘๊ณผ ํ•จ๊ป˜, ์ •์ ์œผ๋กœ ์„ค์ •๋˜๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ envoy-demo.yaml ํŒŒ์ผ์„ ์—ด์–ด๋ณด๋ฉด ์ตœ์ƒ๋‹จ์— static_resources์ด ์„ ์–ธ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

static_resources:

  listeners:

(b) listeners

envoy-demo.yaml ํŒŒ์ผ ๊ธฐ์ค€,

  • socket_address: ๋ฆฌ์Šค๋„ˆ๋Š” ํฌํŠธ 10000์—์„œ ์ˆ˜์‹ ํ•˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • route_config: ๋ชจ๋“  ๊ฒฝ๋กœ์— ๋Œ€ํ•ด service_envoyproxy_io ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
# cat envoy-demo.yaml | grep -A 30 -B 2 listeners
static_resources:

  listeners:
  - name: listener_0
    address:
      socket_address:
        address: 0.0.0.0
        port_value: 10000
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  host_rewrite_literal: www.envoyproxy.io
                  cluster: service_envoyproxy_io

(c) clusters

envoy-demo.yaml ํŒŒ์ผ ๊ธฐ์ค€,

Kubernetes Service(4): envoy overview

  • kkumtree

2024-10-15T10:16:38+09:00

๋”ฐ๋กœ ์Šฅ ์ฐพ์•„๋ณด๋‹ˆ, envoy๋Š” Micro Service Architecture ๋“ฑ ๊ตฌํ˜„๋œ ๋‹จ์œ„ ๊ธฐ๋Šฅ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ L7 Proxy ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
Docker Compose ์ •๋„๋‚˜ ์ผ๋ฐ˜ ์„œ๋น„์Šค์—์„œ๋Š” ๊ตณ์ด ํ•„์š”ํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ, Service Mesh ํ™˜๊ฒฝ์—์„œ๋Š” ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„ ํ›์–ด๋ด…๋‹ˆ๋‹ค.

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. Envoy Installation

wget -O- https://apt.envoyproxy.io/signing.key | sudo gpg --dearmor -o /etc/apt/keyrings/envoy-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/envoy-keyring.gpg] https://apt.envoyproxy.io jammy main" | sudo tee /etc/apt/sources.list.d/envoy.list
sudo apt-get update
sudo apt-get install envoy
envoy --version

ํ•™์Šตํ™˜๊ฒฝ์€ root๋กœ ์ ‘์†๋˜์–ด ์žˆ๊ธฐ์— sudo๋Š” ์“ฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Kubernetes Service(3): Ingress(ingress-nginx) w/k3s

  • kkumtree

2024-10-10T22:12:57+09:00

์ง€๋‚œ ํฌ์ŠคํŒ…, Kubernetes Service(2): LoadBalancer(MetalLB)์— ์ด์–ด Ingress Type์„ ๊ฐ€๋ณ๊ฒŒ ์‚ดํŽด๋ณด๊ณ , Ingress-Nginx๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋ถ™์—ฌ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. Ingress Type

์ด์ œ, ์‹ ๊ทœ ๊ธฐ๋Šฅ(New feature)์€ Gateway API์— ์ถ”๊ฐ€๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์šฐ์„ , Kubernetes๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜๊ฐ€,

  • Ingress Type ๊ณผ LoadBalancer Type์˜ ๋ช…ํ™•ํ•œ ์ฐจ์ด๊ฐ€ ๋ญ˜๊นŒ...?
    ๋ผ๋Š” ์ ์ด๋ผ๊ณ  ๋ด…๋‹ˆ๋‹ค.

๋ฌผ๋ก , ๊ทธ๊ฑฐ ์™ธ์—๋„ k8s์—๋Š” ์•Œ์ญ๋‹ฌ์ญํ•œ ๊ฒƒ๋“ค์ด ์•„-์ฃผ ๋งŽ์ง€๋งŒ์š”.

์นœ์ ˆํ•œ Docs์— ๋”ฐ๋ฅด๋ฉด,
ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€ ์„œ๋น„์Šค์— ๋Œ€ํ•œ HTTP ๋ฐ HTTPS ๋ผ์šฐํŒ…์„ ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes Service(2): LoadBalancer(MetalLB)

  • kkumtree

2024-10-02T12:54:17+09:00

์ง€๋‚œ ํฌ์ŠคํŒ…, Kubernetes Service(1): ClusterIP/NodePort์— ์ด์–ด LoadBalancer Type์„ ๊ฐ€๋ณ๊ฒŒ ์‚ดํŽด๋ณด๊ณ , MetalLB๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋ถ™์—ฌ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. LoadBalancer Type

Service(1)์—์„œ ์–ธ๊ธ‰๋œ ๋ถ€๋ถ„์€ ๊ฑฐ๋‘์ ˆ๋ฏธํ•˜๊ณ , ์ถ”๊ฐ€๋กœ ์ ์„ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด, ์•„๋ž˜ ํ•œ ์ค„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

You can define a LoadBalancer Service by disabling the load balancer NodePort allocation.

๊ธ€์ž ๊ทธ๋Œ€๋กœ LB์˜ NodePort ํ• ๋‹น์„ ๋น„ํ™œ์„ฑํ•˜์—ฌ, LoadBalancer Service๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Disabling load balancer NodePort allocation ๋ฌธ์„œ๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ,
v1.24๋ถ€ํ„ฐ Stable ์ƒํƒœ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

iptables monitoring with Grafana (Not Completed)

  • kkumtree

2024-09-29T13:35:13+09:00

iptables๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ Grafana๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

0. ํ™˜๊ฒฝ ๊ตฌ์„ฑ (kind)

์ž‘์„ฑ์‹œ๊ฐ„ ์ด์Šˆ๋กœ featureGates, ConfigPatches, networking ์„ค์ • ์„ค๋ช…์€ ์Šคํ‚ต…ํ•ฉ๋‹ˆ๋‹ค.

a. 1 Master, 3 Slave ํ™˜๊ฒฝ ๊ตฌ์„ฑ

cat <<EOT> kind-svc-1w.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
featureGates:
  "InPlacePodVerticalScaling": true
  "MultiCIDRServiceAllocator": true
nodes:
- role: control-plane
  labels:
    mynode: control-plane
    topology.kubernetes.io/zone: ap-northeast-2a
  extraPortMappings:
  - containerPort: 30000
    hostPort: 30000
  - containerPort: 30001
    hostPort: 30001
  - containerPort: 30002
    hostPort: 30002
  kubeadmConfigPatches:
  - |
    kind: ClusterConfiguration
    apiServer:
      extraArgs:
        runtime-config: api/all=true
    controllerManager:
      extraArgs:
        bind-address: 0.0.0.0
    etcd:
      local:
        extraArgs:
          listen-metrics-urls: http://0.0.0.0:2381
    scheduler:
      extraArgs:
        bind-address: 0.0.0.0
  - |
    kind: KubeProxyConfiguration
    metricsBindAddress: 0.0.0.0
- role: worker
  labels:
    mynode: worker1
    topology.kubernetes.io/zone: ap-northeast-2a
- role: worker
  labels:
    mynode: worker2
    topology.kubernetes.io/zone: ap-northeast-2b
- role: worker
  labels:
    mynode: worker3
    topology.kubernetes.io/zone: ap-northeast-2c
networking:
  podSubnet: 10.10.0.0/16
  serviceSubnet: 10.200.1.0/24
EOT

kind create cluster --config kind-svc-1w.yaml --name myk8s --image kindest/node:v1.31.0

b. ๊ธฐ๋ณธ ํˆด ์„ค์น˜

docker exec -it myk8s-control-plane sh -c 'apt update && apt install tree psmisc lsof wget bsdmainutils bridge-utils net-tools ipset ipvsadm nfacct tcpdump ngrep iputils-ping arping git vim arp-scan -y'

1. prometheus stack ์„ค์น˜ (helm)

a. repository ์ถ”๊ฐ€ ๋ฐ ๊ตฌ์„ฑ

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

cat <<EOT > monitor-values.yaml
prometheus:
  prometheusSpec:
    podMonitorSelectorNilUsesHelmValues: false
    serviceMonitorSelectorNilUsesHelmValues: false
    nodeSelector:
      mynode: control-plane
    tolerations:
    - key: "node-role.kubernetes.io/control-plane"
      operator: "Equal"
      effect: "NoSchedule"


grafana:
  defaultDashboardsTimezone: Asia/Tokyo
  adminPassword: kans7969

  service:
    type: NodePort
    nodePort: 30002
  nodeSelector:
    mynode: control-plane
  tolerations:
  - key: "node-role.kubernetes.io/control-plane"
    operator: "Equal"
    effect: "NoSchedule"

defaultRules:
  create: false
alertmanager:
  enabled: false

EOT 

b. ์„ค์น˜

kubectl create ns monitoring
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack --version 62.3.0 -f monitor-values.yaml --namespace monitoring

c. prometheus ์ฝ˜์†” ์ ‘์†

์ƒˆ๋กœ์šด ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด, port-forwarding์„ ํ†ตํ•ด ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes Service(1): ClusterIP/NodePort

  • kkumtree

2024-09-27T21:28:17+09:00

Kubernetes์˜ (์ปจ์…‰, ํ˜น์€ ์ฝ˜์…‰ํŠธ๋ผ ๋ถˆ๋ฆฌ๋Š”) Concepts ์ค‘์—์„œ Service์˜ ์ฃผ์ œ๋ฅผ ๋‹ค๋ค„๋ด…๋‹ˆ๋‹ค.

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Service Docs์— ๋ช…๋ฃŒํ•˜๊ฒŒ ์ ํ˜€์žˆ๊ธด ํ•˜์ง€๋งŒ,
๋‹จ์œ„ ๊ธฐ๋Šฅ์œผ๋กœ ์ž˜๊ฒŒ ์ชผ๊ฐ  Pod๋Š” ๊ฒฐ๊ตญ ๊ฐœ๋ณ„์ ์ธ IP๋ฅผ ๊ฐ–๊ฒŒ๋˜๋Š”๋ฐ, Blue/Green ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ๋น„๋กฏํ•ด์„œ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ƒˆ๋กœ์šด Pod์˜ IP๋ฅผ ๋‹ค๋ฅธ Pod๊ฐ€ IP์ฃผ์†Œ ๊ทธ๋Œ€๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ค์›Œ ์ค‘๊ฐ„์— ๋‘” ๊ฒƒ์œผ๋กœ ์ดํ•ด๋ฅผ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ๋ ˆ๋ฒจ์—์„œ๋Š” ๊ฐ€์ •์šฉ ๊ณต์œ ๊ธฐ์—์„œ ๋™์ IP ํ™˜๊ฒฝ์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด, DDNS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ, MAC ADDR ๊ธฐ์ค€์œผ๋กœ Static IP(DHCP๋ชจ๋“œ์‹œ ํ™œ์šฉ)๋ฅผ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ์„ ์„ž์€ ๊ทธ ์–ด๋”˜๊ฐ€๋กœ ๋‚ฉ๋“ํ•˜๊ณ  ๊ณ„์† ์จ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Calico Installation in Operator Mode

  • kkumtree

2024-09-18T20:52:16+09:00

CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” K8s Advanced Network Study(์ดํ•˜, KANS)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์Šคํ„ฐ๋”” ์ง„ํ–‰ ์‹œ, Manifests๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Calico๋ฅผ ์„ค์น˜ํ•˜์˜€์œผ๋‚˜,
Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ณผ์ œ๋Š” ์•„๋‹ˆ์—ˆ์ง€๋งŒ, ์š”์ƒˆ ๋‹ค๋“ค Operator Framework๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งˆ๋ผ์ƒน๊ถˆ ๋ณถ๋“ฏ์ด
Operator๋ฅผ ์ง€์ง€๊ณ  ๋ณถ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ํ˜ธ๊ธฐ์‹ฌ์— ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ Manifests๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ ์‹œ, 50๊ฐœ์˜ ๋…ธ๋“œ[1]๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ Typha๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Calico ์„ค์น˜ ํ™˜๊ฒฝ : AWS EC2(No EKS), kubeadm[2], pod-network-cidr=172.16.0.0/16, IPIP Mode

1. Calico Routing Mode

์œ„์— ์–ธ๊ธ‰๋œ IPIP Mode๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด Calico์˜ Routing Mode๋ฅผ ํ›‘์„ ํ•„์š”์„ฑ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ๋“œ๊ฐ„ ํ†ต์‹  ์‹œ ๋…ธ๋“œ ๊ฐ„์— encapsulation์˜ ์ „๋žต์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋‰˜์–ด ๋ณผ ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. <<
  2. <
  3. 1
  4. 2
  5. >
  6. >>

kkumtree

Source code on GitHub

ยฉ 2025 kkumtree and contributors All rights reserved.
Licensed under
CC BY-NC-ND 4.0