แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แž€แŸ’แž“แžปแž„แžšแž™แŸˆแž–แŸแž›แž‡แžถแž…แŸ’แžšแžพแž“แž†แŸ’แž“แžถแŸ†แž“แŸƒแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ Kubernetes แž€แŸ’แž“แžปแž„แž€แžถแžšแž•แž›แžทแž แž™แžพแž„แž”แžถแž“แž”แŸ’แžšแž˜แžผแž›แžšแžฟแž„แž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž‡แžถแž…แŸ’แžšแžพแž“แžขแŸ†แž–แžธแžšแž”แŸ€แž”แžŠแŸ‚แž›แž€แŸ†แž แžปแžŸแž“แŸ…แž€แŸ’แž“แžปแž„แžŸแž˜แžถแžŸแž’แžถแžแžปแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž•แŸ’แžŸแŸแž„แŸ—แž“แžถแŸ†แž‘แŸ…แžšแž€แž•แž›แžœแžทแž”แžถแž€แž˜แžทแž“แž›แŸ’แžข แž“แžทแž„/แžฌแž˜แžทแž“แžขแžถแž…แž™แž›แŸ‹แž”แžถแž“แžŠแŸ‚แž›แž”แŸ‰แŸ‡แž–แžถแž›แŸ‹แžŠแž›แŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž“แŸƒแž’แžปแž„ แž“แžทแž„แž•แžแŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡ แž™แžพแž„แž”แžถแž“แž’แŸ’แžœแžพแž€แžถแžšแž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž“แžผแžœแžขแŸ’แžœแžธแžŠแŸ‚แž›แžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแž แžฌแž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž˜แžฝแž™แž…แŸ†แž“แžฝแž“แŸ” แž‘แŸ„แŸ‡แž”แžธแž‡แžถแžขแŸ’แž“แž€แž˜แžทแž“แž˜แžถแž“แžŸแŸ†แžŽแžถแž„แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแžถแž“แŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแž‡แžฝแž”แž”แŸ’แžšแž‘แŸ‡แžŸแŸ’แžแžถแž“แž—แžถแž–แž”แŸ‚แž”แž“แŸแŸ‡แž€แŸแžŠแŸ„แž™ แž€แžถแžšแžขแžถแž“แžขแŸ†แž–แžธแžšแžฟแž„แžšแžถแžœแžšแž€แžแŸ’แž›แžธแŸ—แž‡แžถแž–แžทแžŸแŸแžŸ "แžŠแŸƒแž‘แžธแž˜แžฝแž™" - แžแŸ‚แž„แžแŸ‚แž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž˜แŸ‚แž“แž‘แŸ?..

แžšแžฟแž„ 1. Supercronic แž“แžทแž„ Docker แž–แŸ’แž™แžฝแžš

แž“แŸ…แž›แžพแž…แž„แŸ’แž€แŸ„แž˜แž˜แžฝแž™ แž™แžพแž„แž”แžถแž“แž‘แž‘แžฝแž› Docker แž‡แžถแž”แŸ‹แž‚แžถแŸ†แž„แž‡แžถแž‘แŸ€แž„แž‘แžถแžแŸ‹ แžŠแŸ‚แž›แžšแŸ†แžแžถแž“แžŠแž›แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž’แž˜แŸ’แž˜แžแžถแžšแž”แžŸแŸ‹แž…แž„แŸ’แž€แŸ„แž˜แŸ” แž€แŸ’แž“แžปแž„แž–แŸแž›แž‡แžถแž˜แžฝแž™แž‚แŸ’แž“แžถแž“แŸแŸ‡ แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแžŸแž„แŸ’แž€แŸแžแžƒแžพแž‰แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแžแŸ‹แž แŸแžแžป DockerแŸ–

level=error msg="containerd: start init process" error="exit status 2: "runtime/cgo: pthread_create failed: No space left on device
SIGABRT: abort
PC=0x7f31b811a428 m=0

goroutine 0 [idle]:

goroutine 1 [running]:
runtime.systemstack_switch() /usr/local/go/src/runtime/asm_amd64.s:252 fp=0xc420026768 sp=0xc420026760
runtime.main() /usr/local/go/src/runtime/proc.go:127 +0x6c fp=0xc4200267c0 sp=0xc420026768
runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc4200267c8 sp=0xc4200267c0

goroutine 17 [syscall, locked to thread]:
runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1

โ€ฆ

แžขแŸ’แžœแžธแžŠแŸ‚แž›แž™แžพแž„แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž”แŸ†แž•แžปแžแžขแŸ†แž–แžธแž€แŸ†แž แžปแžŸแž“แŸแŸ‡แž‚แžบแžŸแžถแžšแŸ– pthread_create failed: No space left on device. แž€แžถแžšแžŸแžทแž€แŸ’แžŸแžถแžšแž แŸแžŸ แžฏแž€แžŸแžถแžš แž”แžถแž“แž–แž“แŸ’แž™แž›แŸ‹แžแžถ Docker แž˜แžทแž“แžขแžถแž…แž”แŸ†แž”แŸ‚แž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แžถแž“แž‘แŸ แžŠแŸ‚แž›แž‡แžถแž˜แžผแž›แž แŸแžแžปแžŠแŸ‚แž›แžœแžถแž”แž„แŸ’แž€แž€แž‡แžถแž”แŸ’แžšแž…แžถแŸ†แŸ”

แž€แŸ’แž“แžปแž„โ€‹แž€แžถแžšโ€‹แžแŸ’แžšแžฝแžโ€‹แž–แžทแž“แžทแžแŸ’แž™ แžšแžผแž”แž—แžถแž–โ€‹แžแžถแž„โ€‹แž€แŸ’แžšแŸ„แž˜โ€‹แžแŸ’แžšแžผแžœโ€‹แž“แžนแž„โ€‹แžขแŸ’แžœแžธโ€‹แžŠแŸ‚แž›โ€‹แž€แŸ†แž–แžปแž„โ€‹แž€แžพแžโ€‹แžกแžพแž„แŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แžŸแŸ’แžแžถแž“แž—แžถแž–แžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแžŸแž„แŸ’แž€แŸแžแžƒแžพแž‰แž“แŸ…แž›แžพแžแŸ’แž“แžถแŸ†แž„แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แž“แŸ…แž…แŸ†แžŽแžปแž…แžŠแžผแž…แž‚แŸ’แž“แžถแž™แžพแž„แžƒแžพแž‰แŸ–

root@kube-node-1 ~ # ps auxfww | grep curl -c
19782
root@kube-node-1 ~ # ps auxfww | grep curl | head
root     16688  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root     17398  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root     16852  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root      9473  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root      4664  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root     30571  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root     24113  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root     16475  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root      7176  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>
root      1090  0.0  0.0      0     0 ?        Z    Feb06   0:00      |       _ [curl] <defunct>

แžœแžถแž”แžถแž“แž”แŸ’แžšแŸ‚แž€แŸ’แž›แžถแž™แžแžถแžฅแžšแžทแž™แžถแž”แžแž“แŸแŸ‡แž‚แžบแž‡แžถแž•แž›แžœแžทแž”แžถแž€แž“แŸƒ pod แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™ supercronic (แžงแž”แž€แžšแžŽแŸแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ Go แžŠแŸ‚แž›แž™แžพแž„แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžถแžšแž„แžถแžš cron แž“แŸ…แž€แŸ’แž“แžปแž„ pods)แŸ–

 _ docker-containerd-shim 833b60bb9ff4c669bb413b898a5fd142a57a21695e5dc42684235df907825567 /var/run/docker/libcontainerd/833b60bb9ff4c669bb413b898a5fd142a57a21695e5dc42684235df907825567 docker-runc
|   _ /usr/local/bin/supercronic -json /crontabs/cron
|       _ /usr/bin/newrelic-daemon --agent --pidfile /var/run/newrelic-daemon.pid --logfile /dev/stderr --port /run/newrelic.sock --tls --define utilization.detect_aws=true --define utilization.detect_azure=true --define utilization.detect_gcp=true --define utilization.detect_pcf=true --define utilization.detect_docker=true
|       |   _ /usr/bin/newrelic-daemon --agent --pidfile /var/run/newrelic-daemon.pid --logfile /dev/stderr --port /run/newrelic.sock --tls --define utilization.detect_aws=true --define utilization.detect_azure=true --define utilization.detect_gcp=true --define utilization.detect_pcf=true --define utilization.detect_docker=true -no-pidfile
|       _ [newrelic-daemon] <defunct>
|       _ [curl] <defunct>
|       _ [curl] <defunct>
|       _ [curl] <defunct>
โ€ฆ

แž”แž‰แŸ’แž แžถแž‚แžบแž“แŸแŸ‡แŸ– แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แž€แžทแž…แŸ’แž…แž€แžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž€แŸ’แž“แžปแž„ supercronic แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แž„แŸ’แž€แžพแžแžŠแŸ„แž™แžœแžถแŸ” แž˜แžทแž“แžขแžถแž…แž”แž‰แŸ’แž…แž”แŸ‹แž”แžถแž“แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœแŸ”, แž”แŸ’แžšแŸ‚แž‘แŸ…แž‡แžถ แžแŸ’แž˜แŸ„แž…แž†แŸ….

แž€แžถแžšแž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แŸ– แžŠแžพแž˜แŸ’แž”แžธแžขแŸ„แž™แž€แžถแž“แŸ‹แžแŸ‚แž…แŸ’แž”แžถแžŸแŸ‹แž›แžถแžŸแŸ‹ แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžŠแŸ„แž™แž€แžทแž…แŸ’แž…แž€แžถแžš cron แž”แŸ‰แžปแž“แŸ’แžแŸ‚ supercronic แž˜แžทแž“แž˜แŸ‚แž“แž‡แžถแž”แŸ’แžšแž–แŸแž“แŸ’แž’ init แž แžพแž™แž˜แžทแž“แžขแžถแž… "แž‘แž‘แžฝแž›แž™แž€" แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ‚แž›แž€แžผแž“แžšแž”แžŸแŸ‹แžœแžถแž”แž„แŸ’แž€แžพแžแž”แžถแž“แž“แŸ„แŸ‡แž‘แŸแŸ” แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แžŸแž‰แŸ’แž‰แžถ SIGHUP แžฌ SIGTERM แžแŸ’แžšแžผแžœแž”แžถแž“แž›แžพแž€แžกแžพแž„ แž–แžฝแž€แžœแžถแž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžผแž“แž”แž“แŸ’แžแž‘แŸ…แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžปแž˜แžถแžšแž‘แŸ แžŠแŸ‚แž›แž”แžŽแŸ’แžแžถแž›แžฑแŸ’แž™แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžปแž˜แžถแžšแž˜แžทแž“แž”แž‰แŸ’แž…แž”แŸ‹ แž“แžทแž„แžŸแŸ’แžแžทแžแž€แŸ’แž“แžปแž„แžŸแŸ’แžแžถแž“แž—แžถแž–แžแŸ’แž˜แŸ„แž…แž†แŸ…แŸ” แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธแžขแŸ’แžœแžธแŸ—แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸแŸ‡แžงแž‘แžถแž แžšแžŽแŸแž“แŸ…แž€แŸ’แž“แžปแž„ แžขแžแŸ’แžแž”แž‘แž”แŸ‚แž”แž“แŸแŸ‡.

แž˜แžถแž“แžœแžทแž’แžธแž–แžธแžšแž™แŸ‰แžถแž„แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถแŸ–

  1. แž‡แžถแžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แžŽแŸ’แžแŸ„แŸ‡แžขแžถแžŸแž“แŸ’แž“ - แž”แž„แŸ’แž€แžพแž“แž…แŸ†แž“แžฝแž“ PIDs แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž“แŸ…แž…แŸ†แžŽแžปแž…แžแŸ‚แž˜แžฝแž™แž€แŸ’แž“แžปแž„แž–แŸแž›แžœแŸแž›แžถแŸ–
           /proc/sys/kernel/pid_max (since Linux 2.5.34)
                  This file specifies the value at which PIDs wrap around (i.e., the value in this file is one greater than the maximum PID).  PIDs greater than this  value  are  not  alloโ€
                  cated;  thus, the value in this file also acts as a system-wide limit on the total number of processes and threads.  The default value for this file, 32768, results in the
                  same range of PIDs as on earlier kernels
  2. แžฌแž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž—แžถแžšแž€แžทแž…แŸ’แž…แž“แŸ…แž€แŸ’แž“แžปแž„ supercronic แž˜แžทแž“แž˜แŸ‚แž“แžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž‘แŸ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž”แŸ’แžšแžพแžŠแžผแž…แž‚แŸ’แž“แžถแŸ” แž’แžธแž“แžธแžŠแŸ‚แž›แžขแžถแž…แž”แž‰แŸ’แž…แž”แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แžถแž“แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แž“แžทแž„แž˜แžทแž“แž”แž„แŸ’แž€แž€แŸ†แžŽแžพแž zombies แŸ”

แžšแžฟแž„ 2. "Zombies" แž“แŸ…แž–แŸแž›แž›แžปแž” cgroup

Kubelet แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŸแŸŠแžธแž—แžธแž™แžผแž…แŸ’แžšแžพแž“แŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แž‚แŸ’แž˜แžถแž“แž“แžšแžŽแžถแž˜แŸ’แž“แžถแž€แŸ‹แž…แžผแž›แž…แžทแžแŸ’แžแžšแžฟแž„แž“แŸแŸ‡แž‘แŸ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž™แžพแž„แž”แŸ†แž–แžถแž€แŸ‹แžขแžถแžœแžปแž’แžแŸ’แž›แžฝแž“แžฏแž„ แž›แŸ’แžข แž แžพแž™แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถแŸ” แž›แž‘แŸ’แž’แž•แž›แž“แŸƒแž€แžถแžšแžŸแŸŠแžพแž”แžขแž„แŸ’แž€แŸแžแž˜แžถแž“แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ–

  • Kubelet แž…แŸ†แžŽแžถแž™แž–แŸแž›แž…แŸ’แžšแžพแž“แž‡แžถแž„แž˜แžฝแž™แž—แžถแž‚แž”แžธแž“แŸƒ CPU แžšแž”แžŸแŸ‹แžแŸ’แž›แžฝแž“แžŠแžพแž˜แŸ’แž”แžธแž‘แžถแž‰แž‘แžทแž“แŸ’แž“แž“แŸแž™แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แž–แžธ cgroup แž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ–

    แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

  • แž“แŸ…แž€แŸ’แž“แžปแž„แž”แž‰แŸ’แž‡แžธแžŸแŸ†แž”แžปแžแŸ’แžšแžšแžฝแž˜แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแžแžบแžŽแŸ‚แž› แžขแŸ’แž“แž€แžขแžถแž…แžšแž€แž”แžถแž“ แž€แžถแžšแž–แžทแž—แžถแž€แŸ’แžŸแžถแžขแŸ†แž–แžธแž”แž‰แŸ’แž แžถ. แžŸแžšแžปแž”แž˜แž€ แž…แŸ†แžŽแžปแž…แž“แŸแŸ‡แž˜แž€แž›แžพแž…แŸ†แžŽแžปแž…แž“แŸแŸ‡แŸ– แžฏแž€แžŸแžถแžš tmpfs แž•แŸ’แžŸแŸแž„แŸ— แž“แžทแž„แžšแž”แžŸแŸ‹แžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž•แŸ’แžŸแŸแž„แž‘แŸ€แžแž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแž€แž…แŸแž‰แž‘แžถแŸ†แž„แžŸแŸ’แžšแžปแž„แž–แžธแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž‘แŸแŸ” แž“แŸ…แž–แŸแž›แž›แžปแž” cgroup แžขแŸ’แžœแžธแžŠแŸ‚แž›แž‚แŸแž แŸ…แžแžถ memcg zombie. แž˜แžทแž“แž™แžผแžšแž˜แžทแž“แž†แžถแž”แŸ‹ แž–แžฝแž€แž‚แŸแž“แžนแž„แžแŸ’แžšแžผแžœแž›แžปแž”แž…แŸแž‰แž–แžธแžƒแŸ’แž›แžถแŸ†แž„แžŸแž˜แŸ’แž„แžถแžแŸ‹แž‘แŸ†แž–แŸแžš แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžถแž“แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แž…แŸ’แžšแžพแž“แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ แž แžพแž™แžแžบแžŽแŸ‚แž›แž˜แžทแž“แžƒแžพแž‰แž…แŸ†แžŽแžปแž…แž€แŸ’แž“แžปแž„แž€แžถแžšแžแŸ’แž‡แŸ‡แžแŸ’แž‡แžถแž™แž–แŸแž›แžœแŸแž›แžถแž€แŸ’แž“แžปแž„แž€แžถแžšแž›แžปแž”แž–แžฝแž€แžœแžถแž‘แŸแŸ” แž“แŸ„แŸ‡โ€‹แž แžพแž™โ€‹แž‡แžถโ€‹แž˜แžผแž›โ€‹แž แŸแžแžปโ€‹แžŠแŸ‚แž›โ€‹แž–แžฝแž€โ€‹แž‚แŸโ€‹แž“แŸ…โ€‹แžแŸ‚โ€‹แž”แž“แŸ’แžโ€‹แž”แŸ’แžšแž˜แžผแž›โ€‹แž•แŸ’แžแžปแŸ†แŸ” แž แŸแžแžปแžขแŸ’แžœแžธแž”แžถแž“แž‡แžถแžšแžฟแž„แž“แŸแŸ‡แž€แžพแžแžกแžพแž„? แž“แŸแŸ‡แž‚แžบแž‡แžถแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž„แžถแžš cron แžŠแŸ‚แž›แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž„แžถแžšแžแŸ’แž˜แžธแžฅแžแžˆแž”แŸ‹แžˆแžš แž“แžทแž„แž‡แžถแž˜แžฝแž™แž–แžฝแž€แž‚แŸแž“แžผแžœแž•แžแžแž›แžแŸ’แž˜แžธแŸ—แŸ” แžŠแžผแž…แŸ’แž“แŸแŸ‡ cgroups แžแŸ’แž˜แžธโ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž”แž„แŸ’แž€แžพแžโ€‹แžกแžพแž„โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž€แžปแž„แžแžบแž“แŸแžšโ€‹แž€แŸ’แž“แžปแž„โ€‹แž–แžฝแž€โ€‹แžœแžถ แžŠแŸ‚แž›โ€‹แž“แžนแž„โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž›แžปแž”โ€‹แž€แŸ’แž“แžปแž„โ€‹แž–แŸแž›โ€‹แž†แžถแž”แŸ‹แŸ—แŸ”
  • แž แŸแžแžปแžขแŸ’แžœแžธแž”แžถแž“แž‡แžถ cAdvisor แž“แŸ… kubelet แžแžถแžแž–แŸแž›แž…แŸ’แžšแžพแž“แž˜แŸ’แž›แŸ‰แŸแŸ‡? แž“แŸแŸ‡แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž˜แžพแž›แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžŠแŸแžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแžแŸ” time cat /sys/fs/cgroup/memory/memory.stat. แž”แŸ’แžšแžŸแžทแž“แž”แžพแž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แžŠแŸ‚แž›แž˜แžถแž“แžŸแžปแžแž—แžถแž–แž›แŸ’แžขแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž…แŸ†แžŽแžถแž™แž–แŸแž› 0,01 แžœแžทแž“แžถแž‘แžธแž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž“แŸ…แž›แžพ cron02 แžŠแŸ‚แž›แž˜แžถแž“แž”แž‰แŸ’แž แžถแžœแžถแžแŸ’แžšแžผแžœแž…แŸ†แžŽแžถแž™แž–แŸแž› 1,2 แžœแžทแž“แžถแž‘แžธแŸ” แžšแžฟแž„แž“แŸแŸ‡แž‚แžบแžแžถ cAdvisor แžŠแŸ‚แž›แžขแžถแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แž–แžธ sysfs แž™แžบแžแžŽแžถแžŸแŸ‹ แž–แŸ’แž™แžถแž™แžถแž˜แž‚แžทแžแž‚แžผแžšแž–แžธแžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แžŠแŸ‚แž›แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„ cgroups zombie แŸ”
  • แžŠแžพแž˜แŸ’แž”แžธแž›แžปแž” zombies แž…แŸแž‰แžŠแŸ„แž™แž”แž„แŸ’แžแŸ† แž™แžพแž„แž”แžถแž“แž–แŸ’แž™แžถแž™แžถแž˜แžŸแž˜แŸ’แžขแžถแžแžƒแŸ’แž›แžถแŸ†แž„แžŸแž˜แŸ’แž„แžถแžแŸ‹ แžŠแžผแž…แžŠแŸ‚แž›แž”แžถแž“แžŽแŸ‚แž“แžถแŸ†แž“แŸ…แž€แŸ’แž“แžปแž„ LKMLแŸ– sync; echo 3 > /proc/sys/vm/drop_caches, - แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžแžบแžŽแŸ‚แž›แž”แŸ’แžšแŸ‚แž‘แŸ…แž‡แžถแžŸแŸ’แž˜แžปแž‚แžŸแŸ’แž˜แžถแž‰แž‡แžถแž„แž แžพแž™แž”แžถแž“แž”แžปแž€แžกแžถแž“แŸ”

แžขแŸ’แžœแžธโ€‹แžŠแŸ‚แž›โ€‹แžแŸ’แžšแžผแžœแž’แŸ’แžœแžพ? แž”แž‰แŸ’แž แžถแž€แŸ†แž–แžปแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž‡แžฝแžŸแž‡แžปแž› (แž”แŸ’แžแŸแž‡แŸ’แž‰แžถแž…แžทแžแŸ’แžแž“แžทแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแžŸแžผแž˜แž˜แžพแž› แž”แž‰แŸ’แž…แŸแž‰แžŸแžถแžš) แž€แžถแžšแžขแžถแž”แŸ‹แžŠแŸแžแžแžบแžŽแŸ‚แž› Linux แžšแž แžผแžแžŠแž›แŸ‹แž€แŸ†แžŽแŸ‚ 4.16 แŸ”

แž”แŸ’แžšแžœแžแŸ’แžแžท 3. Systemd แž“แžทแž„ mount แžšแž”แžŸแŸ‹แžœแžถแŸ”

แž‡แžถแžแŸ’แž˜แžธแž˜แŸ’แžแž„แž‘แŸ€แž kubelet แž€แŸ†แž–แžปแž„แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž’แž“แž’แžถแž“แž…แŸ’แžšแžพแž“แž–แŸแž€แž“แŸ…แž›แžพแžแŸ’แž“แžถแŸ†แž„แž˜แžฝแž™แž…แŸ†แž“แžฝแž“ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž–แŸแž›แž“แŸแŸ‡แžœแžถแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แž…แŸ’แžšแžพแž“แž–แŸแž€แŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แžœแžถแž”แžถแž“แž”แž„แŸ’แž แžถแž‰แžแžถแž˜แžถแž“แž”แž‰แŸ’แž แžถแž‡แžถแž˜แžฝแž™ systemd แžŠแŸ‚แž›แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„ Ubuntu 16.04 แž แžพแž™แžœแžถแž€แžพแžแžกแžพแž„แž“แŸ…แž–แŸแž›แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž˜แŸ‰แŸ„แž“แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹ subPath แž–แžธ ConfigMaps แžฌแžขแžถแžแŸŒแž€แŸ†แž”แžถแŸ†แž„แŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž–แžผแž€แž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹แž€แžถแžšแž„แžถแžšแžšแž”แžŸแŸ‹แžแŸ’แž›แžฝแž“แŸ” แžŸแŸแžœแžถแž€แž˜แŸ’แž˜ systemd แž“แžทแž„แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžšแž”แžŸแŸ‹แžœแžถแž“แŸ…แžแŸ‚แž˜แžถแž“ แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแž–แŸแž“แŸ’แž’แŸ” แž™แžผแžš แŸ— แž‘แŸ…แž…แŸ†แž“แžฝแž“แžŠแŸแž…แŸ’แžšแžพแž“แž“แŸƒแž–แžฝแž€แž‚แŸแž€แž€แž€แžปแž‰แŸ” แž˜แžถแž“แž”แž‰แŸ’แž แžถแž›แžพแž”แŸ’แžšแž’แžถแž“แž”แž‘แž“แŸแŸ‡แŸ–

  1. #แŸฅแŸฉแŸกแŸฆ;
  2. kubernetes #57345.

...แž…แžปแž„แž€แŸ’แžšแŸ„แž™แžŠแŸ‚แž›แžŸแŸ†แžŠแŸ…แž›แžพ PR แž“แŸ…แž€แŸ’แž“แžปแž„ systemd: #7811 (แž”แž‰แŸ’แž แžถแž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแž–แŸแž“แŸ’แž’ - #7798).

แž”แž‰แŸ’แž แžถแž›แŸ‚แž„แž˜แžถแž“แž‘แŸ€แžแž แžพแž™ Ubuntu 18.04 แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แž„แŸ‹แž”แž“แŸ’แžแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ Ubuntu 16.04 แžขแŸ’แž“แž€แž”แŸ’แžšแž แŸ‚แž›แž‡แžถแž™แž›แŸ‹แžแžถแžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แžŽแŸ’แžŠแŸ„แŸ‡แžขแžถแžŸแž“แŸ’แž“แžšแž”แžŸแŸ‹แž™แžพแž„แž›แžพแž”แŸ’แžšแž’แžถแž“แž”แž‘แž“แŸแŸ‡แž˜แžถแž“แž”แŸ’แžšแž™แŸ„แž‡แž“แŸแŸ”

แžŠแžผแž…แŸ’แž“แŸแŸ‡แž™แžพแž„แž”แžถแž“แž”แž„แŸ’แž€แžพแž DaemonSet แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜:

---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  labels:
    app: systemd-slices-cleaner
  name: systemd-slices-cleaner
  namespace: kube-system
spec:
  updateStrategy:
    type: RollingUpdate
  selector:
    matchLabels:
      app: systemd-slices-cleaner
  template:
    metadata:
      labels:
        app: systemd-slices-cleaner
    spec:
      containers:
      - command:
        - /usr/local/bin/supercronic
        - -json
        - /app/crontab
        Image: private-registry.org/systemd-slices-cleaner/systemd-slices-cleaner:v0.1.0
        imagePullPolicy: Always
        name: systemd-slices-cleaner
        resources: {}
        securityContext:
          privileged: true
        volumeMounts:
        - name: systemd
          mountPath: /run/systemd/private
        - name: docker
          mountPath: /run/docker.sock
        - name: systemd-etc
          mountPath: /etc/systemd
        - name: systemd-run
          mountPath: /run/systemd/system/
        - name: lsb-release
          mountPath: /etc/lsb-release-host
      imagePullSecrets:
      - name: antiopa-registry
      priorityClassName: cluster-low
      tolerations:
      - operator: Exists
      volumes:
      - name: systemd
        hostPath:
          path: /run/systemd/private
      - name: docker
        hostPath:
          path: /run/docker.sock
      - name: systemd-etc
        hostPath:
          path: /etc/systemd
      - name: systemd-run
        hostPath:
          path: /run/systemd/system/
      - name: lsb-release
        hostPath:
          path: /etc/lsb-release

... แž แžพแž™แžœแžถแž”แŸ’แžšแžพแžŸแŸ’แž‚แŸ’แžšแžธแž”แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ–

#!/bin/bash

# we will work only on xenial
hostrelease="/etc/lsb-release-host"
test -f ${hostrelease} && grep xenial ${hostrelease} > /dev/null || exit 0

# sleeping max 30 minutes to dispense load on kube-nodes
sleep $((RANDOM % 1800))

stoppedCount=0
# counting actual subpath units in systemd
countBefore=$(systemctl list-units | grep subpath | grep "run-" | wc -l)
# let's go check each unit
for unit in $(systemctl list-units | grep subpath | grep "run-" | awk '{print $1}'); do
  # finding description file for unit (to find out docker container, who born this unit)
  DropFile=$(systemctl status ${unit} | grep Drop | awk -F': ' '{print $2}')
  # reading uuid for docker container from description file
  DockerContainerId=$(cat ${DropFile}/50-Description.conf | awk '{print $5}' | cut -d/ -f6)
  # checking container status (running or not)
  checkFlag=$(docker ps | grep -c ${DockerContainerId})
  # if container not running, we will stop unit
  if [[ ${checkFlag} -eq 0 ]]; then
    echo "Stopping unit ${unit}"
    # stoping unit in action
    systemctl stop $unit
    # just counter for logs
    ((stoppedCount++))
    # logging current progress
    echo "Stopped ${stoppedCount} systemd units out of ${countBefore}"
  fi
done

... แž แžพแž™แžœแžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแŸ€แž„แžšแžถแž›แŸ‹ 5 แž“แžถแž‘แžธแž˜แŸ’แžแž„แžŠแŸ„แž™แž”แŸ’แžšแžพ supercronic แžŠแŸ‚แž›แž”แžถแž“แžšแŸ€แž”แžšแžถแž”แŸ‹แž–แžธแž˜แžปแž“แŸ” Dockerfile แžšแž”แžŸแŸ‹แžœแžถแž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ–

FROM ubuntu:16.04
COPY rootfs /
WORKDIR /app
RUN apt-get update && 
    apt-get upgrade -y && 
    apt-get install -y gnupg curl apt-transport-https software-properties-common wget
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" && 
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && 
    apt-get update && 
    apt-get install -y docker-ce=17.03.0*
RUN wget https://github.com/aptible/supercronic/releases/download/v0.1.6/supercronic-linux-amd64 -O 
    /usr/local/bin/supercronic && chmod +x /usr/local/bin/supercronic
ENTRYPOINT ["/bin/bash", "-c", "/usr/local/bin/supercronic -json /app/crontab"]

แžšแžฟแž„แž‘แžธ 4. แž€แžถแžšแž”แŸ’แžšแž€แžฝแžแž”แŸ’แžšแž‡แŸ‚แž„แž“แŸ…แž–แŸแž›แž€แŸ†แžŽแžแŸ‹แž–แŸแž› pods

แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžƒแžพแž‰แžแžถแŸ– แž”แŸ’แžšแžŸแžทแž“แž”แžพแž™แžพแž„แž˜แžถแž“แž•แžแž˜แžฝแž™แžŠแžถแž€แŸ‹แž“แŸ…แž›แžพแžแŸ’แž“แžถแŸ†แž„ แž แžพแž™แžšแžผแž”แž—แžถแž–แžšแž”แžŸแŸ‹แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž”แžผแž˜แž…แŸแž‰แž€แŸ’แž“แžปแž„แžšแž™แŸˆแž–แŸแž›แž™แžผแžš แž“แŸ„แŸ‡แž•แžแž˜แžฝแž™แž‘แŸ€แžแžŠแŸ‚แž› "แž”แžปแž€" แžแŸ’แž“แžถแŸ†แž„แžŠแžผแž…แž‚แŸ’แž“แžถแž“แžนแž„แžŸแžถแž˜แž‰แŸ’แž‰แŸ” แž˜แžทแž“แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž‘แžถแž‰แžšแžผแž”แž—แžถแž–แž“แŸƒแž•แžแžแž›แžแŸ’แž˜แžธแŸ”. แž•แŸ’แž‘แžปแž™แž‘แŸ…แžœแžทแž‰ แžœแžถแžšแž„แŸ‹แž…แžถแŸ†แžšแž แžผแžแžŠแž›แŸ‹แžšแžผแž”แž—แžถแž–แž“แŸƒแž•แžแž˜แžปแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž‘แžถแž‰แŸ” แž‡แžถแž›แž‘แŸ’แž’แž•แž› แž•แžแžŠแŸ‚แž›แž”แžถแž“แž€แŸ†แžŽแžแŸ‹แž–แŸแž›แžšแžฝแž…แž แžพแž™ แž แžพแž™แžšแžผแž”แž—แžถแž–แžŠแŸ‚แž›แžขแžถแž…แž‘แžถแž‰แž™แž€แž”แžถแž“แž€แŸ’แž“แžปแž„แžšแž™แŸˆแž–แŸแž›แžแŸ’แžšแžนแž˜แžแŸ‚แž˜แžฝแž™แž“แžถแž‘แžธแž“แžนแž„แž”แž‰แŸ’แž…แž”แŸ‹แž€แŸ’แž“แžปแž„แžŸแŸ’แžแžถแž“แž—แžถแž– containerCreating.

แž–แŸ’แžšแžนแžแŸ’แžแžทแž€แžถแžšแžŽแŸแž“แžนแž„แž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ–

Normal  Pulling    8m    kubelet, ip-10-241-44-128.ap-northeast-1.compute.internal  pulling image "registry.example.com/infra/openvpn/openvpn:master"

แžœแžถแž”แŸ’แžšแŸ‚แžแžถ แžšแžผแž”แž—แžถแž–แžแŸ‚แž˜แžฝแž™แž–แžธแž”แž‰แŸ’แž‡แžธแžˆแŸ’แž˜แŸ„แŸ‡แž™แžบแžแžขแžถแž…แž‘แž”แŸ‹แžŸแŸ’แž€แžถแžแŸ‹แž€แžถแžšแžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™ แž€แŸ’แž“แžปแž„แž˜แžฝแž™แžแŸ’แž“แžถแŸ†แž„แŸ”

แž‡แžถแžขแž€แžปแžŸแž› แž˜แžทแž“แž˜แžถแž“แžœแžทแž’แžธแž…แŸ’แžšแžพแž“แž…แŸแž‰แž–แžธแžŸแŸ’แžแžถแž“แž—แžถแž–แž“แŸแŸ‡แž‘แŸแŸ–

  1. แž–แŸ’แž™แžถแž™แžถแž˜แž”แŸ’แžšแžพ Docker Registry แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„ cluster แžฌแžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž‡แžถแž˜แžฝแž™ cluster (แžงแž‘แžถแž แžšแžŽแŸ GitLab Registry, Nexus แŸ”แž›แŸ”);
  2. แž”แŸ’แžšแžพแžงแž”แž€แžšแžŽแŸแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแžผแž…แž‡แžถ แž˜แžนแž€แž™แž€แŸ’แžŸ.

แžšแžฟแž„ 5. แžแŸ’แž“แžถแŸ†แž„แž–แŸ’แž™แžฝแžšแžŠแŸ„แž™แžŸแžถแžšแžแŸ‚แžแŸ’แžœแŸ‡แž€แžถแžšแž…แž„แž…แžถแŸ†

แž€แŸ’แž“แžปแž„แžขแŸ†แžกแžปแž„แž–แŸแž›แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž•แŸ’แžŸแŸแž„แŸ— แž™แžพแž„แž€แŸแž”แžถแž“แž‡แžฝแž”แž”แŸ’แžšแž‘แŸ‡แž“แžผแžœแžŸแŸ’แžแžถแž“แž—แžถแž–แžŠแŸ‚แž›แžแŸ’แž“แžถแŸ†แž„แžˆแž”แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‘แžถแŸ†แž„แžŸแŸ’แžšแžปแž„แŸ– SSH แž˜แžทแž“แž†แŸ’แž›แžพแž™แžแž”แž‘แŸ แžŠแŸแž˜แžทแž“แžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž”แžถแž“แžšแž›แžแŸ‹ แž แžพแž™แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž˜แžทแž“แž˜แžถแž“แžขแŸ’แžœแžธ (แžฌแžŸแŸ’แž‘แžพแžšแžแŸ‚แž‚แŸ’แž˜แžถแž“แžขแŸ’แžœแžธแžŸแŸ„แŸ‡) แž˜แžทแž“แž’แž˜แŸ’แž˜แžแžถแž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแžแŸ‹แž แŸแžแžปแŸ”

แžแŸ’แž‰แžปแŸ†แž“แžนแž„แž”แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แž“แŸ…แž€แŸ’แž“แžปแž„แžšแžผแž”แž—แžถแž–แžŠแŸ„แž™แž”แŸ’แžšแžพแžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžแŸ’แž“แžถแŸ†แž„แž˜แžฝแž™แžŠแŸ‚แž› MongoDB แžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ”

แž“แŸแŸ‡แž‚แžบแž‡แžถแžขแŸ’แžœแžธแžŠแŸ‚แž›แž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸ…แž›แžพแž€แŸ†แž–แžผแž› แžšแž แžผแžแžŠแž›แŸ‹แž‘แŸ… แž‚แŸ’แžšแŸ„แŸ‡แžแŸ’แž“แžถแž€แŸ‹แŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แž แžพแž™แžŠแžผแž…แž“แŸแŸ‡ - ะฟะพัะปะต แž‚แŸ’แžšแŸ„แŸ‡แžแŸ’แž“แžถแž€แŸ‹แŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™ แžœแžถแž€แŸแž˜แžถแž“แž€แžถแžšแž›แŸ„แžแž™แŸ‰แžถแž„แžแŸ’แž›แžถแŸ†แž„แž•แž„แžŠแŸ‚แžš แžŠแŸ‚แž›แžแŸ’แž“แžถแŸ†แž„แžˆแž”แŸ‹แž˜แžถแž“แŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

แžŠแžผแž…แŸ’แž“แŸแŸ‡ แž–แžธแžšแžผแž”แžแžแžขแŸแž€แŸ’แžšแž„แŸ‹ แžœแžถแž…แŸ’แž”แžถแžŸแŸ‹แžŽแžถแžŸแŸ‹แžแžถ:

  1. RAM แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž‚แžบแž‡แžทแžแžŠแž›แŸ‹แž‘แžธแž”แž‰แŸ’แž…แž”แŸ‹;
  2. แž˜แžถแž“แž€แžถแžšแž€แžพแž“แžกแžพแž„แž™แŸ‰แžถแž„แžแŸ’แž›แžถแŸ†แž„แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ RAM แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž“แŸ„แŸ‡แž€แžถแžšแž…แžผแž›แž‘แŸ…แž€แžถแž“แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž‘แžถแŸ†แž„แž˜แžผแž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แžทแž‘แž—แŸ’แž›แžถแž˜แŸ—แŸ”
  3. แž€แžทแž…แŸ’แž…แž€แžถแžšแžŠแŸแž’แŸ†แž˜แžฝแž™แž”แžถแž“แž˜แž€แžŠแž›แŸ‹ Mongo แžŠแŸ‚แž›แž”แž„แŸ’แžแŸ†แžฑแŸ’แž™แžŠแŸ†แžŽแžพแžšแž€แžถแžš DBMS แž”แŸ’แžšแžพแžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แž”แž“แŸ’แžแŸ‚แž˜ แž“แžทแž„แžขแžถแž“แž™แŸ‰แžถแž„แžŸแž€แž˜แŸ’แž˜แž–แžธแžแžถแžŸแŸ”

แžœแžถแž”แž„แŸ’แž แžถแž‰แžแžถแž”แŸ’แžšแžŸแžทแž“แž”แžพแž“แŸ…แž€แŸ’แž“แžปแž„ Linux แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แž‘แŸ†แž“แŸแžšแžขแžŸแŸ‹ (แžŸแž˜แŸ’แž–แžถแž’แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แž€แžพแžแžกแžพแž„) แž แžพแž™แž˜แžทแž“แž˜แžถแž“แž€แžถแžšแž”แŸ’แžแžผแžšแž‘แŸ แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ แžšแž แžผแžแžŠแž›แŸ‹แž‘แŸ… แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แžƒแžถแžแž€แžš OOM แž˜แž€แžŠแž›แŸ‹ แž‘แž„แŸ’แžœแžพแžแžปแž›แŸ’แž™แž—แžถแž–แžขแžถแž…แž€แžพแžแžกแžพแž„แžšแžœแžถแž„แž€แžถแžšแž”แŸ„แŸ‡แž‘แŸ†แž–แŸแžšแž‘แŸ…แž€แŸ’แž“แžปแž„แžƒแŸ’แž›แžถแŸ†แž„แžŸแž˜แŸ’แž„แžถแžแŸ‹แž‘แŸ†แž–แŸแžš แž แžพแž™แžŸแžšแžŸแŸแžšแž–แžฝแž€แžœแžถแžแŸ’แžšแžกแž”แŸ‹แž‘แŸ…แžแžถแžŸแžœแžทแž‰แŸ” แž“แŸแŸ‡โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž’แŸ’แžœแžพโ€‹แžŠแŸ„แž™ kswapd แžŠแŸ‚แž›โ€‹แž€แŸ’แž›แžถแž แžถแž“โ€‹แž”แž‰แŸ’แž…แŸแž‰โ€‹แž‘แŸ†แž–แŸแžšโ€‹แžขแž„แŸ’แž‚โ€‹แž…แž„แž…แžถแŸ†โ€‹แž…แŸ’แžšแžพแž“โ€‹แžแžถแž˜โ€‹แžŠแŸ‚แž›โ€‹แžขแžถแž…โ€‹แž’แŸ’แžœแžพโ€‹แž‘แŸ…โ€‹แž”แžถแž“โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž€แžถแžšโ€‹แž…แŸ‚แž€แž…แžถแž™โ€‹แž”แž“แŸ’แžแž”แž“แŸ’แž‘แžถแž”แŸ‹แŸ”

แž‡แžถแžขแž€แžปแžŸแž› แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž•แŸ’แž‘แžปแž€ I/O แžŠแŸแž’แŸ†แž˜แžฝแž™ แž‚แžฝแž”แž•แŸ’แžŸแŸ†แž‡แžถแž˜แžฝแž™แž“แžนแž„แž…แŸ†แž“แžฝแž“แžแžผแž…แž˜แžฝแž™แž“แŸƒแžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แžฅแžแž‚แžทแžแžแŸ’แž›แŸƒแŸ” kswapd แž€แŸ’แž›แžถแž™แž‡แžถแžงแž”แžŸแž‚แŸ’แž‚แž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž‘แžถแŸ†แž„แž˜แžผแž›แž–แŸ’แžšแŸ„แŸ‡แžœแžถแž‡แžถแž”แŸ‹แž“แžนแž„แžœแžถแŸ” แž‘แžถแŸ†แž„แžขแžŸแŸ‹ แž€แžถแžšแž”แŸ‚แž„แž…แŸ‚แž€ (แž€แŸ†แž แžปแžŸแž‘แŸ†แž–แŸแžš) แž“แŸƒแž‘แŸ†แž–แŸแžšแžŸแžแžทแž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแž–แŸแž“แŸ’แž’แŸ” แžœแžถโ€‹แžขแžถแž…โ€‹แž”แž“แŸ’แžโ€‹แž€แŸ’แž“แžปแž„โ€‹แžšแž™แŸˆโ€‹แž–แŸแž›โ€‹แž™แžผแžšโ€‹แž”แŸ’แžšแžŸแžทแž“โ€‹แž”แžพโ€‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšโ€‹แž˜แžทแž“โ€‹แž…แž„แŸ‹โ€‹แž”แŸ’แžšแžพโ€‹แžขแž„แŸ’แž‚โ€‹แž…แž„แž…แžถแŸ†โ€‹แž‘แŸ€แžโ€‹แž‘แŸ แž”แŸ‰แžปแž“แŸ’แžแŸ‚โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž‡แžฝแžŸแž‡แžปแž›โ€‹แž“แŸ…โ€‹แž‚แŸ‚แž˜โ€‹แž‡แŸ’แžšแŸ…โ€‹แž”แŸ†แž•แžปแžโ€‹แž“แŸƒ OOM-killer abyssแŸ”

แžŸแŸ†แžŽแžฝแžšแž’แž˜แŸ’แž˜แž‡แžถแžแžทแž‚แžบแŸ– แž แŸแžแžปแžขแŸ’แžœแžธแž”แžถแž“แž‡แžถแžƒแžถแžแž€แžš OOM แž˜แž€แž™แžบแžแž˜แŸ’แž›แŸ‰แŸแŸ‡? แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž‰แŸ’แž†แŸแŸ‡แž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แžšแž”แžŸแŸ‹แžœแžถ แžƒแžถแžแž€แžš OOM แž‚แžบแž†แŸ„แžแž›แŸ’แž„แž„แŸ‹แž”แŸ†แž•แžปแžแŸ– แžœแžถแž“แžนแž„แžŸแž˜แŸ’แž›แžถแž”แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แžถแž“แž›แžปแŸ‡แžแŸ’แžšแžถแžแŸ‚แž€แžถแžšแž–แŸ’แž™แžถแž™แžถแž˜แž”แŸ‚แž„แž…แŸ‚แž€แž‘แŸ†แž–แŸแžšแžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แž”แžšแžถแž‡แŸแž™ แž–แŸ„แž›แž‚แžบแžงแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž€แŸ†แž แžปแžŸแž‘แŸ†แž–แŸแžšแž”แžšแžถแž‡แŸแž™แŸ” แžšแžฟแž„แž“แŸแŸ‡แž˜แžทแž“แž€แžพแžแžกแžพแž„แž™แžผแžšแž‘แŸ แž–แžธแž–แŸ’แžšแŸ„แŸ‡ kswapd แž”แž‰แŸ’แž…แŸแž‰แž‘แŸ†แž–แŸแžšแžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†แžŠแŸ„แž™แž€แŸ’แž›แžถแž แžถแž“ แž”แŸ„แŸ‡แž…แŸ„แž›แžƒแŸ’แž›แžถแŸ†แž„แžŸแž˜แŸ’แž„แžถแžแŸ‹แž‘แŸ†แž–แŸแžš (แž‡แžถแž€แžถแžšแž–แžทแžแžแžถแžŸ I/O แž‘แžถแŸ†แž„แž˜แžผแž›แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแž–แŸแž“แŸ’แž’) แžแŸ’แžšแžกแž”แŸ‹แž‘แŸ…แžแžถแžŸแžœแžทแž‰แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แž›แž˜แŸ’แžขแžทแžแž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แžแž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแžขแŸ†แž–แžธแž‡แŸ†แž แžถแž“แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแžŠแžพแž˜แŸ’แž”แžธแž›แžปแž”แž”แŸ†แž”แžถแžแŸ‹แž”แž‰แŸ’แž แžถแž”แŸ‚แž”แž“แŸแŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„แžแžบแžŽแŸ‚แž›แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“ แž“แŸ…แž‘แžธแž“แŸแŸ‡.

แžฅแžšแžทแž™แžถแž”แžแž“แŸแŸ‡แŸ” แž‚แžฝแžšแžแŸ‚แž”แŸ’แžšแžŸแžพแžšแžกแžพแž„ แž‡แžถแž˜แžฝแž™แžŸแŸ’แž“แžผแž›แž˜แžฝแž™ Linux 4.6 + แŸ”

แžšแžฟแž„แž‘แžธ 6. Pods แž‡แžถแž”แŸ‹แž‚แžถแŸ†แž„แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ’แžแžถแž“แž—แžถแž–แž˜แžทแž“แž‘แžถแž“แŸ‹แžŸแž˜แŸ’แžšแŸแž…

แž“แŸ…แž€แŸ’แž“แžปแž„แž…แž„แŸ’แž€แŸ„แž˜แž˜แžฝแž™แž…แŸ†แž“แžฝแž“ แžŠแŸ‚แž›แž€แŸ’แž“แžปแž„แž“แŸ„แŸ‡แž˜แžถแž“แž•แžแž‡แžถแž…แŸ’แžšแžพแž“แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžš แž™แžพแž„แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž€แžแŸ‹แžŸแŸ†แž‚แžถแž›แŸ‹แžแžถแž—แžถแž‚แž…แŸ’แžšแžพแž“แž“แŸƒแž–แžฝแž€แžœแžถ "แž–แŸ’แž™แžฝแžš" แžขแžŸแŸ‹แžšแž™แŸˆแž–แŸแž›แž‡แžถแž™แžผแžšแž˜แž€แž แžพแž™แž“แŸ…แž€แŸ’แž“แžปแž„แžšแžŠแŸ’แž‹แŸ” Pendingแž‘แŸ„แŸ‡แž”แžธแž‡แžถ Docker containers แžแŸ’แž›แžฝแž“แžฏแž„แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž›แžพแžแŸ’แž“แžถแŸ†แž„แžšแžฝแž…แž แžพแž™ แž“แžทแž„แžขแžถแž…แž’แŸ’แžœแžพแž€แžถแžšแžŠแŸ„แž™แžŠแŸƒแž”แžถแž“แŸ”

แž›แžพแžŸแž–แžธแž“แŸแŸ‡แž‘แŸ…แž‘แŸ€แžแž“แŸ…แž€แŸ’แž“แžปแž„ describe แž˜แžทแž“แž˜แžถแž“แžขแŸ’แžœแžธแžแžปแžŸแž‘แŸแŸ–

  Type    Reason                  Age                From                     Message
  ----    ------                  ----               ----                     -------
  Normal  Scheduled               1m                 default-scheduler        Successfully assigned sphinx-0 to ss-dev-kub07
  Normal  SuccessfulAttachVolume  1m                 attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-6aaad34f-ad10-11e8-a44c-52540035a73b"
  Normal  SuccessfulMountVolume   1m                 kubelet, ss-dev-kub07    MountVolume.SetUp succeeded for volume "sphinx-config"
  Normal  SuccessfulMountVolume   1m                 kubelet, ss-dev-kub07    MountVolume.SetUp succeeded for volume "default-token-fzcsf"
  Normal  SuccessfulMountVolume   49s (x2 over 51s)  kubelet, ss-dev-kub07    MountVolume.SetUp succeeded for volume "pvc-6aaad34f-ad10-11e8-a44c-52540035a73b"
  Normal  Pulled                  43s                kubelet, ss-dev-kub07    Container image "registry.example.com/infra/sphinx-exporter/sphinx-indexer:v1" already present on machine
  Normal  Created                 43s                kubelet, ss-dev-kub07    Created container
  Normal  Started                 43s                kubelet, ss-dev-kub07    Started container
  Normal  Pulled                  43s                kubelet, ss-dev-kub07    Container image "registry.example.com/infra/sphinx/sphinx:v1" already present on machine
  Normal  Created                 42s                kubelet, ss-dev-kub07    Created container
  Normal  Started                 42s                kubelet, ss-dev-kub07    Started container

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแž‡แžธแž€แž€แž€แžถแž™แžแŸ’แž›แŸ‡ แž™แžพแž„แž”แžถแž“แž’แŸ’แžœแžพแž€แžถแžšแžŸแž“แŸ’แž˜แžแŸ‹แžแžถ kubelet แž‡แžถแž’แž˜แŸ’แž˜แžแžถแž˜แžทแž“แž˜แžถแž“แž–แŸแž›แžœแŸแž›แžถแžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แž‰แžพแž–แŸแžแŸŒแž˜แžถแž“แž‘แžถแŸ†แž„แžขแžŸแŸ‹แžขแŸ†แž–แžธแžŸแŸ’แžแžถแž“แž—แžถแž–แž“แŸƒ pods แž“แžทแž„แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแž—แžถแž–แžšแžŸแŸ‹แžšแžœแžพแž€/แž€แžถแžšแžแŸ’แžšแŸ€แž˜แžแŸ’แž›แžฝแž“แž‘แŸ…แž€แžถแž“แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แž“แŸ„แŸ‡แž‘แŸแŸ”

แž แžพแž™แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแžŸแžทแž€แŸ’แžŸแžถแž‡แŸ†แž“แžฝแž™แž™แžพแž„แž”แžถแž“แžšแž€แžƒแžพแž‰แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸˆ

--kube-api-qps - QPS to use while talking with kubernetes apiserver (default 5)
--kube-api-burst  - Burst to use while talking with kubernetes apiserver (default 10) 
--event-qps - If > 0, limit event creations per second to this value. If 0, unlimited. (default 5)
--event-burst - Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding event-qps. Only used if --event-qps > 0 (default 10) 
--registry-qps - If > 0, limit registry pull QPS to this value.
--registry-burst - Maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0 (default 10)

แžŠแžผแž…แžŠแŸ‚แž›แž”แžถแž“แžƒแžพแž‰, แžแž˜แŸ’แž›แŸƒแž›แŸ†แž“แžถแŸ†แžŠแžพแž˜แž‚แžบแžแžผแž…แžŽแžถแžŸแŸ‹แŸ”แž แžพแž™แž€แŸ’แž“แžปแž„ 90% แž–แžฝแž€แž‚แŸแž‚แŸ’แžšแž”แžŠแžŽแŸ’แžแž”แŸ‹แžแž˜แŸ’แžšแžผแžœแž€แžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹... แž‘แŸ„แŸ‡แž™แŸ‰แžถแž„แžŽแžถแž€แŸแžŠแŸ„แž™ แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแžšแž”แžŸแŸ‹แž™แžพแž„แžœแžถแž˜แžทแž“แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแžถแž“แŸ‹แž‘แŸแŸ” แžŠแžผแž…แŸ’แž“แŸแŸ‡แž™แžพแž„แž€แŸ†แžŽแžแŸ‹แžแž˜แŸ’แž›แŸƒแžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸˆ

--event-qps=30 --event-burst=40 --kube-api-burst=40 --kube-api-qps=30 --registry-qps=30 --registry-burst=40

... แž แžพแž™แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ kubelets แžกแžพแž„แžœแžทแž‰ แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž“แŸ„แŸ‡แž™แžพแž„แžƒแžพแž‰แžšแžผแž”แž—แžถแž–แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ’แžšแžถแž แŸ’แžœแž“แŸƒแž€แžถแžšแž แŸ…แž‘แŸ…แž€แžถแž“แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ APIแŸ–

แž€แŸ†แž แžปแžŸแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž€แž˜แŸ’แžŸแžถแž“แŸ’แžแž…แŸ†แž“แžฝแž“ 6 แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹ Kubernetes [แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸ]

... แž แžพแž™โ€‹แž˜แŸ‚แž“โ€‹แž แžพแž™ แžขแŸ’แžœแžธโ€‹แŸ—โ€‹แž€แŸโ€‹แž…แžถแž”แŸ‹โ€‹แž•แŸ’แžŠแžพแž˜โ€‹แž แŸ„แŸ‡!

PS

แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‡แŸ†แž“แžฝแž™แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ’แžšแž˜แžผแž›แž€แŸ†แž แžปแžŸ แž“แžทแž„แžšแŸ€แž”แž…แŸ†แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡ แžแŸ’แž‰แžปแŸ†แžŸแžผแž˜แžแŸ’แž›แŸ‚แž„แžขแŸ†แžŽแžšแž‚แžปแžŽแž™แŸ‰แžถแž„แž‡แŸ’แžšแžถแž›แž‡แŸ’แžšแŸ…แž…แŸ†แž–แŸ„แŸ‡แžœแžทแžŸแŸ’แžœแž€แžšแž‡แžถแž…แŸ’แžšแžพแž“แž“แŸƒแž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“แžšแž”แžŸแŸ‹แž™แžพแž„ แž“แžทแž„แž‡แžถแž–แžทแžŸแŸแžŸแž…แŸ†แž–แŸ„แŸ‡แžŸแž แž€แžถแžšแžธแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แž˜แž€แž–แžธแž€แŸ’แžšแžปแž˜ R&D แžšแž”แžŸแŸ‹แž™แžพแž„ Andrey Klimentyev (แž แŸ’แžŸแžผแž แŸ’แžŸแžถ).

PPS

แžŸแžผแž˜แžขแžถแž“แž•แž„แžŠแŸ‚แžšแž“แŸ…แž›แžพแž”แŸ’แž›แž€แŸ‹แžšแž”แžŸแŸ‹แž™แžพแž„แŸ–

แž”แŸ’แžšแž—แž–: www.habr.com

แž‘แžทแž‰แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS, แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS ๐Ÿ”ฅ แž‘แžทแž‰แžŸแŸแžœแžถแž”แž„แŸ’แž แŸ„แŸ‡แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS | ProHoster