āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻŦāĻāĻ°ā§āĻ° āĻĒāĻ° āĻŦāĻāĻ° āĻ§āĻ°ā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻŦāĻžāĻāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒāĻžāĻ¤ā§āĻ° āĻāĻŦāĻ āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ
āĻĒā§āĻ°ā§āĻ¤āĻŋāĻāĻ° āĻāĻŦāĻ/āĻ
āĻĨāĻŦāĻž āĻŦā§āĻ§āĻāĻŽā§āĻ¯ āĻĒāĻ°āĻŋāĻŖāĻ¤āĻŋāĻ° āĻĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°ā§ āĻ¤āĻžāĻ° āĻ
āĻ¨ā§āĻ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻ˛ā§āĻĒ āĻāĻŽāĻž āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻž āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻŋāĻā§āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ āĻāĻžāĻā§āĻ¯āĻŦāĻžāĻ¨ āĻ¨āĻž āĻšāĻ¨ āĻ¤āĻŦā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ āĻā§āĻ¯āĻŧā§āĻ¨ā§āĻĻāĻž āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĒāĻĄāĻŧāĻž - āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ "āĻĢāĻžāĻ°ā§āĻ¸ā§āĻ-āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄ" - āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧāĻ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ, āĻ¤āĻžāĻ āĻ¨āĻž? ..
āĻāĻ˛ā§āĻĒ 1. āĻ¸ā§āĻĒāĻžāĻ°āĻā§āĻ°ā§āĻ¨āĻŋāĻ āĻāĻŦāĻ āĻĄāĻāĻžāĻ° āĻā§āĻ˛āĻ¨ā§āĻ¤
āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ°āĻŽā§ āĻāĻāĻāĻŋ āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĄāĻāĻžāĻ° āĻĒā§āĻ¯āĻŧā§āĻāĻŋ, āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§ āĻšāĻ¸ā§āĻ¤āĻā§āĻˇā§āĻĒ āĻāĻ°ā§āĻāĻŋāĻ˛āĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻĄāĻāĻžāĻ° āĻ˛āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
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
. āĻĻā§āĻ°ā§āĻ¤ āĻ
āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨
āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻ¯āĻž āĻāĻāĻā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ:
āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
āĻ¨ā§āĻ°ā§āĻĒ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°āĻŋāĻ˛āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧ:
āĻāĻāĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ:
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>
āĻĻā§āĻāĻž āĻā§āĻ˛ āĻ¯ā§ āĻāĻ āĻāĻāĻ°āĻŖāĻāĻŋ āĻĒāĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛
_ 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>
âĻ
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻšāĻ˛: āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻžāĻ āĻ¸ā§āĻĒāĻžāĻ°āĻā§āĻ°ā§āĻ¨āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻāĻāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻĻā§āĻā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻļā§āĻˇ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž, āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻžāĻāĻ
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯: āĻāĻ°āĻ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻāĻžāĻŦā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¨ āĻāĻžāĻ¸ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻĒāĻžāĻ°āĻā§āĻ°ā§āĻ¨āĻŋāĻ āĻāĻāĻāĻŋ āĻāĻ¨āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻŦāĻžāĻā§āĻāĻžāĻ°āĻž āĻ¯ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§ āĻ¤āĻž "āĻĻāĻ¤ā§āĻ¤āĻ" āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻžā§ˇ āĻ¯āĻāĻ¨ SIGHUP āĻŦāĻž SIGTERM āĻ¸āĻāĻā§āĻ¤āĻā§āĻ˛āĻŋ āĻāĻ¤ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻļāĻŋāĻļā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ āĻļāĻŋāĻļā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ āĻāĻŽā§āĻŦāĻŋ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĨāĻžāĻā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ¸āĻŦ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŽāĻ§ā§āĻ¯ā§
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§:
- āĻāĻāĻāĻŋ āĻ
āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ - āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒāĻŋāĻāĻāĻĄāĻŋ-āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¨:
/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. āĻāĻāĻāĻŋ cgroup āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ "āĻāĻŽā§āĻŦāĻŋ"
āĻā§āĻŦā§āĻ˛ā§āĻ āĻĒā§āĻ°āĻā§āĻ° āĻ¸āĻŋāĻĒāĻŋāĻāĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻā§:
āĻā§āĻ āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŦā§ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻā§āĻĻā§āĻ°āĻā§ āĻ¸āĻļāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ°ā§āĻāĻŋ
- āĻā§āĻŦā§āĻ˛ā§āĻ āĻ¤āĻžāĻ° CPU āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧāĻžāĻāĻļā§āĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ cgroups āĻĨā§āĻā§ āĻŽā§āĻŽāĻ°āĻŋ āĻĄā§āĻāĻž āĻāĻžāĻ¨āĻ¤ā§:
- āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻŽā§āĻāĻ˛āĻŋāĻ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻ˛ā§āĻāĻ¨āĻž . āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻāĻāĻžāĻ¨ā§ āĻ¨ā§āĻŽā§ āĻāĻ¸ā§: āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ tmpfs āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻāĻāĻŋ cgroup āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤memcg āĻŦā§āĻāĻāĻ¨ā§āĻĻāĻ°. āĻļā§āĻā§āĻ°āĻ āĻŦāĻž āĻĒāĻ°ā§ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻž āĻā§āĻ¯āĻžāĻļā§ āĻĨā§āĻā§ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ āĻ¨ā§āĻ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻā§ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¤āĻžāĻĻā§āĻ° āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ¸ā§āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻžāĻ āĻŦāĻžāĻāĻ§āĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻā§āĻ¨ āĻāĻāĻž āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻā§? āĻāĻāĻŋ āĻā§āĻ°āĻ¨ āĻāĻŦ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¯āĻž āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻĄāĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ cgroups āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻļā§āĻā§āĻ°āĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ - āĻā§āĻŦā§āĻ˛ā§āĻā§ āĻ¸āĻŋāĻāĻĄāĻāĻžāĻāĻāĻžāĻ° āĻāĻ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻ āĻāĻ°ā§ āĻā§āĻ¨? āĻāĻāĻŋ āĻ¸āĻšāĻāĻ¤āĻŽ āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻž āĻ¸āĻšāĻ
time cat /sys/fs/cgroup/memory/memory.stat
. āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĨ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻāĻŋ 0,01 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯ā§āĻā§āĻ¤ āĻā§āĻ°ā§āĻ¨02 āĻ āĻāĻāĻŋ 1,2 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧāĨ¤ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°āĻāĻŋ āĻšāĻ˛ āĻ¸āĻŋāĻāĻĄāĻāĻžāĻāĻāĻžāĻ°, āĻ¯āĻž āĻā§āĻŦ āĻ§ā§āĻ°ā§ āĻ§ā§āĻ°ā§ sysfs āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧā§, zombie cgroups-āĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻŽā§āĻŽāĻ°āĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĨ¤ - āĻā§āĻŽā§āĻŦāĻŋāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°āĻĒā§āĻ°ā§āĻŦāĻ āĻ
āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž LKML-āĻ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļāĻā§āĻ¤ āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻžāĻĢ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻāĻŋ:
sync; echo 3 > /proc/sys/vm/drop_caches
, - āĻ¤āĻŦā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛āĻāĻŋ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻšāĻ¯āĻŧā§ āĻāĻ āĻ˛ āĻāĻŦāĻ āĻāĻžāĻĄāĻŧāĻŋāĻāĻŋ āĻŦāĻŋāĻ§ā§āĻŦāĻ¸ā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻŋ āĻāĻ°ā§? āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ āĻŋāĻ āĻāĻ°āĻž āĻšāĻā§āĻā§ (
āĻāĻ¤āĻŋāĻšāĻžāĻ¸ 3. Systemd āĻāĻŦāĻ āĻāĻ° āĻŽāĻžāĻāĻ¨ā§āĻ
āĻāĻŦāĻžāĻ°, āĻā§āĻŦā§āĻ˛ā§āĻ āĻāĻŋāĻā§ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻā§āĻ°āĻžāĻ¸ āĻāĻ°āĻā§:
āĻāĻāĻŋ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻāĻŦā§āĻ¨ā§āĻā§ 16.04 āĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻĄāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŽāĻžāĻāĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻā§ subPath
ConfigMap āĻāĻ° āĻŦāĻž āĻā§āĻĒāĻ¨ āĻāĻ° āĻĨā§āĻā§āĨ¤ āĻĒā§āĻĻā§āĻ° āĻāĻžāĻ āĻļā§āĻˇ āĻāĻ°āĻžāĻ° āĻĒāĻ° systemd āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻŦāĻ āĻāĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŽāĻžāĻāĻ¨ā§āĻ āĻĨāĻžāĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§, āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŽāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻŽāĻ¨āĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻā§:
...āĻ¯āĻžāĻ° āĻļā§āĻˇāĻāĻŋ systemd-āĻ PR-āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§:
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻāĻŦā§āĻ¨ā§āĻā§ 18.04-āĻ āĻāĻ° āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨ā§āĻ, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŦā§āĻ¨ā§āĻā§ 16.04 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻāĻĒāĻžāĻ¯āĻŧ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĄā§āĻŽāĻ¨āĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ:
---
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 āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻāĻ˛ā§āĨ¤ āĻāĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻĻā§āĻāĻžāĻā§āĻā§:
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. āĻĒāĻĄ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻŽā§āĻ˛āĻāĻ¤āĻž
āĻāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻž āĻā§āĻā§ āĻ¯ā§: āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻĒāĻ° āĻāĻāĻāĻŋ āĻĒāĻĄ āĻ°āĻžāĻāĻž āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻŽā§āĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻ°ā§āĻāĻāĻŋ āĻĒāĻĄ āĻ¯āĻž āĻāĻāĻ āĻ¨ā§āĻĄāĻā§ "āĻšāĻŋāĻ" āĻāĻ°āĻŦā§ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻĻā§āĻ° āĻāĻŽā§āĻ āĻāĻžāĻ¨āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻ¨āĻž. āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĄā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻāĻžāĻ¨āĻž āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻāĻŋ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻĒāĻĄ āĻ¯āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻ¯āĻžāĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻžāĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ā§ āĻļā§āĻˇ āĻšāĻŦā§ containerCreating
.
āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦā§:
Normal Pulling 8m kubelet, ip-10-241-44-128.ap-northeast-1.compute.internal pulling image "registry.example.com/infra/openvpn/openvpn:master"
āĻāĻāĻž āĻ¯ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻāĻ āĻāĻāĻāĻŋ āĻ§ā§āĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻŋāĻ¤ā§āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŦā§āĻ˛āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¨ā§āĻĄ
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĨā§āĻā§ āĻŦā§āĻ°āĻŋāĻ¯āĻŧā§ āĻāĻ¸āĻžāĻ° āĻ āĻ¨ā§āĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨ā§āĻ:
- āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻāĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻŦāĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ, āĻ¨ā§āĻā§āĻ¸āĻžāĻ¸, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ);
- āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻā§āĻ°āĻžāĻā§āĻ¨āĻā§ .
āĻāĻ˛ā§āĻĒ 5. āĻ¸ā§āĻŽā§āĻ¤āĻŋāĻ° āĻ āĻāĻžāĻŦā§ āĻ¨ā§āĻĄ āĻā§āĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨, āĻāĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧā§āĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯ āĻšāĻāĻ¯āĻŧāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧ: SSH āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§āĻ¯āĻŧ āĻ¨āĻž, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ āĻĄā§āĻŽāĻ¨ āĻĒāĻĄāĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ˛āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāĻŋāĻā§āĻ (āĻŦāĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻāĻŋāĻā§āĻ) āĻ¨ā§āĻāĨ¤
āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻŋāĻ¤ā§ āĻŦāĻ˛āĻŦ āĻ¯ā§āĻāĻžāĻ¨ā§ MongoDB āĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻāĻ āĻāĻĒāĻ°ā§āĻ° āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋ āĻĨā§āĻā§ āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻž:
āĻāĻŦāĻ āĻāĻ āĻŽāĻ¤ - ĐŋĐžŅĐģĐĩ āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻž:
āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖā§, āĻāĻāĻāĻŋ āĻ¤ā§āĻā§āĻˇā§āĻŖ āĻ˛āĻžāĻĢāĻ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¨ā§āĻĄāĻāĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻāĻ¯āĻŧāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧ:
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ āĻĨā§āĻā§ āĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¯ā§:
- āĻŽā§āĻļāĻŋāĻ¨ā§ RAM āĻļā§āĻˇā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ;
- RAM āĻāĻ°āĻā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻā§āĻˇā§āĻŖ āĻ˛āĻžāĻĢ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻĒāĻ°ā§ āĻĒā§āĻ°ā§ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻšāĻ āĻžā§ āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ;
- āĻŽāĻā§āĻā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻāĻžāĻ āĻāĻ¸ā§, āĻ¯āĻž āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§ āĻāĻ°āĻ āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻĄāĻŋāĻ¸ā§āĻ āĻĨā§āĻā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒāĻĄāĻŧāĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻāĻ°ā§āĨ¤
āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻ¯ā§ āĻ¯āĻĻāĻŋ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻĢā§āĻ°āĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻĢā§āĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ (āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻāĻžāĻĒ āĻ¸ā§āĻ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ) āĻāĻŦāĻ āĻā§āĻ¨ āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĨā§āĻā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŽ āĻšāĻ¤ā§āĻ¯āĻžāĻāĻžāĻ°ā§ āĻāĻ¸ā§, āĻ¤āĻāĻ¨ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻā§āĻ¯āĻžāĻļā§āĻ¤ā§ āĻĢā§āĻ˛ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ˛ā§āĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯āĻŽā§āĻ˛āĻ āĻāĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ kswapd āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻšāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻŽā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻāĻāĻŋ āĻŦā§āĻšā§ I/O āĻ˛ā§āĻĄ āĻ¸āĻš āĻ āĻ˛ā§āĻĒ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĢā§āĻ°āĻŋ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§, kswapd āĻĒā§āĻ°ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦāĻžāĻ§āĻž āĻšāĻ¯āĻŧā§ āĻĻāĻžāĻāĻĄāĻŧāĻžāĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ°āĻž āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻĻā§āĻ§ āĻ¸āĻŦ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ (āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ)āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻāĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¨āĻž āĻāĻžāĻ¯āĻŧ, āĻ¤āĻŦā§ OOM-āĻāĻŋāĻ˛āĻžāĻ° āĻ ā§āĻ¯āĻžāĻŦāĻŋāĻ¸-āĻāĻ° āĻāĻā§āĻŦāĻžāĻ°ā§ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻĨāĻŋāĻ° āĻĨāĻžāĻā§āĨ¤
āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻĒā§āĻ°āĻļā§āĻ¨ āĻšāĻ˛: āĻā§āĻ¨ āĻāĻāĻāĻŽ āĻšāĻ¤ā§āĻ¯āĻžāĻāĻžāĻ°ā§ āĻāĻ¤ āĻĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻ¸ā§? āĻāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§, OOM āĻšāĻ¤ā§āĻ¯āĻžāĻāĻžāĻ°ā§ āĻ
āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻāĻž: āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻāĻ¨āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻā§ āĻŽā§āĻ°ā§ āĻĢā§āĻ˛āĻŦā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨ āĻ¯āĻĻāĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ kswapd āĻ¸āĻžāĻšāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻā§ āĻŽā§āĻā§āĻ¤ āĻāĻ°ā§, āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻā§āĻ¯āĻžāĻļā§ āĻĄāĻžāĻŽā§āĻĒ āĻāĻ°ā§ (āĻāĻ¸āĻ˛ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄāĻŋāĻ¸ā§āĻ I/O) āĻĄāĻŋāĻ¸ā§āĻā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§āĨ¤ āĻāĻ°āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§, āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§āĻ° āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻš, āĻāĻĒāĻ¨āĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻ āĻāĻāĻ°āĻŖ
āĻāĻ˛ā§āĻĒ 6. āĻļā§āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ā§āĻŦāĻŋ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻāĻāĻā§ āĻ¯āĻžāĻ¯āĻŧ
āĻāĻŋāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ
āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻļā§āĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§ āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻāĻ āĻ°āĻžāĻā§āĻ¯ā§ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ "āĻā§āĻ˛ā§ āĻāĻā§" Pending
, āĻ¯āĻĻāĻŋāĻ āĻĄāĻāĻžāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ˛āĻā§ āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¤āĻžāĻāĻžāĻĄāĻŧāĻž, āĻāĻ¨ 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
āĻāĻŋāĻā§ āĻāĻ¨āĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§ āĻā§āĻŦā§āĻ˛ā§āĻā§āĻ° āĻāĻžāĻā§ āĻā§āĻŦāĻ˛ āĻĒāĻĄā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻāĻŦāĻ āĻā§āĻŦāĻ¨ā§āĻ¤āĻ¤āĻž/āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤āĻĨā§āĻ¯ 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
... āĻāĻŦāĻ āĻā§āĻŦā§āĻ˛ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻāĻŋ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž API āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻ˛ā§āĻ° āĻā§āĻ°āĻžāĻĢā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻĻā§āĻā§āĻāĻŋ:
... āĻāĻŦāĻ āĻšā§āĻ¯āĻžāĻ, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻĄāĻŧāĻ¤ā§ āĻļā§āĻ°ā§!
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
āĻŦāĻžāĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻŦāĻ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻ
āĻ¸āĻāĻā§āĻ¯ āĻĒā§āĻ°āĻā§āĻļāĻ˛ā§ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° R&D āĻĻāĻ˛ā§āĻ° āĻāĻŽāĻžāĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§ āĻāĻ¨ā§āĻĻā§āĻ°ā§ āĻā§āĻ˛āĻŋāĻŽāĻ¨ā§āĻ¤ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻā§āĻ° āĻā§āĻ¤āĻā§āĻāĻ¤āĻž āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻāĻŋ (
PPS
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- ÂĢ
Kubernetes āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ kubectl-debug āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ Âģ. - Kubernetes āĻāĻŋāĻĒāĻ¸ āĻāĻŦāĻ āĻā§āĻļāĻ˛ āĻ˛ā§āĻĒ:
- ÂĢ
āĻšā§āĻ˛āĻŽ 2 āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° "; - ÂĢ
āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻ¨ā§āĻĄ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻŦāĻ āĻ˛ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ "; - ÂĢ
āĻĄā§āĻ āĻ¸āĻžāĻāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ "; - ÂĢ
āĻŦāĻĄāĻŧ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻāĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻĒ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ°āĻž Âģ.
- ÂĢ
āĻāĻ¤ā§āĻ¸: www.habr.com