ãã®èšäºã®ç®çã¯ãKubernetes ã§ã®ãããã¯ãŒãã³ã°ãšãããã¯ãŒã¯ ããªã·ãŒã®ç®¡çã®åºæ¬ãšãæšæºæ©èœãæ¡åŒµãããµãŒãããŒãã£ã® Calico ãã©ã°ã€ã³ãèªè
ã«çŽ¹ä»ããããšã§ãã ãã®éçšã§ãéçšçµéšããåŸãå®éã®äŸã䜿çšããŠãæ§æã®å®¹æããšããã€ãã®æ©èœããã¢ã³ã¹ãã¬ãŒã·ã§ã³ããŸãã
Kubernetes ãããã¯ãŒã¯ ã¢ãã©ã€ã¢ã³ã¹ã®ç°¡åãªçŽ¹ä»
Kubernetes ã¯ã©ã¹ã¿ãŒã¯ãããã¯ãŒã¯ãªãã§ã¯æ³åã§ããŸããã ç§ãã¡ã¯ãã§ã«ãã®åºæ¬ã«é¢ããè³æãå
¬éããŠããŸãã
ãã®èšäºã®æèã§ã¯ãK8s èªäœã¯ã³ã³ãããŒãšããŒãéã®ãããã¯ãŒã¯æ¥ç¶ãæ
åœããªãããšã«æ³šæããããšãéèŠã§ãããã®ãããããŸããŸãª CNI ãã©ã°ã€ã³ (ã³ã³ãã ãããã¯ãŒãã³ã° ã€ã³ã¿ãŒãã§ã€ã¹)ã ãã®ã³ã³ã»ããã«ã€ããŠè©³ããã¯ã
ããšãã°ããããã®ãã©ã°ã€ã³ã®äžã§æãäžè¬çãªãã®ã¯æ¬¡ã®ãšããã§ãã
ãŸããKubernetes ã¯ã©ã¹ã¿ãŒã§ãããã¯ãŒã¯ ããªã·ãŒç®¡çãçµç¹åããããã®ãããã«äœ¿ãããæ©èœãæäŸãããŠããŸãã
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
ããã¯æãåå§çãªäŸã§ã¯ãããŸãããã
è«ççã«ã¯ããããã«å ¥ããã©ãã£ã㯠(ã€ã³ã°ã¬ã¹) ãšãããããçºä¿¡ããããã©ãã£ã㯠(ã€ãŒã°ã¬ã¹) ã® 2 çš®é¡ã®ãã©ãã£ãã¯ãååšããŸãã
å®ã¯æ¿æ²»ã¯æ¹åæ§ã«ãã£ãŠãã®ïŒã€ã«åããããŸãã
次ã«å¿ é ã®å±æ§ã¯ã»ã¬ã¯ã¿ãŒã§ãã ã«ãŒã«ãé©çšããã人ã ããã¯ãããã (ãŸãã¯ãããã®ã°ã«ãŒã) ãŸãã¯ç°å¢ (ã€ãŸããåå空é) ã§ãã éèŠãªè©³çŽ°: ãããã®ãªããžã§ã¯ãã®äž¡æ¹ã®ã¿ã€ãã«ã©ãã« (ã©ãã« Kubernetes çšèªã§) - ãããã¯æ¿æ²»å®¶ãæäœãããã®ã§ãã
ããçš®ã®ã©ãã«ã§çµåãããæéæ°ã®ã»ã¬ã¯ã¿ãŒã«å ããŠãããã¹ãŠãèš±å¯/æåŠ/å šå¡ãã®ãããªã«ãŒã«ãããŸããŸãªããªãšãŒã·ã§ã³ã§èšè¿°ããããšãã§ããŸãã ãã®ç®çã®ããã«ããã©ãŒã ã®æ§é ã䜿çšãããŸãã
podSelector: {}
ingress: []
policyTypes:
- Ingress
â ãã®äŸã§ã¯ãç°å¢å ã®ãã¹ãŠã®ããããåä¿¡ãã©ãã£ãã¯ãããããã¯ãããŸãã éã®åäœã¯ã次ã®æ§æã§å®çŸã§ããŸãã
podSelector: {}
ingress:
- {}
policyTypes:
- Ingress
çºä¿¡ã®å Žåãåæ§ã«:
podSelector: {}
policyTypes:
- Egress
- ãªãã«ããŸãã å«ããå 容ã¯æ¬¡ã®ãšããã§ãã
podSelector: {}
egress:
- {}
policyTypes:
- Egress
ã¯ã©ã¹ã¿ãŒçšã® CNI ãã©ã°ã€ã³ã®éžæã«æ»ããšã次ã®ããšã«æ³šæããŠãã ããã ãã¹ãŠã®ãããã¯ãŒã¯ ãã©ã°ã€ã³ã NetworkPolicy ããµããŒãããŠããããã§ã¯ãããŸããã ããšãã°ãåè¿°ã® Flannel ã¯ãããã¯ãŒã¯ ããªã·ãŒã®æ§ææ¹æ³ãç¥ããŸããã
Calico ãç¥ã: çè«
Calico ãã©ã°ã€ã³ã¯ãFlannel (ãµããããžã§ã¯ã) ãšçµ±åããŠäœ¿çšã§ããŸãã
K8s ã®ãããã¯ã¹åãããããœãªã¥ãŒã·ã§ã³ãš Calico ã® API ã»ããã䜿çšãããšãã©ã®ãããªæ©äŒãåŸãããŸãã?
NetworkPolicy ã«çµã¿èŸŒãŸããŠãããã®ã¯æ¬¡ã®ãšããã§ãã
- æ¿æ²»å®¶ã¯ç°å¢ã«ãã£ãŠå¶éãããã
- ããªã·ãŒã¯ã©ãã«ã§ããŒã¯ããããããã«é©çšãããŸãã
- ã«ãŒã«ã¯ããããç°å¢ããŸãã¯ãµããããã«é©çšã§ããŸãã
- ã«ãŒã«ã«ã¯ããããã³ã«ãååä»ãããŒãä»æ§ãŸãã¯ã·ã³ããªã㯠ããŒãä»æ§ãå«ããããšãã§ããŸãã
Calico ããããã®é¢æ°ãæ¡åŒµããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
- ããªã·ãŒã¯ãããããã³ã³ãããä»®æ³ãã·ã³ãã€ã³ã¿ãŒãã§ã€ã¹ãªã©ã®ä»»æã®ãªããžã§ã¯ãã«é©çšã§ããŸãã
- ã«ãŒã«ã«ã¯ç¹å®ã®ã¢ã¯ã·ã§ã³ (çŠæ¢ãèš±å¯ããã°èšé²) ãå«ããããšãã§ããŸãã
- ã«ãŒã«ã®ã¿ãŒã²ãããŸãã¯ãœãŒã¹ã«ã¯ãããŒããããŒãã®ç¯å²ããããã³ã«ãHTTP ãŸã㯠ICMP å±æ§ãIP ãŸãã¯ãµãããã (第 4 äžä»£ãŸãã¯ç¬¬ 6 äžä»£)ãä»»æã®ã»ã¬ã¯ã¿ãŒ (ããŒãããã¹ããç°å¢) ãæå®ã§ããŸãã
- ããã«ãDNAT èšå®ãšãã©ãã£ãã¯è»¢éããªã·ãŒã䜿çšããŠããã©ãã£ãã¯ã®ééãèŠå¶ã§ããŸãã
Calico ãªããžããªã® GitHub ãžã®æåã®ã³ããã㯠2016 幎 XNUMX æã«é¡ãããã® XNUMX 幎åŸããããžã§ã¯ã㯠Kubernetes ãããã¯ãŒã¯æ¥ç¶ã®çµç¹åã«ãããŠäž»å°çãªå°äœãç²åŸããŸãããããã¯ãããšãã°ã次ã®èª¿æ»çµæã«ãã£ãŠèšŒæãããŠããŸãã
K8 ã䜿çšããå€ãã®å€§èŠæš¡ãªãããŒãžã ãœãªã¥ãŒã·ã§ã³ã
ããã©ãŒãã³ã¹ã«é¢ããŠã¯ãããã§ã¯ãã¹ãŠãçŽ æŽãããã§ãã 補åã®ãã¹ãã«ãããŠãCalico éçºããŒã ã¯ã50000 ç§ããã 500 ã³ã³ããã®äœæé床㧠20 ã®ç©çããŒãäžã§ XNUMX ãè¶
ããã³ã³ãããå®è¡ãããšãã倩æåŠçãªããã©ãŒãã³ã¹ãå®èšŒããŸããã ã¹ã±ãŒãªã³ã°ã«é¢ããŠåé¡ã¯ç¢ºèªãããŸããã§ããã ãã®ãããªçµæ
ãããžã§ã¯ãã¯éåžžã«è¿
éã«éçºãããŠãããK8sãOpenShiftãOpenStack ã§ç®¡çãããäžè¬çãªãœãªã¥ãŒã·ã§ã³ã§ã®äœæ¥ããµããŒãããŠãããã¯ã©ã¹ã¿ãŒããããã€ãããšãã« Calico ã䜿çšããããšãå¯èœã§ãã
ãã£ãªã³ãšäžç·ã«ç·Žç¿
ããã© Kubernetes ã䜿çšããäžè¬çãªã±ãŒã¹ã§ã¯ãCNI ã®ã€ã³ã¹ããŒã«ã¯ããã¡ã€ã«ã䜿çšããããšã«ãªããŸãã calico.yaml
, kubectl apply -f
.
ååãšããŠããã©ã°ã€ã³ã®çŸåšã®ããŒãžã§ã³ã¯ãKubernetes ã®ææ°ã® 2 ïœ 3 ããŒãžã§ã³ãšäºææ§ããããŸããå€ãããŒãžã§ã³ã§ã®åäœã¯ãã¹ããããŠããããä¿èšŒãããŠããŸããã éçºè ã«ãããšãCalico ã¯ãiptables ãŸã㯠IPVS äžã§ CentOS 3.10ãUbuntu 7ããŸã㯠Debian 16 ãå®è¡ãã 8 以éã® Linux ã«ãŒãã«äžã§å®è¡ãããŸãã
ç°å¢å ã§ã®éé¢
äžè¬çãªç解ã®ããã«ãCalico è¡šèšã®ãããã¯ãŒã¯ ããªã·ãŒãæšæºã®ãããã¯ãŒã¯ ããªã·ãŒãšã©ã®ããã«ç°ãªãã®ãããŸããã«ãŒã«ãäœæããã¢ãããŒãã«ãã£ãŠã«ãŒã«ã®èªã¿ããããšæ§æã®æè»æ§ãã©ã®ããã«ç°¡çŽ åãããã®ããç解ããããã®ç°¡åãªã±ãŒã¹ãèŠãŠã¿ãŸãããã
ã¯ã©ã¹ã¿ãŒã«ã¯ 2 ã€ã® Web ã¢ããªã±ãŒã·ã§ã³ (Node.js ãš PHP) ããããã€ãããŠããããã®ãã¡ã® XNUMX ã€ã¯ Redis ã䜿çšããŸãã Node.js ãšã®æ¥ç¶ãç¶æããªãããPHP ãã Redis ãžã®ã¢ã¯ã»ã¹ããããã¯ããã«ã¯ã次ã®ããªã·ãŒãé©çšããã ãã§ãã
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-redis-nodejs
spec:
podSelector:
matchLabels:
service: redis
ingress:
- from:
- podSelector:
matchLabels:
service: nodejs
ports:
- protocol: TCP
port: 6379
åºæ¬çã«ãNode.js ãã Redis ããŒããžã®åä¿¡ãã©ãã£ãã¯ãèš±å¯ããŸããã ãããŠåœŒãã¯æããã«ä»ã«äœãçŠæ¢ããŠããŸããã§ããã NetworkPolicy ã衚瀺ããããšããã«ãç¹ã«æå®ãããŠããªãéãããã®äžã§èšåãããŠãããã¹ãŠã®ã»ã¬ã¯ã¿ãŒãåé¢ããå§ããŸãã ãã ããåé¢ã«ãŒã«ã¯ã»ã¬ã¯ã¿ãŒã§ã«ããŒãããŠããªãä»ã®ãªããžã§ã¯ãã«ã¯é©çšãããŸããã
äŸã§ã¯ã apiVersion
Kubernetes ã¯ããã«äœ¿çšã§ããŸããã䜿çšã劚ãããã®ã¯ãããŸãã
apiVersion: crd.projectcalico.org/v1
kind: NetworkPolicy
metadata:
name: allow-redis-nodejs
spec:
selector: service == 'redis'
ingress:
- action: Allow
protocol: TCP
source:
selector: service == 'nodejs'
destination:
ports:
- 6379
éåžžã® NetworkPolicy API ãä»ãããã¹ãŠã®ãã©ãã£ãã¯ãèš±å¯ãŸãã¯æåŠããããã®äžèšã®æ§é ã«ã¯ãç解ãããèŠãããããã®ãé£ããæ¬åŒ§ãå«ãæ§é ãå«ãŸããŠããŸãã Calico ã®å Žåããã¡ã€ã¢ãŠã©ãŒã« ã«ãŒã«ã®ããžãã¯ãéã«å€æŽããã«ã¯ã次ã®ããã«å€æŽããŸãã action: Allow
Ма action: Deny
.
ç°å¢ã«ããéé¢
ããã§ãã¢ããªã±ãŒã·ã§ã³ã Prometheus ã§åéããGrafana ã䜿çšããŠããã«åæããããã®ããžãã¹ ã¡ããªã¯ã¹ãçæããç¶æ³ãæ³åããŠãã ããã ã¢ããããŒãã«ã¯æ©å¯ããŒã¿ãå«ãŸããå ŽåããããŸããããããããã©ã«ãã§äžè¬å ¬éãããŸãã ãã®ããŒã¿ãèŠãèŠããé ããŸããã:
Prometheus ã¯ãååãšããŠãå¥ã®ãµãŒãã¹ç°å¢ã«é
眮ãããŸãããã®äŸã§ã¯ã次ã®ãããªåå空éã«ãªããŸãã
apiVersion: v1
kind: Namespace
metadata:
labels:
module: prometheus
name: kube-prometheus
ãã£ãŒã«ã metadata.labels
ããã¯å¶ç¶ã§ã¯ãããŸããã§ããã äžèšã®ããã«ã namespaceSelector
ïŒåæ§ã« podSelector
) ã©ãã«ã䜿çšããŠåäœããŸãã ãããã£ãŠãç¹å®ã®ããŒãäžã®ãã¹ãŠã®ãããããã¡ããªã¯ã¹ãååŸã§ããããã«ããã«ã¯ãäœããã®ã©ãã«ãè¿œå ã㊠(ãŸãã¯æ¢åã®ã©ãã«ããååŸããŠ)ã次ã®ãããªæ§æãé©çšããå¿
èŠããããŸãã
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-metrics-prom
spec:
podSelector: {}
ingress:
- from:
- namespaceSelector:
matchLabels:
module: prometheus
ports:
- protocol: TCP
port: 9100
Calico ããªã·ãŒã䜿çšããå Žåãæ§æã¯æ¬¡ã®ããã«ãªããŸãã
apiVersion: crd.projectcalico.org/v1
kind: NetworkPolicy
metadata:
name: allow-metrics-prom
spec:
ingress:
- action: Allow
protocol: TCP
source:
namespaceSelector: module == 'prometheus'
destination:
ports:
- 9100
äžè¬ã«ãç¹å®ã®ããŒãºã«åãããŠãã®ãããªçš®é¡ã®ããªã·ãŒãè¿œå ãããšãã¯ã©ã¹ã¿ãŒå ã®ã¢ããªã±ãŒã·ã§ã³ã®åäœã«å¯Ÿããæªæã®ããå¹²æžãŸãã¯å¶çºçãªå¹²æžããä¿è·ã§ããŸãã
Calico ã®äœæè
ã«ãããšããã¹ã ãã©ã¯ãã£ã¹ã¯ããã¹ãŠããããã¯ããå¿
èŠãªãã®ãæ瀺çã«éããã¢ãããŒãã§ãã
è¿œå ã® Calico ãªããžã§ã¯ãã®äœ¿çš
Calico API ã®æ¡åŒµã»ãããéããŠããããã«éå®ãããªãããŒãã®å¯çšæ§ã調æŽã§ããããšãæãåºããŠãã ããã 次ã®äŸã§ã¯ã GlobalNetworkPolicy
ã¯ã©ã¹ã¿ãŒå
㧠ICMP ãªã¯ãšã¹ããæž¡ãæ©èœã¯éããããŠããŸã (ããšãã°ããããããããŒãããããéããŸãã¯ããŒããã IP ããããžã® ping)ã
apiVersion: crd.projectcalico.org/v1
kind: GlobalNetworkPolicy
metadata:
name: block-icmp
spec:
order: 200
selector: all()
types:
- Ingress
- Egress
ingress:
- action: Deny
protocol: ICMP
egress:
- action: Deny
protocol: ICMP
äžèšã®å Žåã§ããã¯ã©ã¹ã¿ãŒ ããŒãã ICMP çµç±ã§çžäºã«ãæ¥ç¶ãããããšã¯å¯èœã§ãã ãããŠãã®åé¡ã¯æ¬¡ã®ãããªæ¹æ³ã§è§£æ±ºãããŸã GlobalNetworkPolicy
ããšã³ãã£ãã£ã«é©çšããã HostEndpoint
:
apiVersion: crd.projectcalico.org/v1
kind: GlobalNetworkPolicy
metadata:
name: deny-icmp-kube-02
spec:
selector: "role == 'k8s-node'"
order: 0
ingress:
- action: Allow
protocol: ICMP
egress:
- action: Allow
protocol: ICMP
---
apiVersion: crd.projectcalico.org/v1
kind: HostEndpoint
metadata:
name: kube-02-eth0
labels:
role: k8s-node
spec:
interfaceName: eth0
node: kube-02
expectedIPs: ["192.168.2.2"]
VPN ã®ã±ãŒã¹
æåŸã«ãæšæºçãªããªã·ãŒ ã»ããã§ã¯ååã§ã¯ãªãå Žåã«ãã¯ã©ã¹ã¿ãŒã«è¿ãçžäºäœçšã®å Žåã« Calico é¢æ°ã䜿çšããå®éã®äŸã瀺ããŸãã Web ã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ããããã«ãã¯ã©ã€ã¢ã³ã㯠VPN ãã³ãã«ã䜿çšããŸãããã®ã¢ã¯ã»ã¹ã¯å³å¯ã«å¶åŸ¡ããã䜿çšãèš±å¯ãããŠãããµãŒãã¹ã®ç¹å®ã®ãªã¹ãã«å¶éãããŸãã
ã¯ã©ã€ã¢ã³ãã¯æšæºã® UDP ããŒã 1194 çµç±ã§ VPN ã«æ¥ç¶ããæ¥ç¶ããããšãããããšãµãŒãã¹ã®ã¯ã©ã¹ã¿ãŒ ãµãããããžã®ã«ãŒããåãåããŸãã åèµ·åãã¢ãã¬ã¹å€æŽäžã«ãµãŒãã¹ã倱ãããªãããã«ããµããããå
šäœãããã·ã¥ãããŸãã
æ§æå ã®ããŒãã¯æšæºã§ãããããã¢ããªã±ãŒã·ã§ã³ãæ§æã㊠Kubernetes ã¯ã©ã¹ã¿ãŒã«è»¢éããããã»ã¹ã«è¥å¹²ã®ãã¥ã¢ã³ã¹ãçããŸãã ããšãã°ãåã AWS 㧠UDP çšã® LoadBalancer ãæåéãæšå¹Žæ«ã«éå®ããããªãŒãžã§ã³ã®ãªã¹ãã«ç»å ŽããŸããããNodePort ã¯ãã¹ãŠã®ã¯ã©ã¹ã¿ãŒ ããŒãã§è»¢éãããã䜿çšã§ããããµãŒã㌠ã€ã³ã¹ã¿ã³ã¹ã®æ°ãã¹ã±ãŒã«ããããšã¯äžå¯èœã§ããèé害æ§ã®ç®çã ããã«ãããã©ã«ãã®ããŒãç¯å²ãå€æŽããå¿ èŠããããŸã...
èãããã解決çãæ€èšããçµæã次ã®ãã®ãéžæãããŸããã
- VPN ãåãããããã¯ãããŒãããšã«ã¹ã±ãžã¥ãŒã«ãããŸãã
hostNetwork
ã€ãŸããå®éã® IP ã«éä¿¡ãããŸãã - ãµãŒãã¹ã¯æ¬¡ã®æ¹æ³ã§å€éšã«æ²ç€ºãããŸãã
ClusterIP
ã ããŒãã¯ããŒãã«ç©ççã«ã€ã³ã¹ããŒã«ãããŠããããã€ããŒãªäºçŽ (æ¡ä»¶ä»ãã§å®éã® IP ã¢ãã¬ã¹ãååšãã) ã䜿çšããŠå€éšããã¢ã¯ã»ã¹ã§ããŸãã - ããããäžæããããŒããç¹å®ããããšã¯ããã®è©±ã®ç¯å²ãè¶ ããŠããŸãã ååãªæ³ååããã人ã§ããã°ããµãŒãã¹ãããŒãã«é ç·ããããšããVPN ãµãŒãã¹ã®çŸåšã® IP ã¢ãã¬ã¹ãç£èŠããã¯ã©ã€ã¢ã³ãã«ç»é²ãããŠãã DNS ã¬ã³ãŒããç·šéããå°ããªãµã€ãã«ãŒ ãµãŒãã¹ãäœæããããšãã§ãããšã ãèšã£ãŠãããŸãã
ã«ãŒãã£ã³ã°ã®èŠ³ç¹ããèŠããšãVPN ãµãŒããŒã«ãã£ãŠçºè¡ããã IP ã¢ãã¬ã¹ã«ãã£ãŠ VPN ã¯ã©ã€ã¢ã³ããäžæã«èå¥ã§ããŸãã 以äžã¯ãäžèšã® Redis ã§ç€ºãããŠããããã®ãããªã¯ã©ã€ã¢ã³ãã®ãµãŒãã¹ãžã®ã¢ã¯ã»ã¹ãå¶éããåºæ¬çãªäŸã§ãã
apiVersion: crd.projectcalico.org/v1
kind: HostEndpoint
metadata:
name: vpnclient-eth0
labels:
role: vpnclient
environment: production
spec:
interfaceName: "*"
node: kube-02
expectedIPs: ["172.176.176.2"]
---
apiVersion: crd.projectcalico.org/v1
kind: GlobalNetworkPolicy
metadata:
name: vpn-rules
spec:
selector: "role == 'vpnclient'"
order: 0
applyOnForward: true
preDNAT: true
ingress:
- action: Deny
protocol: TCP
destination:
ports: [6379]
- action: Allow
protocol: UDP
destination:
ports: [53, 67]
ããã§ã¯ãããŒã 6379 ãžã®æ¥ç¶ã¯å³ããçŠæ¢ãããŠããŸãããåæã« DNS ãµãŒãã¹ã®åäœã¯ç¶æãããã«ãŒã«ãäœæããéã«ãã®æ©èœãæãªãããããšããããããŸãã åè¿°ããããã«ãã»ã¬ã¯ã¿ãŒã衚瀺ããããšãç¹ã«æå®ããªãéããããã©ã«ãã®æåŠããªã·ãŒãã»ã¬ã¯ã¿ãŒã«é©çšãããããã§ãã
çµæ
ãããã£ãŠãCalico ã®é«åºŠãª API ã䜿çšãããšãã¯ã©ã¹ã¿ãŒå ããã³ã¯ã©ã¹ã¿ãŒåšèŸºã®ã«ãŒãã£ã³ã°ãæè»ã«æ§æããåçã«å€æŽã§ããŸãã äžè¬ã«ããã®äœ¿çšæ¹æ³ã¯å€§ç ²ã§ã¹ãºã¡ãæã€ããã«èŠããBGP ããã³ IP-IP ãã³ãã«ã䜿çšãã L3 ãããã¯ãŒã¯ã®å®è£ ã¯ããã©ãã ãããã¯ãŒã¯äžã®åçŽãª Kubernetes ã€ã³ã¹ããŒã«ã§ã¯å·šå€§ã«èŠããŸã...ãããããã以å€ã®ç¹ã§ã¯ããã®ããŒã«ã¯éåžžã«å®è¡å¯èœã§äŸ¿å©ã«èŠããŸãã ã
ã»ãã¥ãªãã£èŠä»¶ãæºããããã«ã¯ã©ã¹ã¿ãŒãåé¢ããããšã¯å¿ ãããå®çŸå¯èœã§ãããšã¯éããŸããããã®å ŽåãCalico (ãŸãã¯åæ§ã®ãœãªã¥ãŒã·ã§ã³) ã圹ã«ç«ã¡ãŸãã ãã®èšäºã«èšèŒãããŠããäŸ (è¥å¹²ã®å€æŽãå ãããã®) ã¯ãAWS ã®ã¯ã©ã€ã¢ã³ãã®ããã€ãã®ã€ã³ã¹ããŒã«ã§äœ¿çšãããŠããŸãã
PS
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
ã»ãã¥ãªãã£å°é家ã®ããã® Kubernetes ãããã¯ãŒã¯ ããªã·ãŒã®æŠèŠ "; - ãKubernetes ã§ã®ãããã¯ãŒã¯ã®å³è§£ã¬ã€ãã:
ããŒã 1 ããã³ 2 (ãããã¯ãŒã¯ ã¢ãã«ããªãŒããŒã¬ã€ ãããã¯ãŒã¯) ,ããŒã 3 (ãµãŒãã¹ãšãã©ãã£ãã¯åŠç) ; - «
Container Networking Interface (CNI) - Linux ã³ã³ããã®ãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ããã³æšæº 'ã
åºæïŒ habr.com