Kubernetes ã¯ã€ã㯠ã¹ã¿ãŒã ã·ãªãŒãºãžããããã ããã¯ããªã³ã©ã€ã³ããã¬ãŒãã³ã°ã§å¯ããããæãèå³æ·±ã質åãå®æçã«æ²èŒããã³ã©ã ã§ãã Kubernetes ã®å°é家ãçããŸãã
ä»æ¥ã®å°é家ã¯ãããšã«ã»ãã¬ã³ã㯠(
ãããšã¬ã»ãã¬ã³ããã ïŒã ãããšã«ã¯ãã€ã³ã¹ãã©ã¯ã¿ãŒå ŒãœãããŠã§ã¢éçºè ãšããŠåããŠããŸããLearnk8s .
次ã®æçš¿ã§è³ªåã®åçããåžæã®å Žåã¯ã
以åã®æçš¿ãèŠéããŠããŸããã?
ç°ãªãããŒã¿ã»ã³ã¿ãŒã«ãã Kubernetes ã¯ã©ã¹ã¿ãŒãæ¥ç¶ããã«ã¯ã©ãããã°ããã§ãã?
ç°¡åã«:
Kubefed v2 ãè¿æ¥å ¬éäºå® ã«ã€ããŠãèªãããšããå§ãããŸãè·é人 Оãã«ãã¯ã©ã¹ã¿ãŒã¹ã±ãžã¥ãŒã©ãŒãããžã§ã¯ã .
å€ãã®å Žåãç¹ã«å¶åŸ¡ãããç°å¢ã§ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãè€è£œãããããŸããŸãªå°åã«åæ£ãããŸãã
XNUMX ã€ã®ãªãŒãžã§ã³ãå©çšã§ããªãå Žåãäžæãé¿ããããã«ãã©ãã£ãã¯ã¯å¥ã®ãªãŒãžã§ã³ã«ãªãã€ã¬ã¯ããããŸãã
Kubernetes ã䜿çšãããšãåæ§ã®æŠç¥ã䜿çšããŠãã¯ãŒã¯ããŒããããŸããŸãªãªãŒãžã§ã³ã«åæ£ã§ããŸãã
ããŒã ããªãŒãžã§ã³ãç°å¢ããŸãã¯ãããã®èŠçŽ ã®çµã¿åããããšã« XNUMX ã€ä»¥äžã®ã¯ã©ã¹ã¿ãŒãæã€ããšãã§ããŸãã
ã¯ã©ã¹ã¿ãŒã¯ãããŸããŸãªã¯ã©ãŠãããªã³ãã¬ãã¹ã§ãã¹ãã§ããŸãã
ãããããã®ãããªå°ççåºããã«å¯Ÿå¿ããã€ã³ãã©ã¹ãã©ã¯ãã£ãã©ã®ããã«èšç»ããã®ã§ãããã?
åäžã®ãããã¯ãŒã¯äžã®è€æ°ã®ã¯ã©ãŠãç°å¢ã«å¯Ÿã㊠XNUMX ã€ã®å€§èŠæš¡ãªã¯ã©ã¹ã¿ãŒãäœæããå¿
èŠããããŸãã?
ãããšããå€æ°ã®å°ããªã¯ã©ã¹ã¿ãŒããããããããå¶åŸ¡ããã³åæããæ¹æ³ãèŠã€ããŠããŸãã?
XNUMX ã€ã®ãªãŒããŒã·ãã ã¯ã©ã¹ã¿ãŒ
åäžã®ãããã¯ãŒã¯äžã« XNUMX ã€ã®ã¯ã©ã¹ã¿ãŒãäœæããã®ã¯ãããã»ã©ç°¡åã§ã¯ãããŸããã
äºæ ãçºçããã¯ã©ã¹ã¿ãŒ ã»ã°ã¡ã³ãéã®æ¥ç¶ã倱ããããšæ³åããŠãã ããã
ãã¹ã¿ãŒãµãŒããŒã XNUMX ã€ããå ŽåããªãœãŒã¹ã®ååã¯ãã¹ã¿ãŒã«æ¥ç¶ã§ããªããããæ°ããã³ãã³ããåä¿¡ã§ããŸããã
ãããŠåæã«ãå€ãã«ãŒãã£ã³ã° ããŒãã« (kube-proxy
æ°ãããããã¯ããŠã³ããŒãã§ããŸãã)ãè¿œå ã®ãããã¯ãããŸãã (kubelet ã¯æŽæ°ããªã¯ãšã¹ãã§ããŸãã)ã
ããã«æªãããšã«ãKubernetes ã¯ããŒããèªèã§ããªãå Žåããã®ããŒããå€ç«ãšããŠããŒã¯ããäžè¶³ããŠããããããæ¢åã®ããŒãã«é åžããŸãã
çµæãšããŠããããã®æ°ã¯ XNUMX åã«ãªããŸãã
ãªãŒãžã§ã³ããšã« XNUMX ã€ã®ãã¹ã¿ãŒãµãŒããŒãäœæãããšãetcd ããŒã¿ããŒã¹ã®ã³ã³ã»ã³ãµã¹ã¢ã«ãŽãªãºã ã«åé¡ãçºçããŸãã (çŽã ç·šâ å®éãetcd ããŒã¿ããŒã¹ã¯å¿ ããããã¹ã¿ãŒãµãŒããŒäžã«ããå¿ èŠã¯ãããŸããã åããªãŒãžã§ã³å ã®å¥ã®ãµãŒã㌠ã°ã«ãŒãã§å®è¡ã§ããŸãã 確ãã«ãåæã«ã¯ã©ã¹ã¿ãŒã®é害ç¹ãçºçããŸãã ã§ãããã«ã)
etcdã®äœ¿çš
ã€ãŸããç¶æ
ã etcd ã«æžã蟌ãåã«ãã€ã³ã¹ã¿ã³ã¹ã®å€§å€æ°ãã³ã³ã»ã³ãµã¹ã«éããå¿
èŠããããŸãã
ç°ãªããªãŒãžã§ã³ã« XNUMX ã€ã® etcd ã€ã³ã¹ã¿ã³ã¹ãããå Žåã®ããã«ãetcd ã€ã³ã¹ã¿ã³ã¹éã®ã¬ã€ãã³ã·ãŒã倧å¹
ã«å¢å ããå Žåãå€ãããŽã·ãšãŒãããŠãã£ã¹ã¯ã«æžã蟌ãã®ã«é·ãæéãããããŸãã
ãã㯠Kubernetes ã³ã³ãããŒã©ãŒã«åæ ãããŸãã
ã³ã³ãããŒã©ãŒ ãããŒãžã£ãŒãå€æŽã«ã€ããŠåŠç¿ããããŒã¿ããŒã¹ã«å¿çãæžã蟌ãã«ã¯ãããã«æéãå¿ èŠã§ãã
ãããŠã³ã³ãããŒã©ãŒã¯äžã€ã§ã¯ãªãè€æ°ããã®ã§ã é£éåå¿ãçºçããã¯ã©ã¹ã¿ãŒå šäœã®åäœãéåžžã«é ããªããŸãã.
etcd ã¯ã¬ã€ãã³ã·ãŒã«éåžžã«ææãªã®ã§ã
çŸåšãåäžã¯ã©ã¹ã¿ãŒã®å€§èŠæš¡ãããã¯ãŒã¯ã®è¯ãäŸã¯ãããŸããã
åºæ¬çã«ãéçºè ã³ãã¥ããã£ãš SIG ã¯ã©ã¹ã¿ãŒ ã°ã«ãŒãã¯ãKubernetes ãã³ã³ãããŒã調æŽããã®ãšåãæ¹æ³ã§ã¯ã©ã¹ã¿ãŒã調æŽããæ¹æ³ãèŠã€ãåºãããšããŠããŸãã
ãªãã·ã§ã³ 1: kubefed ã«ããã¯ã©ã¹ã¿ãŒãã§ãã¬ãŒã·ã§ã³
SIG ã¯ã©ã¹ã¿ãŒããã®æ£åŒãªå¿ç -
åããŠãkube ãã§ãã¬ãŒã·ã§ã³ ããŒã«ã䜿çšããŠãã¯ã©ã¹ã¿ãŒã®ã³ã¬ã¯ã·ã§ã³ãåäžã®ãªããžã§ã¯ããšããŠç®¡çããããšããŸããã
ã¹ã¿ãŒãã¯è¯ãã£ãã®ã§ããããã¹ãŠã®ãªãœãŒã¹ããµããŒãããªãã£ããããçµå±ãkube ãã§ãã¬ãŒã·ã§ã³ã¯æ®åããŸããã§ããã
ãã§ãã¬ãŒã·ã§ã³é
ä¿¡ãšãµãŒãã¹ã¯ãµããŒããããŠããŸããããããšãã° StatefulSet ã¯ãµããŒããããŠããŸããã§ããã
ãŸãããã§ãã¬ãŒã·ã§ã³æ§æã¯æ³šéã®åœ¢åŒã§éä¿¡ãããæè»æ§ããããŸããã§ããã
ã¢ãããŒã·ã§ã³ã ãã䜿çšããŠããã§ãã¬ãŒã·ã§ã³å ã®åã¯ã©ã¹ã¿ãŒã®ã¬ããªã«ã®ããŒãã£ã·ã§ãã³ã°ãã©ã®ããã«èšè¿°ããããšãã§ããããæ³åããŠã¿ãŠãã ããã
ããã¯å®å šã«æ··ä¹±ã§ããã
SIG-cluster 㯠kubefed v1 ã®åŸã«å€ãã®äœæ¥ãè¡ããå¥ã®è§åºŠããåé¡ã«ã¢ãããŒãããããšã«ããŸããã
ã¢ãããŒã·ã§ã³ã®ä»£ããã«ãã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ãããã³ã³ãããŒã©ãŒããªãªãŒã¹ããããšã«ããŸããã ã«ã¹ã¿ã ãªãœãŒã¹å®çŸ© (CRD) ã䜿çšããŠã«ã¹ã¿ãã€ãºã§ããŸãã
ãã§ãã¬ãŒã·ã§ã³ã®äžéšãšãªããªãœãŒã¹ããšã«ã次㮠XNUMX ã€ã®ã»ã¯ã·ã§ã³ãããªãã«ã¹ã¿ã CRD å®çŸ©ããããŸãã
- ãªãœãŒã¹ã®æšæºå®çŸ© (ãããã€ãªã©)ã
- ã»ã¯ã·ã§ã³
placement
ãããã§ããã§ãã¬ãŒã·ã§ã³å ã§ãªãœãŒã¹ãé åžããæ¹æ³ãå®çŸ©ããŸãã - ã»ã¯ã·ã§ã³
override
ãç¹å®ã®ãªãœãŒã¹ã«ã€ããŠã¯ãé 眮ããã®éã¿ãšãã©ã¡ãŒã¿ããªãŒããŒã©ã€ãã§ããŸãã
以äžã¯ãé 眮ã»ã¯ã·ã§ã³ãšãªãŒããŒã©ã€ãã»ã¯ã·ã§ã³ãçµã¿åãããé ä¿¡ã®äŸã§ãã
apiVersion: types.federation.k8s.io/v1alpha1
kind: FederatedDeployment
metadata:
name: test-deployment
namespace: test-namespace
spec:
template:
metadata:
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
placement:
clusterNames:
- cluster2
- cluster1
overrides:
- clusterName: cluster2
clusterOverrides:
- path: spec.replicas
value: 5
ã芧ã®ãšãããäŸçµŠã¯ XNUMX ã€ã®ã¯ã©ã¹ã¿ãŒã«åæ£ãããŠããŸãã cluster1
О cluster2
.
æåã®ã¯ã©ã¹ã¿ãŒã¯ 5 ã€ã®ã¬ããªã«ãæäŸããXNUMX çªç®ã®ã¯ã©ã¹ã¿ãŒã¯ XNUMX ã«èšå®ãããŸãã
ã¬ããªã«ã®æ°ãããã«å¶åŸ¡ããå¿ èŠãããå Žåãkubefed2 ã¯ãã¬ããªã«ã«éã¿ä»ãã§ããæ°ãã ReplicaSchedulingPreference ãªããžã§ã¯ããæäŸããŸãã
apiVersion: scheduling.federation.k8s.io/v1alpha1
kind: ReplicaSchedulingPreference
metadata:
name: test-deployment
namespace: test-ns
spec:
targetKind: FederatedDeployment
totalReplicas: 9
clusters:
A:
weight: 1
B:
weight: 2
CRD æ§é ãš API ã¯ãŸã å®å šã«æºåãæŽã£ãŠããŸããããå ¬åŒãããžã§ã¯ã ãªããžããªã§ç©æ¥µçãªäœæ¥ãé²è¡äžã§ãã
kubefed2 ã«æ³šç®ããŠãã ããããã ãããŸã éçšã«ã¯é©ããŠããªãããšã«æ³šæããŠãã ããã
kubefed2 ã«ã€ããŠè©³ããã¯ããã¡ããã芧ãã ããã
ãªãã·ã§ã³ 2: Booking.com ã¹ã¿ã€ã«ã§ã¯ã©ã¹ã¿ãŒãçµåãã
Booking.com ã®éçºè 㯠kubefed v2 ã«ã¯åãçµãã§ããŸããã§ããããShipper (è€æ°ã®ã¯ã©ã¹ã¿ãŒãè€æ°ã®ãªãŒãžã§ã³ãããã³è€æ°ã®ã¯ã©ãŠãã§é ä¿¡ããããã®ãªãã¬ãŒã¿ãŒ) ãèæ¡ããŸããã
ã©ã¡ãã®ããŒã«ã§ãããã«ãã¯ã©ã¹ã¿ãŒå±éæŠç¥ (䜿çšãããã¯ã©ã¹ã¿ãŒãšãã®ã¬ããªã«ã®æ°) ãã«ã¹ã¿ãã€ãºã§ããŸãã
ããã è·é人ã®ç®æšã¯ãé éäžã®ãšã©ãŒã®ãªã¹ã¯ã軜æžããããšã§ãã
Shipper ã§ã¯ã以åã®ãããã€ã¡ã³ããšçŸåšã®ãããã€ã¡ã³ãã®éã®ã¬ããªã«ã®åå²ãšåä¿¡ãã©ãã£ãã¯ã®éãèšè¿°ããäžé£ã®ã¹ããããå®çŸ©ã§ããŸãã
ãªãœãŒã¹ãã¯ã©ã¹ã¿ãŒã«ããã·ã¥ãããšãShipper ã³ã³ãããŒã©ãŒã¯ãã®å€æŽããåå ããŠãããã¹ãŠã®ã¯ã©ã¹ã¿ãŒã«æ®µéçã«ããŒã«ã¢ãŠãããŸãã
ãŸããçºéå ãéåžžã«éãããŠãããŸãã
ããšãã°ã Helm ãã£ãŒããå
¥åãšããŠåãå
¥ããŸã ãŸããããã©ãªãœãŒã¹ã¯ãµããŒããããŠããŸããã
äžè¬çã«ãShipper ã¯æ¬¡ã®ããã«æ©èœããŸãã
æšæºé ä¿¡ã®ä»£ããã«ãHelm ãã£ãŒããå«ãã¢ããªã±ãŒã·ã§ã³ ãªãœãŒã¹ãäœæããå¿ èŠããããŸãã
apiVersion: shipper.booking.com/v1alpha1
kind: Application
metadata:
name: super-server
spec:
revisionHistoryLimit: 3
template:
chart:
name: nginx
repoUrl: https://storage.googleapis.com/shipper-demo
version: 0.0.1
clusterRequirements:
regions:
- name: local
strategy:
steps:
- capacity:
contender: 1
incumbent: 100
name: staging
traffic:
contender: 0
incumbent: 100
- capacity:
contender: 100
incumbent: 0
name: full on
traffic:
contender: 100
incumbent: 0
values:
replicaCount: 3
Shipper ã¯è€æ°ã®ã¯ã©ã¹ã¿ãŒã管çããããã®åªãããªãã·ã§ã³ã§ãããHelm ãšã®å¯æ¥ãªé¢ä¿ã¯éªéã«ãªãã ãã§ãã
å
šå¡ã Helm ãã
Shipper ãšãã®å²åŠã«ã€ããŠè©³ããã¯ã以äžãã芧ãã ããã
ã³ãŒãã詳ããç¥ãããå Žåã¯ã
ãªãã·ã§ã³ 3: ãéæ³ã®ãã¯ã©ã¹ã¿ãŒã®çµå
Kubefed v2 ãš Shipper ã¯ã¯ã©ã¹ã¿ãŒ ãã§ãã¬ãŒã·ã§ã³ãšé£æºããã«ã¹ã¿ã ãªãœãŒã¹å®çŸ©ãéããŠã¯ã©ã¹ã¿ãŒã«æ°ãããªãœãŒã¹ãæäŸããŸãã
ãããããã¹ãŠã®é ä¿¡ãStatefulSetãDaemonSet ãªã©ãããŒãžããããã«æžãæããããªãå Žåã¯ã©ãããã°ããã§ãããã?
YAML ãå€æŽããã«æ¢åã®ã¯ã©ã¹ã¿ãŒããã§ãã¬ãŒã·ã§ã³ã«å«ããã«ã¯ã©ãããã°ããã§ãã?
ãã ããã¯ã©ã¹ã¿ãŒãšå¯Ÿè©±ããŠãªãœãŒã¹ãã«ã¹ã¿ã å®çŸ©ã§ã©ããããæ°ããæ¹æ³ãèæ¡ãã代ããã«ããã«ãã¯ã©ã¹ã¿ãŒ ã¹ã±ãžã¥ãŒã©ãŒãæšæºã® Kubernetes ã©ã€ããµã€ã¯ã«ã«åã蟌ãŸããããããäœæãããã¹ãŠã®åŒã³åºããã€ã³ã¿ãŒã»ããããŸãã
äœæãããåãããã¯ããã«ãããŒã«çœ®ãæããããŸãã
ãã«ãã¯ã©ã¹ã¿ãŒã¹ã±ãžã¥ãŒã©ãŒã®çšé
ã¢ã¯ã»ã¹å€æŽã®ããã® Webhook åŒã³åºããã€ã³ã¿ãŒã»ããããã¢ã€ãã«ç¶æ ã®ãã㌠ããããäœæããŸãã
å ã®ãããã¯å¥ã®èšç»ãµã€ã¯ã«ãçµãŠããã§ãã¬ãŒã·ã§ã³å šäœãããŒãªã³ã°ããåŸãé 眮ã決å®ãããŸãã
æåŸã«ããããã¯ã¿ãŒã²ãã ã¯ã©ã¹ã¿ãŒã«é ä¿¡ãããŸãã
ãã®çµæãäœãããã«ã¹ããŒã¹ãå æããã ãã®äœåãªããããã§ããŠããŸããŸãã
å©ç¹ã¯ãäŸçµŠãçµã¿åãããããã«æ°ãããªãœãŒã¹ãäœæããå¿ èŠããªãããšã§ãã
ããããäœæããåãªãœãŒã¹ã¯ãèªåçã«ããŒãžã§ããç¶æ ã«ãªããŸãã
ããã¯èå³æ·±ãããšã§ãããªããªããçªç¶ç©è³ãè€æ°ã®å°åã«åæ£ãããŠããã®ã«ãããã«æ°ä»ããªãã£ãã®ã§ãããã ãã ããããã§ã¯ãã¹ãŠãéæ³ã«äŸåããŠãããããããã¯éåžžã«å±éºã§ãã
ãã ããShipper ã¯äž»ã«é éã®åœ±é¿ã軜æžããããšããŠããŸããããã«ãã¯ã©ã¹ã¿ ã¹ã±ãžã¥ãŒã©ã¯ããäžè¬çãªã¿ã¹ã¯ãåŠçãããããããããããã ãžã§ãã«ããé©ããŠããŸãã
é«åºŠãªæ®µéçé ä¿¡ã¡ã«ããºã ã¯ãããŸããã
ãã«ãã¯ã©ã¹ã¿ãŒ ã¹ã±ãžã¥ãŒã©ãŒã®è©³çŽ°ã«ã€ããŠã¯ã次ã®ãµã€ããåç
§ããŠãã ããã
å®éã®ãã«ãã¯ã©ã¹ã¿ ã¹ã±ãžã¥ãŒã©ã«ã€ããŠèªã¿ããå Žåã¯ãAdmiralty ãåç
§ããŠãã ããã
ãã®ä»ã®ããŒã«ãšãœãªã¥ãŒã·ã§ã³
è€æ°ã®ã¯ã©ã¹ã¿ãŒã®æ¥ç¶ãšç®¡çã¯è€éãªã¿ã¹ã¯ã§ãããæ®éçãªãœãªã¥ãŒã·ã§ã³ã¯ãããŸããã
ãã®ãããã¯ãããã«è©³ããç¥ãããå Žåã¯ã次ã®ãªãœãŒã¹ãåç §ããŠãã ããã
ã©ã³ãã£ãŒã®ãµãããªãŒã㌠ã¯ãç°ãªã Kubernetes ã¯ã©ã¹ã¿ãŒã®ãªãŒããŒã¬ã€ ãããã¯ãŒã¯ãæ¥ç¶ããããŒã«ã§ãã- å°å£²ãã§ãŒã³ã®å¯Ÿè±¡çšé
Unimatrix ãš Spinnaker ãçµã¿åãããŠãè€æ°ã®ã¯ã©ã¹ã¿ãŒã«ãããå±éã調æŽããŸã . - IPV6 ã䜿çšããŠã¿ãŠãã ããã
è€æ°ã®å°åã«ããåäžã®ãããã¯ãŒã¯ . - ããšãã°ããµãŒãã¹ ã¡ãã·ã¥ã䜿çšã§ããŸãã
è€æ°ã®ã¯ã©ã¹ã¿ãŒãæ¥ç¶ããããã® Istio . - ã³ã³ãã ãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ ãã©ã°ã€ã³ã§ãã Cilium ã¯ã次ã®ããšãæäŸããŸãã
ã¯ã©ã¹ã¿ãŒã¡ãã·ã¥é¢æ° ãè€æ°ã®ã¯ã©ã¹ã¿ãŒãçµã¿åãããããšãã§ããŸãã
ãããä»æ¥ã®ãã¹ãŠã§ã
æåŸãŸã§èªãã§ããã ãããããšãããããŸãïŒ
è€æ°ã®ã¯ã©ã¹ã¿ãŒãããå¹ççã«æ¥ç¶ããæ¹æ³ãç¥ã£ãŠããå Žåã¯ã
ã¡ãœããããªã³ã¯ã«è¿œå ããŸãã
Chris Nesbitt-Smith æ°ã«å¿ããæè¬ããããŸã (
åºæïŒ habr.com