çŸåšè¡šç€ºããŠããã®ã¯ã次ã®ããŒãžã§ã³åãã®ããã¥ã¡ã³ãã§ããKubernetesããŒãžã§ã³: v1.31
Kubernetes v1.31 ã®ããã¥ã¡ã³ãã¯ç©æ¥µçã«ã¡ã³ããã³ã¹ãããŠããŸãããçŸåšè¡šç€ºãããŠããããŒãžã§ã³ã¯ã¹ãããã·ã§ããã§ããææ°ã®ããã¥ã¡ã³ãã¯ãã¡ãã§ã: ææ°ããŒãžã§ã³
ããŒã ã¹ããŒã¹ã®ããã©ã«ãã®ã¡ã¢ãªãŒèŠæ±ãšå¶éãèšå®ãã
ãã®ããŒãžã§ã¯ãããŒã ã¹ããŒã¹ã®ããã©ã«ãã®ã¡ã¢ãªãŒèŠæ±ãšå¶éãèšå®ããæ¹æ³ã説æããŸãã
Kubernetesã¯ã©ã¹ã¿ãŒã¯ããŒã ã¹ããŒã¹ã«åå²ããããšãã§ããŸããããã©ã«ãã®ã¡ã¢ãªãŒå¶éãæã€ããŒã ã¹ããŒã¹ããããç¬èªã®ã¡ã¢ãªãŒå¶éãæå®ããªãã³ã³ããã§Podãäœæããããšãããšãã³ã³ãããŒã«ãã¬ãŒã³ã¯ãã®ã³ã³ããã«ããã©ã«ãã®ã¡ã¢ãªãŒå¶éãå²ãåœãŠãŸãã
Kubernetesã¯ããã®ãããã¯ã§åŸã»ã©èª¬æããç¹å®ã®æ¡ä»¶äžã§ãããã©ã«ãã®ã¡ã¢ãªãŒèŠæ±ãå²ãåœãŠãŸãã
å§ããåã«
Kubernetesã¯ã©ã¹ã¿ãŒãå¿ èŠããã€ãã®ã¯ã©ã¹ã¿ãŒãšéä¿¡ããããã«kubectlã³ãã³ãã©ã€ã³ããŒã«ãèšå®ãããŠããå¿ èŠããããŸãã ãã®ãã¥ãŒããªã¢ã«ã¯ãã³ã³ãããŒã«ãã¬ãŒã³ã®ãã¹ããšããŠåäœããŠããªãå°ãªããšã2ã€ã®ããŒããæã€ã¯ã©ã¹ã¿ãŒã§å®è¡ããããšãããããããŸãã ãŸã ã¯ã©ã¹ã¿ãŒããªãå Žåãminikubeã䜿ã£ãŠäœæãããã 以äžã®ããããã®Kubernetesãã¬ã€ã°ã©ãŠã³ãã䜿çšã§ããŸã:
ã¯ã©ã¹ã¿ãŒã«ããŒã ã¹ããŒã¹ãäœæããã«ã¯ãã¢ã¯ã»ã¹æš©ãå¿ èŠã§ãã
ã¯ã©ã¹ã¿ãŒã®åããŒãã«ã¯ãæäœã§ã2GiBã®ã¡ã¢ãªãŒãå¿ èŠã§ãã
ããŒã ã¹ããŒã¹ã®äœæ
ãã®æŒç¿ã§äœæãããªãœãŒã¹ãã¯ã©ã¹ã¿ãŒã®ä»ã®éšåããåé¢ãããããã«ãããŒã ã¹ããŒã¹ãäœæããŸãã
kubectl create namespace default-mem-example
LimitRangeãšPodã®äœæ
以äžã¯ãLimitRangeã®ãããã§ã¹ãã®äŸã§ãããã®ãããã§ã¹ãã§ã¯ãããã©ã«ãã®ã¡ã¢ãªãŒèŠæ±ãšããã©ã«ãã®ã¡ã¢ãªãŒå¶éãæå®ããŠããŸãã
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
spec:
limits:
- default:
memory: 512Mi
defaultRequest:
memory: 256Mi
type: Container
default-mem-exampleããŒã ã¹ããŒã¹ã«LimitRangeãäœæããŸã:
kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults.yaml --namespace=default-mem-example
default-mem-exampleããŒã ã¹ããŒã¹ã§Podãäœæãããã®Podå ã®ã³ã³ãããã¡ã¢ãªãŒèŠæ±ãšã¡ã¢ãªãŒå¶éã®å€ãç¬èªã«æå®ããªãå Žåãã³ã³ãããŒã«ãã¬ãŒã³ã¯ããã©ã«ãå€ã®ã¡ã¢ãªãŒèŠæ±256MiBãšã¡ã¢ãªãŒå¶é512MiBãé©çšããŸãã
以äžã¯ãã³ã³ããã1ã€æã€Podã®ãããã§ã¹ãã®äŸã§ããã³ã³ããã¯ãã¡ã¢ãªãŒèŠæ±ãšã¡ã¢ãªãŒå¶éãæå®ããŠããŸããã
apiVersion: v1
kind: Pod
metadata:
name: default-mem-demo
spec:
containers:
- name: default-mem-demo-ctr
image: nginx
PodãäœæããŸã:
kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults-pod.yaml --namespace=default-mem-example
Podã®è©³çްæ å ±ã衚瀺ããŸã:
kubectl get pod default-mem-demo --output=yaml --namespace=default-mem-example
ãã®åºåã¯ãPodã®ã³ã³ããã®ã¡ã¢ãªãŒèŠæ±ã256MiBã§ãã¡ã¢ãªãŒå¶éã512MiBã§ããããšã瀺ããŠããŸãã ãããã¯LimitRangeã§æå®ãããããã©ã«ãå€ã§ãã
containers:
- image: nginx
imagePullPolicy: Always
name: default-mem-demo-ctr
resources:
limits:
memory: 512Mi
requests:
memory: 256Mi
Podãåé€ããŸã:
kubectl delete pod default-mem-demo --namespace=default-mem-example
ã³ã³ããã®å¶éãæå®ããèŠæ±ãæå®ããªãå Žå
以äžã¯1ã€ã®ã³ã³ãããæã€Podã®ãããã§ã¹ãã§ããã³ã³ããã¯ã¡ã¢ãªãŒå¶éãæå®ããŸãããã¡ã¢ãªãŒèŠæ±ã¯æå®ããŸããã
apiVersion: v1
kind: Pod
metadata:
name: default-mem-demo-2
spec:
containers:
- name: default-mem-demo-2-ctr
image: nginx
resources:
limits:
memory: "1Gi"
PodãäœæããŸã:
kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults-pod-2.yaml --namespace=default-mem-example
Podã®è©³çްæ å ±ã衚瀺ããŸã:
kubectl get pod default-mem-demo-2 --output=yaml --namespace=default-mem-example
ãã®åºåã¯ãã³ã³ããã®ã¡ã¢ãªãŒèŠæ±ããã®ã¡ã¢ãªãŒå¶éã«äžèŽããããã«èšå®ãããŠããããšã瀺ããŠããŸãã ã³ã³ããã«ã¯ããã©ã«ãã®ã¡ã¢ãªãŒèŠæ±å€ã§ãã256Miãå²ãåœãŠãããŠããªãããšã«æ³šæããŠãã ããã
resources:
limits:
memory: 1Gi
requests:
memory: 1Gi
ã³ã³ããã®èŠæ±ãæå®ããå¶éãæå®ããªãå Žå
1ã€ã®ã³ã³ãããæã€Podã®ãããã§ã¹ãã§ããã³ã³ããã¯ã¡ã¢ãªãŒèŠæ±ãæå®ããŸãããã¡ã¢ãªãŒå¶éã¯æå®ããŸããã
apiVersion: v1
kind: Pod
metadata:
name: default-mem-demo-3
spec:
containers:
- name: default-mem-demo-3-ctr
image: nginx
resources:
requests:
memory: "128Mi"
PodãäœæããŸã:
kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults-pod-3.yaml --namespace=default-mem-example
Podã®è©³çްæ å ±ã衚瀺ããŸã:
kubectl get pod default-mem-demo-3 --output=yaml --namespace=default-mem-example
ãã®åºåã¯ãã³ã³ããã®ã¡ã¢ãªãŒèŠæ±ããã³ã³ããã®ãããã§ã¹ãã§æå®ãããå€ã«èšå®ãããŠããããšã瀺ããŠããŸãã ã³ã³ããã¯512MiB以äžã®ã¡ã¢ãªãŒã䜿çšããããã«å¶éãããŠããŠãããã¯ããŒã ã¹ããŒã¹ã®ããã©ã«ãã®ã¡ã¢ãªãŒå¶éãšäžèŽããŸãã
resources:
limits:
memory: 512Mi
requests:
memory: 128Mi
ããã©ã«ãã®ã¡ã¢ãªãŒå¶éãšèŠæ±ã®åæ©
ããŒã ã¹ããŒã¹ã«ã¡ã¢ãªãŒãªãœãŒã¹ã¯ã©ãŒã¿ãèšå®ãããŠããå Žåãã¡ã¢ãªãŒå¶éã®ããã©ã«ãå€ãèšå®ããŠãããšäŸ¿å©ã§ãã
以äžã¯ãªãœãŒã¹ã¯ã©ãŒã¿ãããŒã ã¹ããŒã¹ã«èª²ãå¶éã®ãã¡ã®2ã€ã§ãã
- ããŒã ã¹ããŒã¹ã§å®è¡ããããã¹ãŠã®Podã«ã€ããŠãPodãšãã®åã³ã³ããã«ã¡ã¢ãªãŒå¶éãèšããå¿ èŠããããŸã(Podå ã®ãã¹ãŠã®ã³ã³ããã«å¯ŸããŠã¡ã¢ãªãŒå¶éãæå®ãããšãKubernetesã¯ãã®ã³ã³ããã®å¶éãåèšããããšã§Podã¬ãã«ã®ã¡ã¢ãªãŒå¶éãæšæž¬ããããšãã§ããŸã)ã
- ã¡ã¢ãªãŒå¶éã¯ãåœè©²Podãã¹ã±ãžã¥ãŒã«ãããŠããããŒãã®ãªãœãŒã¹äºçŽãé©çšããŸããããŒã ã¹ããŒã¹å ã®ãã¹ãŠã®Podã«å¯ŸããŠäºçŽãããã¡ã¢ãªãŒã®ç·éã¯ãæå®ãããå¶éãè¶ ããŠã¯ãªããŸããã
- ãŸããããŒã ã¹ããŒã¹å ã®ãã¹ãŠã®Podãå®éã«äœ¿çšããã¡ã¢ãªãŒã®ç·éããæå®ãããå¶éãè¶ ããŠã¯ãªããŸããã
LimitRangeã®è¿œå æ:
ã³ã³ãããå«ãããã®ããŒã ã¹ããŒã¹å ã®ããããã®Podãç¬èªã®ã¡ã¢ãªãŒå¶éãæå®ããŠããªãå Žåãã³ã³ãããŒã«ãã¬ãŒã³ã¯ãã®ã³ã³ããã«ããã©ã«ãã®ã¡ã¢ãªãŒå¶éãé©çšããã¡ã¢ãªãŒã®ResourceQuotaã«ãã£ãŠå¶éãããŠããããŒã ã¹ããŒã¹å ã§Podãå®è¡ã§ããããã«ããŸãã
ã¯ãªãŒã³ã¢ãã
ããŒã ã¹ããŒã¹ãåé€ããŸã:
kubectl delete namespace default-mem-example
次ã®é ç®
ã¯ã©ã¹ã¿ãŒç®¡çè åã
-
Namespaceã«å¯Ÿããæå°ããã³æå€§ã¡ã¢ãªãŒå¶çŽã®æ§æ
-
Configure Minimum and Maximum CPU Constraints for a Namespace