⢠ã³ã³ãããŒãš Kubernetes ãåºç€ããå§ããŸãããããã®ãããã¯ãåŠã¶ã®ã«ç¹å¥ãªçµéšã¯å¿
èŠãããŸããã ⢠ç¬èªã®ã¯ã©ã¹ã¿ãŒãå®è¡ããããAmazonãGoogle ãªã©ã®ãããŒãžã Kubernetes ãµãŒãã¹ãéžæããŸãã ⢠Kubernetes ã䜿çšããŠãã³ã³ãããŒã®ã©ã€ããµã€ã¯ã«ãšãªãœãŒã¹æ¶è²»ã管çããŸãã ⢠ã³ã¹ããããã©ãŒãã³ã¹ãå埩åãé»åãããã³ã¹ã±ãŒã©ããªãã£ã«åºã¥ããŠã¯ã©ã¹ã¿ãŒãæé©åããŸãã ⢠ã¢ããªã±ãŒã·ã§ã³ã®éçºããã¹ããå±éã«æé©ãªããŒã«ãåŠã³ãŸãã ⢠çŸåšã®æ¥çæ
£è¡ã掻çšããŠãã»ãã¥ãªãã£ãšå¶åŸ¡ã確ä¿ããŸãã ⢠éçºããŒã ãããæè»ãè¿
éãå¹ççã«è¡åã§ããããã«ãDevOps ååã瀟å
å
šäœã«å°å
¥ããŸãã
ãã®æ¬ã¯èª°ã«åãããã®ã§ããïŒ
ãã®æ¬ã¯ããµãŒããŒãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãæ åœãã管çéšéã®åŸæ¥å¡ã ãã§ãªããæ°ããã¯ã©ãŠã ãµãŒãã¹ã®æ§ç¯ãæ¢åã®ã¢ããªã±ãŒã·ã§ã³ã® Kubernetes ãã¯ã©ãŠããžã®ç§»è¡ã«æºããéçºè ã«ãæãé¢é£æ§ããããŸãã å¿é ããªãã§ãã ãããKubernetes ãã³ã³ãããŒã®æäœæ¹æ³ãç¥ãå¿ èŠã¯ãããŸãããç§ãã¡ããã¹ãŠæããŸãã
çµéšè±å¯ãª Kubernetes ãŠãŒã¶ãŒã«ãšã£ãŠããRBACãç¶ç¶çãããã€ã¡ã³ããæ©å¯ããŒã¿ç®¡çãå¯èŠ³æž¬æ§ãªã©ã®ãããã¯ã詳现ã«ã«ããŒããŠãããããå€ãã®äŸ¡å€ãããããšãããããŸãã ããªãã®ã¹ãã«ãçµéšã«é¢ä¿ãªãããã®æ¬ã®ããŒãžã«å¿ ãèå³æ·±ãå 容ãå«ãŸããŠããããšãé¡ã£ãŠããŸãã
ãã®æ¬ã¯ã©ããªçåã«çããŸãã?
ãã®æ¬ã®èšç»ãšå·çäžã«ãç§ãã¡ã¯äœçŸäººãã®äººã ãšã¯ã©ãŠã ãã¯ãããžãŒãš Kubernetes ã«ã€ããŠè©±ãåããæ¥çã®ãªãŒããŒãå°é家ã ãã§ãªããŸã£ããã®åå¿è ãšã話ãããŸããã 以äžã¯ããã®åºçç©ã§åçããŠããããã質åã®ãã¡ãå³éžããããã®ã§ãã
- ããªããã®ãã¯ãããžãŒã«æéãè²»ããå¿ èŠãããã®ãââã«èå³ããããŸãã ããã¯ç§ãšç§ã®ããŒã ã®ã©ã®ãããªåé¡ã®è§£æ±ºã«åœ¹ç«ã¡ãŸãã?ã
- ãKubernetes ã¯é¢çœããã§ãããåå ¥éå£ãããªãé«ãã§ãã ç°¡åãªäŸãæºåããã®ã¯é£ãããããŸãããããã以äžã®ç®¡çãšãããã°ã¯æ°ãé ããªããŸãã ç§ãã¡ã¯ãçŸå®äžçã§äººã ãã©ã®ããã« Kubernetes ã¯ã©ã¹ã¿ãŒã管çããŠããã®ãããŸãã©ã®ãããªåé¡ãçºçããå¯èœæ§ãããã®ãââã«ã€ããŠãä¿¡é Œã§ããã¢ããã€ã¹ãåŸãããšèããŠããŸããã
- ã䞻芳çãªã¢ããã€ã¹ã圹ã«ç«ã¡ãŸãã Kubernetes ãšã³ã·ã¹ãã ã¯ãæ°ããããŒã ã«å€ãããéžæè¢ãæäŸããŸãã åãããšãè¡ãã®ã«è€æ°ã®æ¹æ³ãããå Žåãã©ããæé©ã§ããããã©ã®ããã«å€æããã°ããã§ãããã? ã©ã®ããã«éžæããã°ããã§ãããã?
ãããŠãããããã¹ãŠã®è³ªåã®äžã§æãéèŠãªããšã¯æ¬¡ã®ãšããã§ãã
- ãäŒç€Ÿãæ··ä¹±ãããã« Kubernetes ã䜿çšããã«ã¯ã©ãããã°ããã§ãããã?ã
æç²ã æ§æãšã·ãŒã¯ã¬ãããªããžã§ã¯ã
Kubernetes ã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ããã®æ§æ (ã€ãŸããæéã®çµéãšãšãã«å€åããå¯èœæ§ã®ããå€ãèšå®) ããåé¢ã§ããæ©èœã¯ãéåžžã«äŸ¿å©ã§ãã æ§æå€ã«ã¯éåžžãç°å¢åºæã®èšå®ããµãŒãããŒã㣠ãµãŒãã¹ã® DNS ã¢ãã¬ã¹ãèªèšŒè³æ Œæ å ±ãå«ãŸããŸãã
ãã¡ãããããããã¹ãŠãã³ãŒãã«çŽæ¥çµã¿èŸŒãããšãã§ããŸããããã®ã¢ãããŒãã¯ååãªæè»æ§ããããŸããã ããšãã°ãæ§æå€ãå€æŽãããšãã³ãŒããå床ãã«ãããŠãããã€ããå¿ èŠããããŸãã ããè¯ã解決çã¯ãèšå®ãã³ãŒãããåé¢ãããã¡ã€ã«ãŸãã¯ç°å¢å€æ°ããèªã¿åãããšã§ãã
Kubernetes ã«ã¯ãæ§æã管çããããã®ããŸããŸãªæ¹æ³ãçšæãããŠããŸãã ãŸããããã ã©ãããŒä»æ§ã§æå®ãããç°å¢å€æ°ãä»ããŠã¢ããªã±ãŒã·ã§ã³ã«å€ãæž¡ãããšãã§ããŸã (192 ããŒãžã®ãç°å¢å€æ°ããåç §)ã XNUMX çªç®ã«ãConfigMap ãªããžã§ã¯ããš Secret ãªããžã§ã¯ãã䜿çšããŠãæ§æããŒã¿ã Kubernetes ã«çŽæ¥ä¿åã§ããŸãã
ãã®ç« ã§ã¯ããããã®ãªããžã§ã¯ãã詳现ã«èª¿æ»ããã㢠ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠæ§æãšæ©å¯ããŒã¿ã管çããããã®å®è·µçãªã¢ãããŒããããã€ãèŠãŠãããŸãã
æ§æå€æŽæã®ãããã·ã§ã«ã®æŽæ°
ã¯ã©ã¹ã¿ãŒå ã«ãããã€ã¡ã³ããããããã® ConfigMap å ã®ããã€ãã®å€ãå€æŽããããšæ³åããŠãã ããã Helm ãã£ãŒã (102 ããŒãžã®ãHelm: Kubernetes çšããã±ãŒãž ãããŒãžã£ãŒããåç §) ã䜿çšãããšãæ§æã®å€æŽãèªåçã«æ€åºããXNUMX ã€ã®å·§åŠãªããªãã¯ã§ããã ã·ã§ã«ããªããŒãã§ããŸãã 次ã®ã¢ãããŒã·ã§ã³ããããã€ã¡ã³ãä»æ§ã«è¿œå ããŸãã
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
| sha256sum }}
å°å ¥ãã³ãã¬ãŒãã«ã¯æ§æãã©ã¡ãŒã¿ã®ãã§ãã¯ãµã ãå«ãŸããããã«ãªããŸããããã©ã¡ãŒã¿ãå€æŽããããšãåèšãæŽæ°ãããŸãã Helm ã¢ããã°ã¬ãŒããå®è¡ãããšãHelm ã¯ãããã€ã¡ã³ãä»æ§ãå€æŽãããããšãæ€åºãããã¹ãŠã®ããã ã·ã§ã«ãåèµ·åããŸãã
Kubernetes ã®æ©å¯ããŒã¿
ConfigMap ãªããžã§ã¯ãããã¯ã©ã¹ã¿ãŒå ã®æ§æããŒã¿ã®ä¿åãšã¢ã¯ã»ã¹ã®ããã®æè»ãªã¡ã«ããºã ãæäŸããããšã¯ãã§ã«ããã£ãŠããŸãã ãã ããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ããã¹ã¯ãŒãã API ããŒãªã©ã®æ©å¯æ§ã®é«ãæ å ±ãå«ãŸããŠããŸãã ConfigMap ã«ä¿åããããšãã§ããŸããããã®ãœãªã¥ãŒã·ã§ã³ã¯çæ³çã§ã¯ãããŸããã
代ããã«ãKubernetes ã¯æ©å¯ããŒã¿ãä¿åããããã«èšèšãããç¹å¥ãªã¿ã€ãã®ãªããžã§ã¯ããSecret ãæäŸããŸãã 次ã«ããã®ãªããžã§ã¯ããã㢠ã¢ããªã±ãŒã·ã§ã³ã§ã©ã®ããã«äœ¿çšããããã®äŸãèŠãŠã¿ãŸãããã
ãŸããSecret ãªããžã§ã¯ãã® Kubernetes ãããã§ã¹ãã確èªããŸã (hello-secret-env/k8s/secret.yaml ãåç §)ã
apiVersion: v1
kind: Secret
metadata:
name: demo-secret
stringData:
magicWord: xyzzy
ãã®äŸã§ã¯ãmagicWord ç§å¯ããŒã¯ xyzzy (en.wikipedia.org/wiki/Xyzzy_(computing)) ã§ãã xyzzy ãšããåèªã¯ãäžè¬ã«ã³ã³ãã¥ãŒã¿ãŒã®äžçã§ã¯éåžžã«åœ¹ç«ã¡ãŸãã ConfigMap ãšåæ§ã«ãSecret ãªããžã§ã¯ãã«è€æ°ã®ããŒãšå€ãä¿åã§ããŸãã ããã§ã¯ãç°¡åã«ããããã«ãããŒãšå€ã®ãã¢ã XNUMX ã€ã ã䜿çšããŸãã
ã·ãŒã¯ã¬ãããªããžã§ã¯ããç°å¢å€æ°ãšããŠäœ¿çšãã
ConfigMap ãšåæ§ã«ãSecret ãªããžã§ã¯ãã¯ã³ã³ãããŒå ã§ç°å¢å€æ°ãšããŠããŸãã¯ãã£ã¹ã¯äžã®ãã¡ã€ã«ãšããŠäœ¿çšå¯èœã«ãªããŸãã 次ã®äŸã§ã¯ãç°å¢å€æ°ã Secret ã®å€ã«å²ãåœãŠãŸãã
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
secretKeyRef:
name: demo-secret
key: magicWord
ã㢠ãªããžããªã§æ¬¡ã®ã³ãã³ããå®è¡ããŠããããã§ã¹ããé©çšããŸãã
kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" created
åãšåæ§ã«ãããŒã«ã« ããŒãããããã€ã¡ã³ãã«è»¢éããŠããã©ãŠã¶ãŒã§çµæã確èªããŸãã
kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888
äœæéèšæ
The magic word is "xyzzy"
ã·ãŒã¯ã¬ãããªããžã§ã¯ãããã¡ã€ã«ã«æžã蟌ã
ãã®äŸã§ã¯ãSecret ãªããžã§ã¯ãããã¡ã€ã«ãšããŠã³ã³ãããŒã«æ·»ä»ããŸãã ã³ãŒãã¯ãã㢠ãªããžããªã® hello-secret-file ãã©ã«ããŒã«ãããŸãã
Secret ããã¡ã€ã«ãšããŠæ¥ç¶ããã«ã¯ã次ã®ãããã€ã¡ã³ãã䜿çšããŸãã
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-file
ports:
- containerPort: 8888
volumeMounts:
- name: demo-secret-volume
mountPath: "/secrets/"
readOnly: true
volumes:
- name: demo-secret-volume
secret:
secretName: demo-secret
ãµãã»ã¯ã·ã§ã³ãConfigMap ãªããžã§ã¯ãããã®æ§æãã¡ã€ã«ã®äœæã (ããŒãž) ãšåæ§ã§ãã 240 ã§ã¯ãããªã¥ãŒã (ãã®å Žåã¯ãdemo-secret-volume) ãäœæãããããä»æ§ã® volumeMounts ã»ã¯ã·ã§ã³ã®ã³ã³ãããŒã«ããŠã³ãããŸãã mountPath ãã£ãŒã«ã㯠/secrets ã§ãããããKubernetes 㯠Secret ãªããžã§ã¯ãã§å®çŸ©ãããããŒãšå€ã®ãã¢ããšã«ãã®ãã©ã«ããŒã« XNUMX ã€ã®ãã¡ã€ã«ãäœæããŸãã
ãã®äŸã§ã¯ãmagicWord ãšããããŒãšå€ã®ãã¢ã XNUMX ã€ã ãå®çŸ©ããããããããã§ã¹ãã¯ã³ã³ãããŒå ã«æ©å¯ããŒã¿ãå«ãåäžã®èªã¿åãå°çšãã¡ã€ã« /secrets/magicWord ãäœæããŸãã
ãã®ãããã§ã¹ããåã®äŸãšåãæ¹æ³ã§é©çšãããšãåãçµæãåŸãããã¯ãã§ãã
The magic word is "xyzzy"
ç§å¯ãªããžã§ã¯ãã®èªã¿åã
åã®ã»ã¯ã·ã§ã³ã§ã¯ãkubectl description ã³ãã³ãã䜿çšã㊠ConfigMap ã®å 容ã衚瀺ããŸããã Secretã§ãåãããšãã§ããŸããïŒ
kubectl describe secret/demo-secret
Name: demo-secret
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
magicWord: 5 bytes
ããŒã¿ãã®ãã®ã¯è¡šç€ºãããŸããã®ã§ã泚æãã ããã Kubernetes ã®ã·ãŒã¯ã¬ãã ãªããžã§ã¯ã㯠Opaque ã¿ã€ãã§ããã€ãŸãããã®å 容㯠kubectl èšè¿°åºåããã° ãšã³ããªããŸãã¯ã¿ãŒããã«ã«è¡šç€ºãããªããããæ©å¯æ å ±ã誀ã£ãŠå ¬éãããããšã¯ãããŸããã
æ©å¯ããŒã¿ã®ãšã³ã³ãŒãããã YAML ããŒãžã§ã³ã衚瀺ããã«ã¯ãkubectl get ã³ãã³ãã䜿çšããŸãã
kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque
base64
å ã®å€ãšãŸã£ããç°ãªã eHl6enk= ãšã¯äœã§ãã? ããã¯å®éã«ã¯ãbase64 ãšã³ã³ãŒãã£ã³ã°ã§è¡šããã Secret ãªããžã§ã¯ãã§ãã Base64 ã¯ãä»»æã®ãã€ã㪠ããŒã¿ãæååãšããŠãšã³ã³ãŒãããããã®ã¹ããŒã ã§ãã
æ©å¯æ å ±ã¯ãã€ããªã§åºåãããªãå¯èœæ§ããããã (TLS æå·åããŒã®å Žåãšåæ§)ãSecret ãªããžã§ã¯ãã¯åžžã« Base64 圢åŒã§ä¿åãããŸãã
ããã¹ã beHl6enk= ã¯ãç§å¯ã®åèª xyzzy ã Base64 ã§ãšã³ã³ãŒãããããŒãžã§ã³ã§ãã ããã確èªããã«ã¯ãã¿ãŒããã«ã§base64 âdecode ã³ãã³ããå®è¡ããŸãã
echo "eHl6enk=" | base64 --decode
xyzzy
ãã®ãããKubernetes ã¯æ©å¯ããŒã¿ã誀ã£ãŠã¿ãŒããã« ãã¡ã€ã«ããã° ãã¡ã€ã«ã«åºåããªãããã«ä¿è·ããŸãããç¹å®ã®åå空éã® Secret ãªããžã§ã¯ãã«å¯Ÿããèªã¿åãæš©éãæã£ãŠããå Žåããã®ããŒã¿ã¯ Base64 åŠçããããã®åŸãã³ãŒããããå¯èœæ§ããããŸãã
äžéšã®ããã¹ãã Base64 ãšã³ã³ãŒãããå¿ èŠãããå Žå (ããšãã°ãSecret ã«å ¥ãããã)ãåŒæ°ãªã㧠Base64 ã³ãã³ãã䜿çšããŸãã
echo xyzzy | base64
eHl6enkK
ç§å¯ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹
Secret ãªããžã§ã¯ããèªã¿åããç·šéã§ããã®ã¯èª°ã§ãã? ããã¯ãã¢ã¯ã»ã¹å¶åŸ¡ã¡ã«ããºã ã§ãã RBAC ã«ãã£ãŠæ±ºå®ãããŸã (ããã«ã€ããŠã¯ã258 ããŒãžã®ãããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ã®æŠèŠããµãã»ã¯ã·ã§ã³ã§è©³ãã説æããŸã)ã RBAC ãæããªãã¯ã©ã¹ã¿ãŒããŸãã¯æå¹ã«ãªã£ãŠããªãã¯ã©ã¹ã¿ãŒãå®è¡ããŠããå Žåããã¹ãŠã® Secret ãªããžã§ã¯ãããã¹ãŠã®ãŠãŒã¶ãŒããã³ã³ã³ãããŒã䜿çšã§ããŸã (RBAC ã®ãªãéçšã¯ã©ã¹ã¿ãŒã䜿çšãã¹ãã§ã¯ãªãããšã«ã€ããŠã¯åŸã§èª¬æããŸã)ã
ããã·ãããŒã¿æå·å
Kubernetes ã®ãã¹ãŠã®æ å ±ãä¿åãããŠãã etcd ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ã§ãã人ã¯ã©ããªãã§ãããã? API çµç±ã§ Secret ãªããžã§ã¯ããèªã¿åãæš©éããªããŠããæ©å¯ããŒã¿ãèªã¿åãããšãã§ããŸãã?
ããŒãžã§ã³ 1.7 以éãKubernetes ã¯ããã·ã ããŒã¿æå·åããµããŒãããŠããŸãã ããã¯ãetcd å ã®æ©å¯æ å ±ããã£ã¹ã¯äžã«æå·åãããŠä¿åãããããŒã¿ããŒã¹ã«çŽæ¥ã¢ã¯ã»ã¹ã§ãããŠãŒã¶ãŒã§ãèªã¿åãããšãã§ããªãããšãæå³ããŸãã 埩å·åããã«ã¯ãKubernetes API ãµãŒããŒã®ã¿ãæã€ããŒãå¿ èŠã§ãã é©åã«æ§æãããã¯ã©ã¹ã¿ãŒã§ã¯ãããã·ãæå·åãæå¹ã«ãªã£ãŠããå¿ èŠããããŸãã
次ã®æ¹æ³ã§ãã¯ã©ã¹ã¿ãŒå ã§ããã·ãæå·åãæ©èœãããã©ããã確èªã§ããŸãã
kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
--experimental-encryption-provider-config=...
Experimental-encryption-provider-config ãã©ã°ã衚瀺ãããªãå Žåã¯ãããã·ãæå·åãæå¹ã«ãªã£ãŠããŸããã Google Kubernetes Engine ãŸãã¯ä»ã® Kubernetes 管çãµãŒãã¹ã䜿çšããå ŽåãããŒã¿ã¯å¥ã®ã¡ã«ããºã ã䜿çšããŠæå·åãããããããã©ã°ã¯ååšããŸããã etcd ã³ã³ãã³ããæå·åãããŠãããã©ããã Kubernetes ãã³ããŒã«ç¢ºèªããŠãã ããã
æ©å¯ããŒã¿ã®ä¿ç®¡
æ©å¯æ§ã®é«ã Secret ãªããžã§ã¯ããªã©ãã¯ã©ã¹ã¿ãŒãã決ããŠåé€ãã¹ãã§ã¯ãªã Kubernetes ãªãœãŒã¹ãããã€ããããŸãã Helm ãããŒãžã£ãŒã«ãã£ãŠæäŸãããã¢ãããŒã·ã§ã³ã䜿çšããŠããªãœãŒã¹ãåé€ãããªãããã«ä¿è·ã§ããŸãã
kind: Secret
metadata:
annotations:
"helm.sh/resource-policy": keep
ç§å¯ãªããžã§ã¯ãã®ç®¡çæŠç¥
åã®ã»ã¯ã·ã§ã³ã®äŸã§ã¯ãæ©å¯ããŒã¿ã¯ã¯ã©ã¹ã¿ãŒã«ä¿åãããçŽåŸã«äžæ£ã¢ã¯ã»ã¹ããä¿è·ãããŸããã ãããããããã§ã¹ã ãã¡ã€ã«ã§ã¯ãã¬ãŒã³ ããã¹ããšããŠä¿åãããŠããŸããã
ããŒãžã§ã³ç®¡çãããŠãããã¡ã€ã«ã«ã¯æ©å¯æ å ±ã決ããŠçœ®ããªãã§ãã ããã Kubernetes ã¯ã©ã¹ã¿ãŒã«é©çšããåã«ããã®æ å ±ãå®å šã«ç®¡çããã³ä¿åããã«ã¯ã©ãããã°ããã§ãããã?
ã¢ããªã±ãŒã·ã§ã³ã§æ©å¯ããŒã¿ãåŠçããããã®ããŒã«ãæŠç¥ãéžæã§ããŸãããå°ãªããšã次ã®è³ªåã«çããå¿ èŠããããŸãã
- æ©å¯ããŒã¿ã¯ã©ãã«ä¿åããã°ã¢ã¯ã»ã¹ãããããªããŸãã?
- ã¢ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ããæ©å¯ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããããã«ããã«ã¯ã©ãããã°ããã§ãããã?
- æ©å¯ããŒã¿ã眮ãæãããç·šéããããããšãã¢ããªã±ãŒã·ã§ã³ã¯ã©ããªãã§ãããã?
èè ã«ã€ããŠ
ãžã§ã³ã»ã¢ã©ã³ãã« ã³ã³ãã¥ãŒã¿æ¥ç㧠30 幎ã®çµéšãæã€ã³ã³ãµã«ã¿ã³ãã§ãã 圌ã¯æ°åã®æ¬ãå·çããŠãããããŸããŸãªåœã®å€ãã®äŒæ¥ãšååããŠãã¯ã©ãŠããã€ãã£ã ã€ã³ãã©ã¹ãã©ã¯ãã£ãš Kubernetes ã«ã€ããŠã¢ããã€ã¹ãè¡ã£ãŠããŸãã äœæã«ã¯ããµãŒãã£ã³ã楜ããã ãããã¹ãã«å°æãåŸæã§ãã¢ããã¥ã¢ãšããŠãã¢ãã匟ãããšãã§ããŸãã ã€ã®ãªã¹ãã³ãŒã³ãŠã©ãŒã«ã®ããšã話ã®ãããªå¥èã«äœãã§ããŸãã
ãžã£ã¹ãã£ã³ã»ããã³ã¬ã¹ â Kubernetes ãšã¯ã©ãŠã ãã¯ãããžãŒã䜿çšãã DevOps ç°å¢ã§åãã·ã¹ãã 管çãšã³ãžãã¢ã 圌ã¯å±å€ã§æéãéãããããã³ãŒããŒã飲ãã ããã«ããé£ã¹ãããã³ã³ãã¥ãŒã¿ãŒã«åº§ã£ããããããšã楜ããã§ããŸãã çŽ æŽãããç«ãšãããã«çŽ æŽããã劻ã§èŠªåã®ãšã€ããªã¢ã³ãšäžç·ã«ãã¯ã·ã³ãã³å·ã·ã¢ãã«ã«äœãã§ããŸãã
» ãã®æ¬ã®è©³çŽ°ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
»
»
Khabrozhiteley ã®å Žåãã¯ãŒãã³äœ¿çšã§ 25% å²åŒ - Kubernetes
çŽçã®æžç±ããæ¯æãããã ããšãé»åæžç±ãé»åã¡ãŒã«ã§éä¿¡ãããŸãã
åºæïŒ habr.com