Kubernetes: kube-proxy ipvs ๋ชจ๋“œ๋Š” ๋ช‡ ์‹œ๊ฐ„ ํ›„ ์ค‘๋‹จ๋˜๋ฉฐ ์ˆ˜๋™์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 11์›” 15์ผ  ยท  142์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kubernetes/kubernetes

๋ฒ„๊ทธ๋ฅผ๋ณด๊ณ  ํ•  ๋•Œ์ด ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฒ„๊ทธ๊ฐ€ ์ ์‹œ์— ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ : v1.11.0์—์„œ v1.12.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ, ์ด์ œ kube-proxy๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋ฃจ ์ด๋‚ด์— ์ค‘๋‹จ๋จ

์˜ˆ์ƒ ํ•œ ์ผ : ๊ณ„์† ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• (๊ฐ€๋Šฅํ•œ ํ•œ ์ตœ์†Œํ•œ์œผ๋กœ ์ •ํ™•ํ•˜๊ฒŒ) : ipvs ๋ชจ๋“œ์—์„œ ์‹คํ–‰์ค‘์ธ ์ผ๋ฐ˜ kube-proxy๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋ณดํ†ต ํ•˜๋ฃจ๋„ ์•ˆ๋˜์–ด์„œ ๋ฉˆ ์ถฅ๋‹ˆ ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผ ํ•  ๋‹ค๋ฅธ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? :

์Šคํƒ ์ถ”์ ์„ ์–ป๊ธฐ ์œ„ํ•ด SIGABRT๋ฅผ kube-proxy ํ”„๋กœ์„ธ์Šค์— ๋ณด๋ƒˆ๊ณ  ํฅ๋ฏธ๋กœ์šด ์ ์€ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด goroutine 1์ด netlink์—์„œ ์ฝ๋Š” ๋ฐ˜๋ฉด SIGABRT๋ฅผ ๋ณด๋‚ด๊ณ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š์œผ๋ฉด ์ฝ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. netlink์—์„œ.

Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: goroutine 1 [syscall]:
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: syscall.Syscall6(0x2d, 0x3, 0xc42081c000, 0x1000, 0x0, 0xc42083deb0, 0xc42083dea4, 0x40fb86, 0x7f2ab9788aa8, 0x0)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: syscall.recvfrom(0x3, 0xc42081c000, 0x1000, 0x1000, 0x0, 0xc42083deb0, 0xc42083dea4, 0x101ffffffffffff, 0x0, 0x1000)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /usr/local/go/src/syscall/zsyscall_linux_amd64.go:1665 +0xa6
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: syscall.Recvfrom(0x3, 0xc42081c000, 0x1000, 0x1000, 0x0, 0x1000, 0x0, 0x0, 0x16ad4c0, 0x1f4d508)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /usr/local/go/src/syscall/syscall_unix.go:252 +0xaf
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/vishvananda/netlink/nl.(*NetlinkSocket).Receive(0xc4204d3440, 0x0, 0x0, 0x0, 0x16ad4c0, 0x1f4d508)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/vishvananda/netlink/nl/nl_linux.go:613 +0x9b
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs.execute(0xc4204d3440, 0xc42083e150, 0x0, 0x1, 0x2, 0xc420423740, 0x1, 0x2)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs/netlink.go:219 +0xd3
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs.(*Handle).doCmdwithResponse(0xc420573990, 0xc420990750, 0x0, 0xc42003d501, 0xa, 0x10, 0xc420990701, 0xc42083e230, 0x118dd6b)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs/netlink.go:140 +0x20b
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs.(*Handle).doCmd(0xc420573990, 0xc420990750, 0x0, 0x1, 0x60000020fc6e0, 0xc420990750)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs/netlink.go:149 +0x48
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs.(*Handle).NewService(0xc420573990, 0xc420990750, 0x0, 0x0)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/docker/libnetwork/ipvs/ipvs.go:117 +0x43
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/pkg/util/ipvs.(*runner).AddVirtualServer(0xc42052a340, 0xc420b0e550, 0x1e, 0xc42083e3b8)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/ipvs/ipvs_linux.go:61 +0x60
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/pkg/proxy/ipvs.(*Proxier).syncService(0xc4201b3e00, 0xc420d53620, 0x21, 0xc420b0e550, 0xc420357901, 0x5, 0xc420d53620)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go:1454 +0x635
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/pkg/proxy/ipvs.(*Proxier).syncProxyRules(0xc4201b3e00)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go:803 +0x1081
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/pkg/proxy/ipvs.(*Proxier).(k8s.io/kubernetes/pkg/proxy/ipvs.syncProxyRules)-fm()
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go:395 +0x2a
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/pkg/util/async.(*BoundedFrequencyRunner).tryRun(0xc42042e3f0)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/async/bounded_frequency_runner.go:217 +0xb6
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/pkg/util/async.(*BoundedFrequencyRunner).Loop(0xc42042e3f0, 0xc4200b0120)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/async/bounded_frequency_runner.go:179 +0x211
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/pkg/proxy/ipvs.(*Proxier).SyncLoop(0xc4201b3e00)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go:589 +0x4e
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/cmd/kube-proxy/app.(*ProxyServer).Run(0xc4207f2000, 0xc4207f2000, 0x0)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kube-proxy/app/server.go:568 +0x3dd
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).Run(0xc4201082c0, 0xc42063e230, 0x0)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kube-proxy/app/server.go:238 +0x69
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/cmd/kube-proxy/app.NewProxyCommand.func1(0xc4200f2500, 0xc42063e230, 0x0, 0x7)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kube-proxy/app/server.go:360 +0x156
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute(0xc4200f2500, 0xc4200c4010, 0x7, 0x7, 0xc4200f2500, 0xc4200c4010)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:760 +0x2c1
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc4200f2500, 0xc4205dc090, 0x16076a0, 0xc4207a7ee8)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:846 +0x30a
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute(0xc4200f2500, 0x1608b88, 0x20dcf40)
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]:         /workspace/anago-v1.12.2-beta.0.59+17c77c78982180/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:794 +0x2b
Nov 15 11:42:05 hex-48b-pm kube-proxy[5389]: main.main()

๊ธฐ๋กํ•œ ๋งˆ์ง€๋ง‰ ์ค„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Nov 15 07:48:52 hex-48b-pm kube-proxy[5389]: I1115 07:48:52.392942    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.241:4059/TCP/10.125.2.26:4059
Nov 15 07:48:52 hex-48b-pm kube-proxy[5389]: I1115 07:48:52.392952    5389 graceful_termination.go:160] Trying to delete rs: 10.128.32.132:5432/TCP/10.125.2.13:6432
Nov 15 07:48:52 hex-48b-pm kube-proxy[5389]: E1115 07:48:52.392978    5389 graceful_termination.go:89] Try delete rs "10.128.32.132:5432/TCP/10.125.2.13:6432" err: Failed to delete rs "10.128.32.132:5432/TCP/10.125.2.13:6432", can't 
find the real server
Nov 15 07:48:52 hex-48b-pm kube-proxy[5389]: I1115 07:48:52.392985    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.32.132:5432/TCP/10.125.2.13:6432
Nov 15 07:48:52 hex-48b-pm kube-proxy[5389]: E1115 07:48:52.392992    5389 graceful_termination.go:183] Try flush graceful termination list err
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393147    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.156:8125/TCP/10.125.2.21:8125
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393260    5389 graceful_termination.go:89] Try delete rs "10.128.33.156:8125/TCP/10.125.2.21:8125" err: Failed to delete rs "10.128.33.156:8125/TCP/10.125.2.21:8125", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393272    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.156:8125/TCP/10.125.2.21:8125
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393281    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.142:6379/TCP/10.125.6.13:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393310    5389 graceful_termination.go:89] Try delete rs "10.128.33.142:6379/TCP/10.125.6.13:6379" err: Failed to delete rs "10.128.33.142:6379/TCP/10.125.6.13:6379", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393317    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.142:6379/TCP/10.125.6.13:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393327    5389 graceful_termination.go:160] Trying to delete rs: 10.128.34.237:6379/TCP/10.125.6.11:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393355    5389 graceful_termination.go:89] Try delete rs "10.128.34.237:6379/TCP/10.125.6.11:6379" err: Failed to delete rs "10.128.34.237:6379/TCP/10.125.6.11:6379", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393362    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.34.237:6379/TCP/10.125.6.11:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393371    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.200:5432/TCP/10.125.6.27:6432
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393397    5389 graceful_termination.go:89] Try delete rs "10.128.33.200:5432/TCP/10.125.6.27:6432" err: Failed to delete rs "10.128.33.200:5432/TCP/10.125.6.27:6432", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393404    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.200:5432/TCP/10.125.6.27:6432
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393412    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.228:6379/TCP/10.125.2.63:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393440    5389 graceful_termination.go:89] Try delete rs "10.128.33.228:6379/TCP/10.125.2.63:6379" err: Failed to delete rs "10.128.33.228:6379/TCP/10.125.2.63:6379", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393447    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.228:6379/TCP/10.125.2.63:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393455    5389 graceful_termination.go:160] Trying to delete rs: 10.128.34.247:5672/TCP/10.125.2.6:5672
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393482    5389 graceful_termination.go:89] Try delete rs "10.128.34.247:5672/TCP/10.125.2.6:5672" err: Failed to delete rs "10.128.34.247:5672/TCP/10.125.2.6:5672", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393489    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.34.247:5672/TCP/10.125.2.6:5672
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393497    5389 graceful_termination.go:160] Trying to delete rs: 10.128.35.47:4007/TCP/10.125.2.15:4007
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393523    5389 graceful_termination.go:89] Try delete rs "10.128.35.47:4007/TCP/10.125.2.15:4007" err: Failed to delete rs "10.128.35.47:4007/TCP/10.125.2.15:4007", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393530    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.35.47:4007/TCP/10.125.2.15:4007
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393538    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.241:4059/TCP/10.125.2.26:4059
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393563    5389 graceful_termination.go:89] Try delete rs "10.128.33.241:4059/TCP/10.125.2.26:4059" err: Failed to delete rs "10.128.33.241:4059/TCP/10.125.2.26:4059", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393571    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.241:4059/TCP/10.125.2.26:4059
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393578    5389 graceful_termination.go:160] Trying to delete rs: 10.128.32.132:5432/TCP/10.125.2.13:6432
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393605    5389 graceful_termination.go:89] Try delete rs "10.128.32.132:5432/TCP/10.125.2.13:6432" err: Failed to delete rs "10.128.32.132:5432/TCP/10.125.2.13:6432", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393613    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.32.132:5432/TCP/10.125.2.13:6432
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393621    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.252:6379/TCP/10.125.6.26:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393648    5389 graceful_termination.go:89] Try delete rs "10.128.33.252:6379/TCP/10.125.6.26:6379" err: Failed to delete rs "10.128.33.252:6379/TCP/10.125.6.26:6379", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393656    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.252:6379/TCP/10.125.6.26:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393664    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.237:6379/TCP/10.125.6.34:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393690    5389 graceful_termination.go:89] Try delete rs "10.128.33.237:6379/TCP/10.125.6.34:6379" err: Failed to delete rs "10.128.33.237:6379/TCP/10.125.6.34:6379", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393697    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.237:6379/TCP/10.125.6.34:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393704    5389 graceful_termination.go:183] Try flush graceful termination list err
Nov 15 07:50:52 hex-48b-pm kube-proxy[5389]: I1115 07:50:52.393838    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.156:8125/TCP/10.125.2.21:8125
Nov 15 07:50:52 hex-48b-pm kube-proxy[5389]: E1115 07:50:52.393940    5389 graceful_termination.go:89] Try delete rs "10.128.33.156:8125/TCP/10.125.2.21:8125" err: device or resource busy
Nov 15 07:50:52 hex-48b-pm kube-proxy[5389]: I1115 07:50:52.393957    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.142:6379/TCP/10.125.6.13:6379
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420734    5389 proxier.go:1496] Failed to list IPVS destinations, error: invalid argument
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420763    5389 proxier.go:809] Failed to sync endpoint for service: 10.128.33.156:8125/TCP, err: invalid argument
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420889    5389 proxier.go:1485] Failed to get IPVS service, error: Expected only one service obtained=0
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420903    5389 proxier.go:809] Failed to sync endpoint for service: 10.128.35.150:6379/TCP, err: Expected only one service obtained=0
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420950    5389 proxier.go:1455] Failed to add IPVS service "monitoring/extradata-inserter:": file exists
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420961    5389 proxier.go:812] Failed to sync service: 10.128.34.54:80/TCP, err: file exists
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.421886    5389 proxier.go:1544] Failed to add destination: 10.125.27.66:80, error: file exists

kube-proxy (์ˆ˜๋™์œผ๋กœ ugh)๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ๋ชจ๋‘ ๋ณต๊ตฌ๋˜๊ณ  ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒฐ๊ตญ ๋‹ค์‹œ ๋ฉˆ์ถœ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ :

  • Kubernetes ๋ฒ„์ „ ( kubectl version ) : v1.12.2
  • ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ : ๋ฒ ์–ด ๋ฉ”ํƒˆ, 64 ๋น„ํŠธ Linux
  • OS (์˜ˆ : / etc / os-release) : Ubuntu 16.04.5 LTS
  • ์ปค๋„ (์˜ˆ : uname -a ) : 4.15.0-39-generic (ํ•˜์ง€๋งŒ ์›๋ž˜ 4.4 ์ปค๋„์—์„œ๋„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค)
  • ๋„๊ตฌ ์„ค์น˜ : https://storage.googleapis.com/kubernetes-release/release/v1.12.2/kubernetes-server-linux-amd64.tar.gz์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ
  • ๊ธฐํƒ€ :


/ ์ข…๋ฅ˜์˜ ๋ฒ„๊ทธ

areipvs kinbug sinetwork triagunresolved

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

PR์€ ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ ์œ„์น˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

  • 1.11.7
  • 1.12.5
  • 1.13.2

๋ชจ๋“  142 ๋Œ“๊ธ€

/ ์‹œ๊ทธ ๋„คํŠธ์›Œํฌ

๊ฐ™์€ ์˜ค๋ฅ˜. 1.11.1์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค. kube-proxy๊ฐ€ ์•ˆ์ •์ ์ด์ง€ ์•Š์€ ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์•„์ง‘๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€ pod๋Š” ์—”๋“œ ํฌ์ธํŠธ๊ฐ€ ์ •์ƒ์ด์ง€๋งŒ svc์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฆ„ ํ™•์ธ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ์— ์ค‘์š”ํ•œ ๋ฒ„๊ทธ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

/ area ipvs

@gjcarneiro ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

๊ธ€์Ž„, ๋‚˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ธฐ๋ณธ (iptables) ๋ชจ๋“œ๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ–ˆ๋Š”๋ฐ ๊ทธ ์ดํ›„๋กœ ๊ฝค ์•ˆ์ •์ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค ...

@ kubernetes / sig-network-bugs

@berlinsaint : ์•Œ๋ฆผ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์–ธ๊ธ‰์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
@ kubernetes / sig-network-bugs

์— ๋Œ€ํ•œ ์‘๋‹ต ์ด :

@ kubernetes / sig-network-bugs

PR ๋Œ“๊ธ€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ kubernetes / test-infra ์ €์žฅ์†Œ์— ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์„ธ์š”.

1.12.2 ๋ฐ 1.13.0-beta1 ๋ชจ๋‘ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. @ M1093782566 @ Lion-Wei

@gjcarneiro ์ปค๋„ 4.15์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

ํ—‰

1.12.2 ๋ฐ 1.13.0-beta1 ๋ชจ๋‘ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. @ m1093782566 @ Lion-Wei

์šฐํŽธํ•จ์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ? ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค. .์†Œ๋…„

ํ—‰

1.12.2 ๋ฐ 1.13.0-beta1 ๋ชจ๋‘ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. @ m1093782566 @ Lion-Wei

์šฐํŽธํ•จ์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ? ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค. .์†Œ๋…„

๋‚ด ์•„๋ฐ”ํƒ€๋ฅผ ํด๋ฆญํ•˜๋ฉด

๋˜ํ•œ ์ค‘์•™ ์ง‘์ค‘์‹ ๋กœ๊น… ์‹œ์Šคํ…œ์—์„œ ์ด๊ฒƒ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ย  | Time | sys_name | log_lvl | tag | log_msg
ย  | November 27th 2018, 17:56:23.501 | k8lab2bs | 6 | kube.kube-system.kube-proxy | lw: remote out of the list: 10.12.12.1:443/TCP/10.12.100.133:6443
ย  | November 27th 2018, 17:56:23.500 | k8lab2bs | 6 | kube.kube-system.kube-proxy | Deleting rs: 10.12.12.1:443/TCP/10.12.100.133:6443
ย  | November 27th 2018, 17:56:23.497 | k8lab2bs | 6 | kube.kube-system.kube-proxy | Trying to delete rs: 10.12.12.1:443/TCP/10.12.100.133:6443

v1.12.3 (์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์•„๋‹Œ ์ƒˆ๋กœ ์„ค์น˜)์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. ์‹ ๊ณ  ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์กฐ์‚ฌ๋ฅผํ•˜๊ณ  ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ ์•Œ์•„ ๋‚ด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง„์ฒ™ ์ƒํ™ฉ์ด ์žˆ์œผ๋ฉด ์—ฌ๊ธฐ์—๋ณด๊ณ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•Œ์•„๋‘๋ฉด ์ข‹์€ ์ผ ์™ธ์—๋„ ๊นจ์ง„ ๋„ท ๋งํฌ ์†Œ์ผ“์„ ๊ฐ์ง€ํ•˜๊ณ  ์žฌ์„ค์ •ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋งˆ๋ จ ๋  ๋•Œ๊นŒ์ง€๋Š” IPVS์— ๋Œ€ํ•ด ํ™•์‹ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์™€ ์ถ”์ ์—์„œ ์ถ”์ธก ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ netlink ์†Œ์ผ“์ด ์†์ƒ๋œ ์ƒํƒœ๊ฐ€๋˜๊ณ  ์ฝ๊ธฐ / ์“ฐ๊ธฐ ์ž‘์—…์ด ์˜์›ํžˆ ์ค‘๋‹จ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” kube-proxy๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ, ๊ทธ๊ฒƒ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋„ท ๋งํฌ ์†Œ์ผ“์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ  ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์•„๋‡จ, ์ €๋Š” ์ž์› ๋ด‰์‚ฌ๋ฅผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Go, ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๋กœ๊ทธ์™€ ์ถ”์ ์—์„œ ์ถ”์ธก ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ netlink ์†Œ์ผ“์ด ์†์ƒ๋œ ์ƒํƒœ๊ฐ€๋˜๊ณ  ์ฝ๊ธฐ / ์“ฐ๊ธฐ ์ž‘์—…์ด ์˜์›ํžˆ ์ค‘๋‹จ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ช‡ ์ผ ์ „์— ์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด go netlink ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. netlink ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ด์ „์— ๊ฝค ์•ˆ์ •์ ์œผ๋กœ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์›์ธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1.12.3๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ •๋ณด ๋กœ๊ทธ๋ฅผ ํ•„ํ„ฐ๋ง ํ•œ ํ›„
kubectl -n kube-system logs kube-proxy-29zh8|egrep ^E; kubectl -n kube-system logs kube-proxy-2pqdn|egrep ^E; kubectl -n kube-system logs kube-proxy-4xw8q|egrep ^E; kubectl -n kube-system logs kube-proxy-6j4bc|egrep ^E; kubectl -n kube-system logs kube-proxy-brbjb|egrep ^E; kubectl -n kube-system logs kube-proxy-r6cg2|egrep ^E; kubectl -n kube-system logs kube-proxy-rpl6t|egrep ^E;
๋ชจ๋“  ํ”„๋ก์‹œ ๋…ธ๋“œ ๋กœ๊ทธ๋Š”

bash E1129 01:01:10.862180 1 proxier.go:430] Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed E1129 21:09:11.422553 1 proxier.go:1485] Failed to get IPVS service, error: Expected only one service obtained=0 E1129 21:09:11.422699 1 proxier.go:1116] Failed to sync endpoint for service: 172.17.0.1:31800/TCP, err: Expected only one service obtained=0 E1129 01:01:11.618125 1 proxier.go:430] Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed E1129 01:01:11.905626 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:01:41.771596 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:02:11.923872 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:02:42.060658 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:03:12.326762 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:03:42.718417 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:04:12.859933 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:04:42.963527 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:05:13.078486 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:05:43.185141 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:06:13.303090 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:06:43.408582 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:07:13.550358 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:07:43.686235 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:08:13.786326 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:08:43.981764 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:09:14.188053 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:09:44.316316 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:10:14.440466 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:10:44.550092 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:11:14.658190 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:11:44.765396 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:12:14.975724 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:12:45.085632 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:13:15.317679 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:13:45.432469 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:14:15.689681 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:14:45.813565 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:15:33.434931 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:16:03.578017 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:16:33.709744 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:17:03.823325 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:17:33.935191 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:18:04.053183 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:18:34.248994 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:19:04.375946 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:19:34.552779 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:19:36.596182 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:19:47.433846 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:20:17.534206 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:20:47.682350 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:21:17.825175 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:21:47.942548 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:22:18.055820 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:22:48.149494 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:23:18.564985 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:23:48.678462 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:24:18.836217 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:24:48.991344 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:25:19.091032 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:25:49.187178 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:26:19.301770 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:26:49.425812 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:27:19.606711 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:27:49.721224 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:28:20.109117 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:28:50.211574 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:29:20.405007 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:29:50.507766 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:30:20.605471 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:30:50.702798 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:31:20.807400 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:31:50.903049 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:32:21.005618 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:32:51.106378 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:33:21.224447 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:33:51.354916 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:34:21.467898 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:34:51.583216 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:35:21.691099 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:35:51.797151 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:36:21.921057 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:36:52.083821 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:37:02.445737 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:37:07.427811 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:37:37.546362 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:38:07.651769 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:38:37.797858 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:39:08.064112 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:39:38.181089 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:40:08.282892 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:40:38.390167 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:41:08.508549 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:41:38.617921 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:42:08.728384 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:42:38.844074 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:43:08.973517 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:43:39.092095 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:44:09.202329 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:44:39.363721 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:45:09.476240 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:45:39.764944 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:46:09.894587 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:46:40.013388 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:47:10.127894 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:47:40.236119 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:48:10.397111 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:48:40.600084 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:49:10.877034 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:49:41.023593 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:50:11.149894 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:50:41.262320 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:51:11.410407 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:51:41.547057 1 proxier.go:1622] Failed to unbind service addr fe80::1c5d:70ff:fef2:e97b from dummy interface kube-ipvs0: error unbind address: fe80::1c5d:70ff:fef2:e97b from interface: kube-ipvs0, err: cannot assign requested address E1129 01:52:11.609974 1 proxier.go:1544] Failed to add destination: 172.31.200.9:443, error: file exists E1129 01:52:11.610088 1 graceful_termination.go:89] Try delete rs "10.96.0.1:443/TCP/172.31.10.38:6443" err: invalid argument E1129 01:52:11.616690 1 proxier.go:1485] Failed to get IPVS service, error: Expected only one service obtained=0 E1129 01:52:11.616767 1 proxier.go:1116] Failed to sync endpoint for service: 172.18.0.1:31645/TCP, err: Expected only one service obtained=0 E1129 01:01:12.181112 1 proxier.go:430] Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed E1129 01:01:22.278474 1 proxier.go:430] Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed E1129 01:01:21.459378 1 proxier.go:430] Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed E1129 01:01:17.442316 1 proxier.go:430] Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed E1129 20:10:17.955872 1 proxier.go:1455] Failed to add IPVS service "dev-fffrf/mysql-testportal:mysql": file exists E1129 20:10:17.955863 1 graceful_termination.go:89] Try delete rs "10.100.217.68:15004/TCP/192.100.143.225:15004" err: Failed to delete rs "10.100.217.68:15004/TCP/192.100.143.225:15004", can't find the real server E1129 20:10:17.955892 1 proxier.go:1119] Failed to sync service: 172.17.0.1:31645/TCP, err: file exists E1129 20:10:17.956412 1 proxier.go:1485] Failed to get IPVS service, error: invalid argument E1129 20:10:17.956417 1 graceful_termination.go:89] Try delete rs "10.96.0.1:443/TCP/172.31.10.38:6443" err: Failed to delete rs "10.96.0.1:443/TCP/172.31.10.38:6443", can't find the real server E1129 20:10:17.956426 1 proxier.go:1116] Failed to sync endpoint for service: 172.31.200.67:31645/TCP, err: invalid argument E1129 20:10:17.956448 1 graceful_termination.go:89] Try delete rs "10.101.1.98:5672/TCP/192.100.29.180:5672" err: invalid argument E1129 20:10:17.956547 1 graceful_termination.go:183] Try flush graceful termination list err E1129 01:01:17.484679 1 proxier.go:430] Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed E1129 02:52:17.498135 1 graceful_termination.go:89] Try delete rs "10.96.0.1:443/TCP/172.31.10.38:6443" err: invalid argument E1129 02:52:17.498396 1 graceful_termination.go:183] Try flush graceful termination list err E1129 06:28:17.607394 1 graceful_termination.go:89] Try delete rs "10.96.0.1:443/TCP/172.31.10.38:6443" err: device or resource busy E1129 06:28:17.607513 1 graceful_termination.go:183] Try flush graceful termination list err E1129 10:02:17.718458 1 proxier.go:1544] Failed to add destination: 192.100.183.139:3306, error: file exists E1129 10:02:17.718606 1 proxier.go:1544] Failed to add destination: 192.100.183.152:8080, error: invalid argument

BTW. ๋‚ด ๋กœ๊ทธ ์œ„์—์„œ kube-proxy๋Š” ์—ฌ์ „ํžˆ iptables-restore์— ๋งŽ์€ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชจ๋“  ๋…ธ๋“œ๋Š” iptable์˜ ๋ฒ„์ „ 1.6.0์ด์žˆ๋Š” UBUNTU 16.04์ž…๋‹ˆ๋‹ค.
@ M1093782566 @ Lion-Wei

1.12.1์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1.12.1 ๋ฐ 1.12.2์˜ ๋ธํƒ€์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ •์ƒ์ ์ธ ์ข…๋ฃŒ์™€ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ v1.13.1์—์„œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@ m1093782566 ์ˆ˜์ • ์‚ฌํ•ญ์ด 1.12 ๋ผ์ธ์œผ๋กœ ๋ฐฑ ํฌํŠธ๋ฉ๋‹ˆ๊นŒ? ํ˜„์žฌ ์ด๊ฒƒ์€ 1.12.3 ๋ณด์•ˆ ์ˆ˜์ •์„ ์ฐจ๋‹จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

1.11.2์—์„œ 1.11.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

@ m1093782566 ์ˆ˜์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ปค๋ฐ‹์„ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด๊ฑด ์ •๋ง ๋ฏธ์ณค์–ด ์š”. ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ์ •๋ง ์‹ฌํ•˜๊ฒŒ ๋ฌผ ๋ ธ์–ด์š”.

1.12.1์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1.12.1 ๋ฐ 1.12.2์˜ ๋ธํƒ€์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

1.11.2์—์„œ 1.11.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„๊ทธ๊ฐ€ ์ฒด๋ฆฌ๋กœ ๋ฝ‘ํ˜”์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” PR์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค : https://github.com/kubernetes/kubernetes/pull/71515

True @ Quentin-M

์˜ˆ, ์ด๊ฒƒ์€ ์•„๋งˆ๋„ delete ํ•จ์ˆ˜์˜ ์ˆ˜์ •์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค (PR ์ œ๋ชฉ๊ณผ ์‹ค์ œ๋กœ ๊ด€๋ จ์ด ์—†์Œ).

@ m1093782566 1.12 ์šฉ ์ฒด๋ฆฌ ํ”ฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด PR์„ ๋ฐฑ ํฌํŠธํ• ๊นŒ์š” ์•„๋‹ˆ๋ฉด ์‚ญ์ œ ๊ธฐ๋Šฅ์˜ ์ˆ˜์ • ๋งŒํ• ๊นŒ์š”? (1.12์—์„œ UDP ํ๋ฆ„์œผ๋กœ ๋™์ž‘ ๋ณ€๊ฒฝ ๋ฐฉ์ง€)

๋ฒ„๊ทธ๊ฐ€ ์ฒด๋ฆฌ๋กœ ๋ฝ‘ํ˜”์Šต๋‹ˆ๊นŒ?

@ Quentin-M ๋ฒ„๊ทธ๊ฐ€ https://github.com/kubernetes/kubernetes/pull/66012์— ์˜ํ•ด ๋„์ž… ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.์ด ๋ฒ„๊ทธ๋Š” 1.11.5 ๋ฐ 1.12.2 ๋ฆด๋ฆฌ์Šค๋กœ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#changelog -since-v1114
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.12.md#other -notable-changes-1

# 71515๋Š” ๋ชจ๋‘ ์ฒด๋ฆฌ ๋”ฐ์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด์ ์œผ๋กœ ์šฐ์•„ํ•œ ์ข…๋ฃŒ๋Š” # 66012๋กœ๋งŒ ๋„์ž…๋˜๊ณ  ์„ ํƒ๋˜์–ด ๋™์ž‘ ๋ณ€๊ฒฝ์ด ์ด๋ฏธ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

k8s.gcr.io/kube-proxy:v1.13.1-beta.0 ์—ฌ์ „ํžˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค ์ค‘ 60 %๋Š” 24 ์‹œ๊ฐ„ ์ด๋‚ด์— ๊ฐ‡ํ˜”์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ 1.12.1์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ Quentin-M : kube-proxy์˜ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋‹ค์Œ ์œ ํ˜•์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ฌ๋ผ ์กŒ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393664    5389 graceful_termination.go:160] Trying to delete rs: 10.128.33.237:6379/TCP/10.125.6.34:6379
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: E1115 07:49:52.393690    5389 graceful_termination.go:89] Try delete rs "10.128.33.237:6379/TCP/10.125.6.34:6379" err: Failed to delete rs "10.128.33.237:6379/TCP/10.125.6.34:6379", can't find the real server
Nov 15 07:49:52 hex-48b-pm kube-proxy[5389]: I1115 07:49:52.393697    5389 graceful_termination.go:93] lw: remote out of the list: 10.128.33.237:6379/TCP/10.125.6.34:6379
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420950    5389 proxier.go:1455] Failed to add IPVS service "monitoring/extradata-inserter:": file exists

๋‘˜ ๋‹ค PR์—์„œ ์ˆ˜์ • ๋œ ์‚ญ์ œ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์ด ์—†์–ด๋„ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด์ด ์ˆ˜์ •์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ชจ๋“  ๊ฒƒ์ด 1.12.1 ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ •์ƒ์ ์ธ ์ข…๋ฃŒ์—์„œ ๋น„๋กฏ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค (# 66012).

์ œ ์ƒ๊ฐ์—๋Š” ์•„์ด๋””์–ด๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ ๋œ ์‹ค์ œ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐ€์ค‘์น˜๋ฅผ 1๋กœ ๋Š˜๋ฆฌ๊ณ  gracefultermination ๋ชฉ๋ก์—์„œ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ…Œ์ŠคํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค (ํ•˜์ง€๋งŒ ๋‹ค์Œ ์ฃผ์— Kubecon์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊นŒ๋‹ค๋กœ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค)

@ Lion-Wei ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

Ok ์Šคํฌ๋ž˜์น˜, ๋ฐฉ๊ธˆ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค : https://github.com/kubernetes/kubernetes/blob/456c351e31517543e0686b2cadf21615d30a738f/pkg/proxy/ipvs/proxier.go#L1538 -L1542

์ด ๊ฒฝ์šฐ RS๋Š” gracefulDelete ๋ชฉ๋ก๊ณผ IPVS RS์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์ค‘์น˜๋ฅผ ๋‹ค์‹œ 1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์‚ญ์ œ ๋œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์—”๋“œ ํฌ์ธํŠธ ๋™๊ธฐํ™”๋ฅผ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๋กœ๊ทธ์˜์ด ๋ถ€๋ถ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420734    5389 proxier.go:1496] Failed to list IPVS destinations, error: invalid argument
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420763    5389 proxier.go:809] Failed to sync endpoint for service: 10.128.33.156:8125/TCP, err: invalid argument
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420889    5389 proxier.go:1485] Failed to get IPVS service, error: Expected only one service obtained=0
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420903    5389 proxier.go:809] Failed to sync endpoint for service: 10.128.35.150:6379/TCP, err: Expected only one service obtained=0
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420950    5389 proxier.go:1455] Failed to add IPVS service "monitoring/extradata-inserter:": file exists
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.420961    5389 proxier.go:812] Failed to sync service: 10.128.34.54:80/TCP, err: file exists
Nov 15 07:51:22 hex-48b-pm kube-proxy[5389]: E1115 07:51:22.421886    5389 proxier.go:1544] Failed to add destination: 10.125.27.66:80, error: file exists

ํ™•์ธ ํ›„ ์‚ญ์ œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ • ํ•œ ์ปค๋ฐ‹์ด v1.13.1-beta.0 ๋˜๋Š” 11 ์›” 7 ์ผ์— ์ž˜๋ฆฐ v1.14.0-alpha.0 ์— ์—†์Šต๋‹ˆ๋‹ค.
๋งˆ์Šคํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋‹ค์Œ 1.14 ์•ŒํŒŒ ๋ฆด๋ฆฌ์Šค์—์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

1.13 ์šฉ ์ฒด๋ฆฌ ํ”ฝ๋„ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค.

1.12.0์—์„œ 1.13.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋™์ผํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

iptables๋กœ ๋˜ ๋Œ๋ฆฌ๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ œ๋ฐœ ๋„์™€์ฃผ์„ธ์š”.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ stackoverflow์— ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

1.11.5์—์„œ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ž„์‹œ๋กœ ipvs์—์„œ iptables๋กœ ๋˜๋Œ ๋ ธ์Šต๋‹ˆ๋‹ค.

1.11.5์—์„œ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์กด์žฌํ•˜๋Š” ์ทจ์•ฝ์ ์œผ๋กœ ์ธํ•ด 1.11.4๋กœ ๋กค๋ฐฑ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. iptables๋กœ ์ „ํ™˜ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ”ฝ์Šค๋Š” 1.11.x์— ๋Œ€ํ•ด ๋ฆด๋ฆฌ์Šค ๋  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

์ทจ์•ฝ์ ์˜ ์˜ํ–ฅ์„๋ฐ›์ง€ ์•Š๊ณ  kube-proxy๋ฅผ ๋งค์šฐ ๊ตฌ์ฒด์ ์œผ๋กœ ๋กค๋ฐฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ Quentin-M ๊ทธ๋ž˜, ๊ทธ ์ƒ๊ฐ์ด ๋‚ด ๋งˆ์Œ์„ ๊ฐ•ํƒ€ํ–ˆ์ง€๋งŒ, ๋‹ค๋ฅธ ์ƒ๊ฐ์— ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค๋ฉด ๋‚˜๋Š” iptables์™€ ํ•จ๊ป˜ ๊ฑฐ๊ธฐ์— ์žˆ์—ˆ๋˜ ์šฐ์•„ํ•œ ์ข…๋ฃŒ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์•˜์„ ๊ฒƒ์ด๋‹ค. ๊ณ ๊ฐ์ด ๋ณ€๊ฒฝ์„ ์›ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ Quentin-M์€์ด ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 1.11.x์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

@emptywee 1.11 ์šฉ ์ฒด๋ฆฌ ํ”ฝ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค : https://github.com/kubernetes/kubernetes/pull/71848
๊ณง ๋ณ‘ํ•ฉ๋˜์–ด 1.11.6

์ด๋ฏธ 1.12 ( 1.12.4 ) ๋ฐ 1.13 ( 1.13.1 )์— ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฒด๋ฆฌ ํ”ฝ๋„ 1.11์—์„œ ํ•ฉ๋ณ‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
3 ๊ฐœ์˜ ๋ธŒ๋žœ์น˜์—์„œ ๋‹ค์Œ ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค (ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ์ง€์ • kube-proxy ๋นŒ๋“œ (๋˜๋Š” ํŒจ์น˜๊ฐ€์žˆ๋Š” ํ•˜์ดํผ ์ฟ ๋ฒ  ๋„์ปค ์ด๋ฏธ์ง€)๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ์ „์— ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ)

@lbernail ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ๋‹ค!

์ˆ˜์ • ์‚ฌํ•ญ์€ ์ด๋ฏธ v1.11, v1.12 ๋ฐ v1.13์œผ๋กœ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…Œ์ŠคํŠธ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@ m1093782566 ๋‚˜๋Š” ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. btw, ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ด์— ๋Œ€ํ•œ ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค๋ฅผ ์–ธ์ œ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @berlinsaint , ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ด์— ๋Œ€ํ•œ ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค๋ฅผ ์–ธ์ œ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๊นŒ?

์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ ๋œ ์ƒˆ๋กœ์šด ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค๋Š” 2 ์ฃผ ์ด๋‚ด์— ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

@emptywee : ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค : lbernail/hyperkube:v1.12.4-beta.1
์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”!

@lbernail v1.11.5์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋จผ์ € kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ v1.12.4๋กœ ์˜ฌ๋ ค์•ผํ•˜๋‚˜์š”? ์–ด์จŒ๋“  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@emptywee ์˜ˆ, ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (1.10 ํด๋Ÿฌ์Šคํ„ฐ์—์„œ kube-proxy 1.11์„ ๋ช‡ ๋‹ฌ ๋™์•ˆ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค)

์˜ค๋Š˜ ๋‚˜์ค‘์— 1.11 ๋นŒ๋“œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@lbernail ์˜ˆ, ๋™์ผํ•œ ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@emptywee ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค : lbernail/hyperkube:v1.11.6-beta.1

@ m1093782566 @lbernail ์–ด๋Š ๋‚  ๋ฐค
์ ์–ด๋„ ํ•˜๋ฃจ ์ „์— ํ•œ ๋ฒˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์„ ํ™•์ธํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์˜ค๋žซ๋™์•ˆ ์งœ์ฆ๋‚˜๊ฒŒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด์ผ 1.11์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋ฉฐ์น  ๋™์•ˆ๋„ ํ…Œ์ŠคํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@lbernail ๋‚˜๋Š” ๋‹น์‹ ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค lbernail/hyperkube:v1.11.6-beta.1 (๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!)
can't find the real server ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์•„ ์ฆ‰์‹œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•˜๋ฃจ ๋ฐ˜์ด ์ง€๋‚˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ 3/6์—์„œ ์˜ค๋ž˜๋œ ipvs ํ•ญ๋ชฉ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ณ ์žฅ๋‚œ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ipvs ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.
kube-proxy๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— :

-A -t 10.230.65.211:9494 -s rr
-a -t 10.230.65.211:9494 -r 10.230.158.10:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.158.57:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.213.245:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.216.170:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.216.180:9494 -m -w 0
-a -t 10.230.65.211:9494 -r 10.230.222.151:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.222.158:9494 -m -w 0
-a -t 10.230.65.211:9494 -r 10.230.222.160:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.226.82:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.226.85:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.226.117:9494 -m -w 0
-a -t 10.230.65.211:9494 -r 10.230.242.229:9494 -m -w 1

kube-proxy๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ :

-A -t 10.230.65.211:9494 -s rr
-a -t 10.230.65.211:9494 -r 10.230.158.36:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.213.236:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.216.129:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.216.163:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.226.84:9494 -m -w 1
-a -t 10.230.65.211:9494 -r 10.230.226.124:9494 -m -w 1

@lbernail @bjornryden 1.11.5์—์„œ IPVS๋กœ ์ „ํ™˜ํ–ˆ์„ ๋•Œ์ด ์Šค๋ ˆ๋“œ์— ๋“ค์–ด๊ฐ„ ์ด์œ ์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๋‚  ์„œ๋น„์Šค์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Œ์„ ๋ฐœ๊ฒฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— kube-proxy๊ฐ€ ์ค‘๋‹จ๋˜์–ด ์„œ๋น„์Šค ํ•ญ๋ชฉ์„ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” kube-proxy v1.11.5์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ (ipvs ํ…Œ์ด๋ธ”์˜ ์ž˜๋ชป๋œ IP)๊ฐ€ ์žˆ์Œ์„ ์•Œ๋ ค ๋“œ๋ฆฌ๊ธฐ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@bjornryden ์‚ญ์ œ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค (ํŒจ์น˜๊ฐ€ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค).

๋ฐฑ์—”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ •์ƒ ์ข…๋ฃŒ๊ฐ€ ์ƒˆ ์—”๋“œ ํฌ์ธํŠธ์— ์˜ํ–ฅ์„์ฃผ์ง€ ์•Š์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ƒํ•ฉ๋‹ˆ๋‹ค (์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ถ€ ์˜ค๋ž˜๋œ ์—”๋“œ ํฌ์ธํŠธ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค๋ฉด ๋†€๋ผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค).

10.230.65.211:9494 ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ kube-proxy ๋กœ๊ทธ๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ์ด ์„œ๋น„์Šค / ๋ฐฐํฌ์—์„œ ํŠน๋ณ„ํ•œ ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๊นŒ? (์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๋“œ๊ฐ€ ๋งค์šฐ ์ž์ฃผ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด HPA ๋’ค์— ์žˆ์Šต๋‹ˆ๊นŒ?)

๊ทธ๊ฒƒ์€ IPVS ๋ชจ๋“œ์—์„œ @lbernailํ•˜์—ฌ 1.11.6-beta.1 ์ด๋ฏธ์ง€ ๋‚ด ์‹คํ—˜์‹ค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ 2 ์ผ ๋™์•ˆ ์šด์˜ํ•˜๊ณ  ๊ทธ๋ž˜์„œ.
์ง€๊ธˆ๊นŒ์ง€๋Š” ์ค‘๋‹จ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ipvs ํ•ญ๋ชฉ์„ ๊ณ„์† ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ์ด์ƒํ•œ ๊ด€์ฐฐ :

lvdkbm501 ~ # ipvsadm -L -n -t 10.158.9.61:443
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.158.9.61:443 rr
  -> 10.158.128.28:8443           Masq    1      0          0         
  -> 10.158.130.24:8443           Masq    1      0          0         
lvdkbm501 ~ # ipvsadm -L -n -t 10.158.9.61:443
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.158.9.61:443 rr
  -> 10.158.128.28:8443           Masq    1      0          0         
lvdkbm501 ~ # ipvsadm -L -n -t 10.158.9.61:443
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.158.9.61:443 rr
  -> 10.158.128.28:8443           Masq    1      0          0         
lvdkbm501 ~ # ipvsadm -L -n -t 10.158.9.61:443
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.158.9.61:443 rr
  -> 10.158.128.28:8443           Masq    1      0          0         
  -> 10.158.128.28:8443           Masq    1      0          0         
lvdkbm501 ~ # ipvsadm -L -n -t 10.158.9.61:443
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.158.9.61:443 rr
  -> 10.158.128.28:8443           Masq    1      0          0         
  -> 10.158.129.28:8443           Masq    1      0          0         

ipvsadm์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ์€ ์„œ๋น„์Šค์˜ ํฌ๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ pod๊ฐ€ ์‚ญ์ œ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ํ•ญ๋ชฉ์ด ์‚ฌ๋ผ ์กŒ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฌ๋žŒ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋  ๊ฒƒ์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ๋– ๋‚œ ํฌ๋“œ์™€ ๋™์ผํ•œ IP ์ฃผ์†Œ๋กœ ๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ญ์ œ ๋œ ํฌ๋“œ๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ์ƒˆ ํฌ๋“œ์˜ ์˜ฌ๋ฐ”๋ฅธ IP๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์™ธ์—๋Š” ๊ดœ์ฐฎ ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹คํ—˜์‹ค ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ๋งŒํผ ๋ฐ”์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. @bjornryden ์˜ ๋Œ“๊ธ€์€ ๊ณ ๊ฐ์—๊ฒŒ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜์žˆ๋Š” ๋” ๋ฐ”์œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ๊ฑฑ์ •

@emptywee ์‚ญ์ œ ๋œ ํฌ๋“œ๊ฐ€ 10.158.130.24 ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค.

TCP  10.158.9.61:443 rr
  -> 10.158.128.28:8443           Masq    1      0          0         
  -> 10.158.128.28:8443           Masq    1      0          0 

๋™์ผํ•œ ์‹ค์ œ ์„œ๋ฒ„๋ฅผ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํฌ๋“œ ์‚ญ์ œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ๋™์ž‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

  • ์ด ํฌ๋“œ์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ RS๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ์ด์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ€์ค‘์น˜๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค (์„ค์ •๋œ ์—ฐ๊ฒฐ์ด ๊ณ„์†๋˜๊ณ  ์ƒˆ ์—ฐ๊ฒฐ์ด ์—†์Œ).
  • ๋งค๋ถ„ ๊ฐ€์ค‘์น˜๊ฐ€ 0 ์ธ ๋ชจ๋“  RS๋ฅผ ํ™•์ธํ•˜๊ณ  (์ด๊ฒƒ์ด ์ •์ƒ ์ข…๋ฃŒ ๋ชฉ๋ก์„์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค) ๋” ์ด์ƒ ์—ฐ๊ฒฐ์ด์—†๋Š” RS๋Š” ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

@lbernail ๋งž์Šต๋‹ˆ๋‹ค. ์‚ญ์ œ ๋œ ํฌ๋“œ์—๋Š” ํ•ด๋‹น IP ์ฃผ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ค, ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ๋„ ์ด์ƒํ•˜๊ฒŒ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๊ธฐํšŒ๊ฐ€๋˜๋ฉด ์žฌํ˜„ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋™์ž‘์„ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋กœ๊ทธ ์ƒ์„ธ๋„๋ฅผ ๋†’์ด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ์ˆ˜์ค€์œผ๋กœ?

@emptywee : ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, --v=5 ๋งŽ์€ ์ •๋ณด๋ฅผ ์ฃผ์…”์•ผํ•ฉ๋‹ˆ๋‹ค
๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ IPVS์˜ VS์—์„œ RS๊ฐ€ ๋‘ ๋ฒˆ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋„ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์ปค๋„์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@lbernail ์€ --v = 5๋กœ ์„ค์ •ํ•˜๊ณ  ์•„๋งˆ๋„ ์ฃผ๋ง์— ์–ผ๋งˆ ๋™์•ˆ ์žฌ์ƒ์‚ฐ์„ ์‹œ๋„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CoreOS ์•ˆ์ • ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

image

4.14๋Š” ์ตœ์‹  ๋ฒ„์ „์ด๋ฏ€๋กœ IPVS ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋†€๋ž„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
@bjornryden ์—์„œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํŒจ์น˜ ๋œ ๋ฒ„์ „์ด์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— ์ŠคํŠธ๋ ˆ์Šค๋ฅผ

@lbernail ๋ถˆํ–‰ํžˆ๋„ ํ•œ ๋ฒˆ๋งŒ ๋ณธ ipvs ํ•ญ๋ชฉ ๋ณต์ œ ๋™์ž‘์„ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์ค‘์น˜๊ฐ€ 0 ์ธ ํ•ญ๋ชฉ์€ ๋ณธ ์ ์ด ์—†์ง€๋งŒ ์‚ญ์ œ ํ•œ ํฌ๋“œ๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ข…๋ฃŒ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์— ์˜ํ•ด ์„ค๋ช… ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ kube-proxy๊ฐ€ 5 ์ผ ์ด์ƒ ์‹คํ–‰ ๋œ ํ›„ ์‘๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋” ๋ฐ”์œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฉ์‹์œผ๋กœ ๋‹ค์‹œ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@emptywee ์ด๊ฒƒ์€ "์ข‹์€"์†Œ์‹์ž…๋‹ˆ๋‹ค.

๊ฐ€์ค‘์น˜๋Š” ActiveConn ๋˜๋Š” InActiveConn ์ธ ๊ฒฝ์šฐ์—๋งŒ 0์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณด๋ ค๋ฉด ์—ฐ๊ฒฐ๋œ ํฌ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ˆ˜๋ช…์ด ๊ธด ์—ฐ๊ฒฐ์„ ์—ด๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค (์˜ˆ : ํ…”๋„ท ์‚ฌ์šฉ).

5 ์ผ๊ฐ„์˜ ์•ˆ์ •์€ ํฌ์†Œ์‹์ž…๋‹ˆ๋‹ค! ๋” ๋ฐ”์œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

๊ฐ€๋Š” ๊ธธ์— ๋ช‡ ๊ฐ€์ง€ ์ž‘์€ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • https://github.com/kubernetes/kubernetes/pull/71834 : sessionAffinity๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์—์„œ ์ •์ƒ์ ์ธ ์ข…๋ฃŒ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค (์ด๋ฏธ ๋งˆ์Šคํ„ฐ์—์„œ 1.13, 1.12 ๋ฐ 1.11 ์šฉ์œผ๋กœ ์ƒ์„ฑ ๋œ ์ฒด๋ฆฌ ์„ ํƒ).
  • https://github.com/kubernetes/kubernetes/pull/71895 ๋ฐ https://github.com/kubernetes/kubernetes/pull/72106 : ์„œ๋น„์Šค ์‚ญ์ œ์‹œ ์ •์ƒ ์ข…๋ฃŒ ์ง€์› (์ฒซ ๋ฒˆ์งธ๋Š” ์ด๋ฏธ ๋งˆ์Šคํ„ฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๊ฐ€ ๋ชจ๋“  ์ง€์ ์—์„œ ๋ชจ๋‘ ์ฒด๋ฆฌ๋ฅผ ๋”ฐ๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)

๋˜ํ•œ 1.11.6 , 1.12.4 ๋ฐ 1.13.1 ์ด ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์œผ๋ฉฐ ์‚ญ์ œ ๊ธฐ๋Šฅ์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ๋ง์—์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์งง์€ ๊ธฐ์‚ฌ๋ฅผ ์ผ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ˆ˜์ • ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

@lbernail ๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค! ๋‹น์‹ ์˜ ํ•˜์ดํผ ์ฟ ๋ฒ  ์ด๋ฏธ์ง€๋Š” 1.11.6์œผ๋กœ ๊ณต๊ฐœ ๋œ ์ด๋ฏธ์ง€์™€ ๋™์ผํ•ฉ๋‹ˆ๊นŒ? ๋” ๋ฐ”์œ ํด๋Ÿฌ์Šคํ„ฐ์—๋งŒ kube-proxy์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ipvs๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹์ ์ธ ๊ฒƒ์„ ์‚ฌ์šฉ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@emptywee ๋‚ด ์ด๋ฏธ์ง€์™€ 1.11.6์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฆด๋ฆฌ์Šค ๋ฉฐ์น  ์ „์— ๋ฆด๋ฆฌ์Šค -1.11 ๋ธŒ๋žœ์น˜์˜ ํ—ค๋“œ์—์„œ ๋นŒ๋“œ ํ–ˆ์œผ๋ฏ€๋กœ ์ฐจ์ด์ ์€ ์ตœ๋Œ€ ๋ช‡ ๊ฐœ์˜ ์ปค๋ฐ‹์ด๋ฉฐ IPVS์™€๋Š” ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋‹ค์‹œ ์—…๋ฐ์ดํŠธ ํ•  ๊ฐ€์น˜๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์œ ์†Œ์‹ :( ๋ฐฉ๊ธˆ ๋‚ด kube-proxy๊ฐ€ ipvs ๋ฐฑ์—”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. iptables๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•˜๊ณ  ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. --v=5 ํ”Œ๋ž˜๊ทธ๋กœ kube-proxy๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

@lbernail ๋”ฐ๋ผ์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋กœ๊ทธ๊ฐ€ ํ•„์š”ํ•œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ipvs ๋ฐฑ์—”๋“œ IP๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ ๋ช‡ ๊ฐ€์ง€ ์„œ๋น„์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋กœ๊ทธ๋Š” ์—”๋“œ ํฌ์ธํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

$ cat kube-proxy-issue.log | egrep -e 'c-qa4/ycsdtleuk|10.148.191.69|10.148.192.14|10.148.183.70|10.148.184.67'
I1217 19:12:52.849863       1 graceful_termination.go:160] Trying to delete rs: 10.148.6.202:80/TCP/10.148.192.14:8080
I1217 19:12:52.849948       1 graceful_termination.go:173] Deleting rs: 10.148.6.202:80/TCP/10.148.192.14:8080
I1217 19:12:52.850000       1 graceful_termination.go:160] Trying to delete rs: 10.148.6.202:80/TCP/10.148.191.69:8080
I1217 19:12:52.850069       1 graceful_termination.go:173] Deleting rs: 10.148.6.202:80/TCP/10.148.191.69:8080
I1217 19:12:53.425438       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 19:13:00.501203       1 ipset.go:140] Successfully delete legacy ip set entry: 10.148.191.69,tcp:8080,10.148.191.69 from ip set: KUBE-LOOP-BACK
I1217 19:13:00.543691       1 ipset.go:140] Successfully delete legacy ip set entry: 10.148.192.14,tcp:8080,10.148.192.14 from ip set: KUBE-LOOP-BACK
I1217 19:13:06.916777       1 service.go:309] Adding new service port "c-qa4/ycsdtleuk:http" at 10.148.6.202:80/TCP
I1217 19:13:08.345142       1 proxier.go:1465] Adding new service "c-qa4/ycsdtleuk:http" 10.148.6.202:80/TCP
I1217 19:13:13.939763       1 ipset.go:148] Successfully add entry: 10.148.191.69,tcp:8080,10.148.191.69 to ip set: KUBE-LOOP-BACK
I1217 19:13:14.002663       1 ipset.go:148] Successfully add entry: 10.148.192.14,tcp:8080,10.148.192.14 to ip set: KUBE-LOOP-BACK
I1217 19:27:53.485483       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 19:27:53.485526       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 19:42:53.388638       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 19:42:53.388673       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 19:57:53.643829       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 19:57:53.644032       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:12:53.541080       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:12:53.541129       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:27:53.368129       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:27:53.368306       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:42:53.539517       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:42:53.539542       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:57:53.624320       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 20:57:53.624371       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:12:53.630561       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:12:53.630585       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:26:20.897397       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:26:20.897463       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:26:46.630013       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:26:46.630084       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:26:57.995544       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.191.69:8080 10.148.192.14:8080]
I1217 21:26:57.995657       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.191.69:8080 10.148.192.14:8080]
I1217 21:27:24.296606       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.187.41:8080 10.148.191.69:8080 10.148.192.14:8080]
I1217 21:27:53.678172       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.187.41:8080 10.148.191.69:8080 10.148.192.14:8080]
I1217 21:28:21.517538       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.187.41:8080 10.148.191.69:8080]
I1217 21:28:21.595632       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.187.41:8080]
I1217 21:42:53.491595       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.187.41:8080]
I1217 21:57:53.492214       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.187.41:8080]
I1217 22:05:45.760620       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080]
I1217 22:06:24.890429       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080]
I1217 22:07:15.463144       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.183.68:8080]
I1217 22:07:43.201415       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080]
I1217 22:08:18.268005       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080]
I1217 22:08:58.774066       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.192.70:8080]
I1217 22:12:53.528515       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.192.70:8080]
I1217 22:27:53.522197       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.192.70:8080]
I1217 22:29:20.396794       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.192.70:8080]
I1217 22:29:43.994895       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.192.70:8080]
I1217 22:29:54.382253       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.183.70:8080 10.148.192.70:8080]
I1217 22:30:17.895084       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.183.70:8080 10.148.184.67:8080 10.148.192.70:8080]
I1217 22:31:45.791871       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.134.231:8080 10.148.183.70:8080 10.148.184.67:8080]
I1217 22:31:45.855011       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.70:8080 10.148.184.67:8080]
I1217 22:42:53.652587       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.70:8080 10.148.184.67:8080]
I1217 22:57:53.509372       1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.70:8080 10.148.184.67:8080]

๊ทธ๋Ÿฌ๋‚˜ ipvsadm์œผ๋กœ ํ™•์ธํ–ˆ์„ ๋•Œ ์—ฌ์ „ํžˆ ์ฒ˜์Œ ๋‘ ๊ฐœ๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค : 10.148.191.69:8080 10.148.192.14:8080

kubectl -n c-qa4 describe svc ycsdtleuk ๋Š” ์—”๋“œ ํฌ์ธํŠธ๊ฐ€ 10.148.183.70:8080 10.148.184.67:8080 ๋ผ๊ณ  ๋งํ–ˆ๊ณ  ๋‹ค๋ฅธ ์ƒ์ž์—์„œ๋Š” ๋™์ผํ•œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ipvs ํ•ญ๋ชฉ์ด ์ œ๋Œ€๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

$ kubectl -n c-qa4 describe svc ycsdtleuk
Name:              ycsdtleuk
Namespace:         c-qa4
Labels:            country=uk
                   env=qa
                   run=ycsdtleuk
                   stack=c
                   track=4
Annotations:       run: ycsdtleuk
Selector:          load-balancer-ycsdtleuk=true
Type:              ClusterIP
IP:                10.148.6.202
Port:              http  80/TCP
TargetPort:        8080/TCP
Endpoints:         10.148.183.70:8080,10.148.184.67:8080
Session Affinity:  None
Events:            <none>

๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์‹œ์— ๋‘ ๊ฐœ์˜ ์ƒ์ž์—์„œ ๋‹ค์Œ์„๋ณด๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

(incorrect ipvs config)
rnqkbm401 ~ # ipvsadm -L -t 10.148.6.202:80
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  rnqkbm401:http rr
  -> 10.148.191.69:http-alt       Masq    1      0          0
  -> 10.148.192.14:http-alt       Masq    1      0          0
(correct ipvs config)
rnqkbw401 ~ # ipvsadm -L -t 10.148.6.202:80
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  rnqkbw401:http rr
  -> 10.148.183.70:http-alt       Masq    1      0          0
  -> 10.148.184.67:http-alt       Masq    1      0          0

๋ช…๋ฐฑํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๋‚˜ ๋ฌธ์ œ์˜ ์ง•ํ›„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„๋ช…์€ ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ „์ฒด ๋กœ๊ทธ ํŒŒ์ผ (์••์ถ•๋˜์ง€ ์•Š์€ 18M)์„ ์ง์ ‘ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์„œ๋น„์Šค ๋ณ€๊ฒฝ์„ ๋“ฃ๋Š” ๋ถ€๋ถ„์€ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ipvs ๋ชจ๋“ˆ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋‘ ๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ ํ•œ ํ›„์— ์‚ญ์ œํ•˜๋ ค๋Š” ์‹œ๋„์กฐ์ฐจ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋”˜๊ฐ€์— ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋ถ™์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

@emptywee ์ž์„ธํ•œ ๋ณด๊ณ ์„œ๋ฅผ

๋†€๋ผ์šด ์ ์€ syncProxyRules ๊ฐ€ ์ ์–ด๋„ 30 ์ดˆ๋งˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’) ์‹คํ–‰๋˜๋ฉฐ IPVS ์‹ค์ œ ์„œ๋ฒ„๋ฅผ ์—”๋“œ ํฌ์ธํŠธ์™€ ์กฐ์ •ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. syncEndpoints ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ AddRealServer ๋ฐ ipvsHandle.NewDestination ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์€ ์ด์ „ ์—”๋“œ ํฌ์ธํŠธ๊ฐ€ ์‚ญ์ œ๋˜๊ธฐ ์ „์— ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋กœ ์ธํ•ด ์˜ํ–ฅ์„๋ฐ›์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

21:26 ์™€ 21:29 ์‚ฌ์ด์— ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ „์ฒด ๋กœ๊ทธ๋ฅผ ๋ณด๋‚ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋‘ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์งˆ๋ฌธ :

  • ํ•˜๋‚˜์˜ kube-proxy๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ผ ์„œ๋น„์Šค๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์•˜์Šต๋‹ˆ๊นŒ (๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ๊ณ„์† ์ •์ƒ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?)

๋‹ค์Œ ๋ฒˆ์—๋Š” SIGABRT๋ฅผ ํ”„๋กœ์„ธ์Šค์— ์ „์†กํ•˜์—ฌ ์ž‘์—… ์ƒํƒœ๋ฅผ ์ธ์‡„ ํ•ด๋ณด์‹ญ์‹œ์˜ค.

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ•ญ์ƒ libnetwork/ipvs/netlink.go ๋‚ด๋ถ€์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์ด์œ ๋กœ ๋“  ๋„ท ๋งํฌ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ค‘๋‹จ ๋œ ๊ฒƒ์œผ๋กœ ์˜์‹ฌํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ถ€์žฌ์ค‘์— ๋ฏธ์•ˆํ•˜์ง€๋งŒ ์ฃผ๋ง์— ์„ค์ •์„ ์œ„ํ•ด iptables๋กœ ๋˜ ๋Œ๋ฆฌ๋Š” ๋ฐ ์ง‘์ค‘ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค์— ๋Œ€ํ•ด ์š”์ฒญ ๋œ ๋กœ๊ทธ @lbernail์„ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

I1214   11:48:44.889081ย ย ย ย ย ย  1   graceful_termination.go:160] Trying to delete rs:   172.17.0.1:31663/TCP/10.230.213.204:9300
I1214 11:48:44.889099ย ย ย ย ย ย  1 graceful_termination.go:173]   Deleting rs: 172.17.0.1:31663/TCP/10.230.213.204:9300
I1214 11:48:44.889113ย ย ย ย ย ย  1 graceful_termination.go:160] Trying   to delete rs: 172.17.0.1:31663/TCP/10.230.226.83:9300
I1214 11:48:44.889130ย ย ย ย ย ย  1 graceful_termination.go:173]   Deleting rs: 172.17.0.1:31663/TCP/10.230.226.83:9300
...

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์ด๊ฒƒ์„ ๋ณด์•˜๋‹ค :

I1214 12:15:44.920364       1 graceful_termination.go:160] Trying to delete rs: 10.230.65.211:9494/TCP/10.230.226.124:9494
I1214 12:15:44.920489       1 graceful_termination.go:173] Deleting rs: 10.230.65.211:9494/TCP/10.230.226.124:9494
I1214 12:15:44.920512       1 graceful_termination.go:93] lw: remote out of the list: 10.230.65.211:9494/TCP/10.230.226.124:9494

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด๋ณด๊ณ  ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ด๊ฒƒ์€ ์ผ๋ถ€ ๋…ธ๋“œ์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ์ด ํŠน์ • ์„œ๋น„์Šค์— ๋Œ€ํ•ด 3 ๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@lbernail ๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค. ์š”์ฒญ ๋œ ๋กœ๊ทธ ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ ๋ถ€๋ถ„๋„ ํฌํ•จํ–ˆ์Šต๋‹ˆ๋‹ค. https://gist.github.com/emptywee/6f7e9c9e43f10288950d1d8420c038f0

์ „์ฒด ํŒŒ์ผ์ด ํ•„์š”ํ•œ์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”. ์˜ˆ์ธ ๊ฒฝ์šฐ ์ „์†กํ•˜๊ฑฐ๋‚˜ ์—…๋กœ๋“œ ํ•  ์œ„์น˜์ž…๋‹ˆ๋‹ค.

์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๋ฉด :

  1. ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” 60 ๊ฐœ ์ด์ƒ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ ipvs ํ•ญ๋ชฉ์ด ์ •ํ™•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ชจ๋“  ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ ์ ์–ด๋„ ๋‘ ๊ฐœ์˜ ์„œ๋น„์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๊ฒƒ์ด์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ณ ๊ฐ์œผ๋กœ๋ถ€ํ„ฐ ๋ถˆ๋งŒ์„ ๋ฐ›๊ธฐ ์‹œ์ž‘ํ•˜์ž ์ฆ‰์‹œ ๋‘ ๊ฐ€์ง€ ์„œ๋น„์Šค์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์†Œ์‹์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  kube-proxy๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ•ด๊ฒฐ์˜ ์ผํ™˜์œผ๋กœ ํ•ด๋‹น ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์ž‘์—…์ž ๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜์—์žˆ๋Š” ipvs ํ•ญ๋ชฉ์˜ ์ƒํƒœ๋ฅผ ๋น„๊ต ํ•œ ๊ฒฐ๊ณผ ์ฐจ์ด๊ฐ€ ์žˆ์Œ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์ œ๋Œ€๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ํ•ญ๋ชฉ์ด์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์ง€๋งŒ ํŠธ๋ž˜ํ”ฝ์ด์ด๋ฅผ ํ†ต๊ณผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์˜ํ–ฅ์„์ฃผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  2. ์•„๋‹ˆ์š”, ์ ์–ด๋„ ๋‘ ๊ฐœ์˜ ์„œ๋น„์Šค๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํ™•์ธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ์—์„œ ํฅ๋ฏธ๋กœ์šด ๋‘ ๊ฐ€์ง€ :

  • I1217 21:26:57.995657 1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.191.69:8080 10.148.192.14:8080] ์€ (๋Š”) IPVS์—์„œ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์ง€๋งŒ ์ด์ „ RS 2 ๊ฐœ๋ฅผ ์œ ์ง€ํ•˜๋ฏ€๋กœ ์˜ค๋ฅ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค (ํ™•์‹ค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. RS๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ๋กœ๊ทธ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Œ).
  • I1217 21:28:21.517538 1 endpoints.go:234] Setting endpoints for "c-qa4/ycsdtleuk:http" to [10.148.183.68:8080 10.148.187.41:8080 10.148.191.69:8080] ๋Š” 10.148.192.14:8080 ๋Œ€ํ•œ ์‚ญ์ œ ํ˜ธ์ถœ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋กœ๊ทธ๊ฐ€ ์žˆ์–ด์•ผ ํ•จ).

@emptywee ๋Š” ์ •์ƒ์ ์ธ ์ข…๋ฃŒ ์ „์— IPVS๊ฐ€ ์ž‘๋™ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด iptables๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@ m1093782566 / @ Lion-Wei ์—ฌ๊ธฐ์— ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚  ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

@lbernail ipvs๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด 1.11๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๊ณ  (์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ GA ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐœ์ƒํ•œ ์‹œ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค) 1.11.5๋กœ ๋ฐ”๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์œผ๋ฉฐ ipvs ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๋ ค๋Š” ์ฒซ ์‹œ๋„์˜€์Šต๋‹ˆ๋‹ค.

@emptywee : ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ณด ์ˆ˜์ค€ ๋กœ๊ทธ๋ฅผ ๋” ์ถ”๊ฐ€ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๋” ์ž์„ธํ•œ ๋ฒ„์ „์„ ์‹คํ–‰ํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ? (๋‹น์‹ ์ด ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง€๋งŒ ์•„์ง ๋‚ด ํŽธ์—์„œ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค)

์šฐ๋ฆฌ๋Š” 5 ์›”๋ถ€ํ„ฐ IPVS๋ฅผ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ 1.12.1 ๋ฐ 1.11.1์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ 1.12.3์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์—์„œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์˜ํ–ฅ์„๋ฐ›์€ ๋…ธ๋“œ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ ๋ช‡ ์‹œ๊ฐ„ ํ›„์— IPVS ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘์ง€ํ–ˆ์ง€๋งŒ ๋‚ด๊ฐ€ ์‹๋ณ„ ํ•  ์ˆ˜์žˆ๋Š” ์กฐ์ • ๋œ ๋ฐฉ์‹์ด ์•„๋‹™๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ฃผ๋ชฉํ•  ์ ์€ kube-proxy๋„ ๋‹น์‹œ ๋กœ๊น…์„ ์™„์ „ํžˆ ์ค‘์ง€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํžˆ ๋ฉˆ์ถ˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ฉˆ์ถค์„ ๋ณด์—ฌ์ฃผ๋Š” ๋กœ๊ทธ ํŒŒ์ผ๊ณผ SIGQUIT ํ›„ ๊ณ  ๋ฃจํ‹ด ๋คํ”„ (์•ฝ๊ฐ„ ์ˆ˜์ • ๋จ)

@matthiasr ์˜ ๋กœ๊ทธ ํŒŒ์ผ์€ ๋‹ค์‹œ ๊ณ  ๋ฃจํ‹ด์ด netlink ์†Œ์ผ“์—์„œ ์ฝ๊ธฐ๋ฅผ ๋ฉˆ์ถ”๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋‚˜์™€ ๊ฐ™์€.

netlink ์†Œ์ผ“๊ณผ ๋„ˆ๋ฌด ๋งŽ์€ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ผ์œผํ‚ค๋Š” ๋…ผ๋ฆฌ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ฃผ์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ netlink์™€์˜ ํ†ต์‹ ์ด ๊ฒฌ๊ณ ํ•˜์ง€ ์•Š์œผ๋ฉด ipvs๋Š” ๊ฒฐ๊ตญ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋˜๋ฉด์ด ์ƒํƒœ์— ๋„๋‹ฌํ•˜๋Š” ๋ฐ ํ›จ์”ฌ ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง€๋ฉด ๋ฐœ์ƒํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋„ท ๋งํฌ ์ƒํ˜ธ ์ž‘์šฉ์— ์ผ์ข…์˜ ์‹œ๊ฐ„ ์ œํ•œ์ด์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ž‘์—… ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜๋ฉด ๋ณต๊ตฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ netlink ์†Œ์ผ“์„ ๋‹ซ๊ณ  ์ƒˆ ์†Œ์ผ“์„ ์ž๋™์œผ๋กœ ์—ฝ๋‹ˆ ๋‹ค.

์ข‹์€ ์†Œ์‹ (์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์–ด๋–ค ๋ฌธ์ œ์—†์ด 6 ๊ฐœ์›” ์ด์ƒ IPVS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์•„์ง ์šฐ๋ฆฌ์˜ ๋ฐ”์œ ํด๋Ÿฌ์Šคํ„ฐ์— ์šฐ์•„ํ•œ ์ข…๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์€)์˜ ๊ฒƒ์„ ํ™•์ธ @matthiasr

์–ด๋”˜๊ฐ€์— ๊ต์ฐฉ ์ƒํƒœ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@lbernail ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ipvs๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„ ์ด๊ฒƒ์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋œ๋‹ค๋ฉด ๋‹ค์šด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ์•Œ๋ ค ์ฃผ์‹œ๋ฉด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด 1.11.6์—์„œ IPVS๋กœ ๋˜๋Œ ๋ ธ์Šต๋‹ˆ๋‹ค. ๋กœ๊น…์„ 5๋กœ ์„ค์ •ํ•˜๊ณ  ๋‹ค์Œ ๋‚  ๋™์•ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ผ๋ถ€ ํ™œ๋™์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์ผ์€ ์ผํ•˜์ง€ ์•Š๊ฒ ์ง€ ๋งŒ, ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ๋กœ๊น…์ด ์ฆ๊ฐ€ ๋œ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š”์ง€ ์˜จ๋ผ์ธ์œผ๋กœ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@matthiasr : 1.12.3 ํ™•์‹คํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (์ด ์Šค๋ ˆ๋“œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„ ์ฐธ์กฐ). ์ผ๋ถ€๋Š” 1.12.4 ์—์„œ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์—์„œ ํ›จ์”ฌ ์ ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ์‚ฌ๋ผ์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค : Failed to add destination: 10.zz.yy.xx, error: file exists

kube-proxy๊ฐ€ ๋” ์ด์ƒ ์‹ค์ œ ์„œ๋ฒ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์กฐ๊ธˆ ๋” ์กฐ์‚ฌํ–ˆ๋‹ค.

  • @emptywee ์—์„œ ๋ฌธ์ œ๊ฐ€ ์‹œ์ž‘๋œ ํ›„ proxier.go, ipset.go ๋˜๋Š” graceful_termination.go์˜ ๋กœ๊ทธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. @emptywee 21:30 ์ดํ›„์— ์ด๋Ÿฌํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋กœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • go ๋ฃจํ‹ด ๋คํ”„์—๋Š” netlink ์†Œ์ผ“์—์„œ ์ˆ˜์‹ ํ•˜๋Š” ๋‘ ๊ฐœ์˜ syscall์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ฑฐ๊ธฐ์— ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ •์ƒ ์ข…๋ฃŒ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด libnetwork / ipvs๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์–ด ๋™์ž‘์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ libnetwork ์ฝ”๋“œ๋Š” netlink ์†Œ์ผ“์—์„œ send / rcv ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (๊ณ ์ฐฉ ๋œ ๊ฒฝ์šฐ ์‹œ๊ฐ„ (๋ถ„)์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•จ) : https://github.com/docker/libnetwork/blob/a9cd636e37898226332c439363e2ed0ea185ae92/ipvs /ipvs.go#L77 -L105

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์ƒˆ ๋ฒ„์ „์˜ libnetwork์—๋งŒ netlink ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

libnetwork๋Š” ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค ๋ธŒ๋žœ์น˜ (1.11, 1.12 ๋ฐ 1.13)์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์–ด ์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋ฅผ ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ba46b928444931e6865d8618dc03622cac79aa6f ์—์„œ a9cd636e37898226332c439363e2ed0ea185ae92

์ด์ „ ๋ฒ„์ „์—์„œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/docker/libnetwork/blob/ba46b928444931e6865d8618dc03622cac79aa6f/ipvs/ipvs.go#L65 -L87

์ด ๋‘ ์ปค๋ฐ‹ ์‚ฌ์ด์˜ libnetwork์˜ IPVS ์ฝ”๋“œ์—์„œ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํƒ€์ž„ ์•„์›ƒ ์†Œ๊ฐœ
  • ActiveConnections ๋ฐ InactiveConnections ๋ฅผ Destination (์ •์ƒ ์ข…๋ฃŒ๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•จ)

์ด๊ฒƒ์ด ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•ด ์ข€ ๋” ์ƒ๊ฐ ํ•ด๋ณธ ํ›„, ๋™์ผํ•œ ๋„ท ๋งํฌ ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐœ์˜ ๊ณ  ๋ฃจํ‹ด์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (gracefulTerminationManager๋Š” ์ž์ฒด ๊ณ  ๋ฃจํ‹ด์—์„œ ์‹คํ–‰๋˜๊ณ  utilipvs.Interface๋ฅผ ํ”„๋ก์‹œ์™€ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค).

pkg/util/ipvs/ipvs_linux.go ๋ชจ๋“  ํ˜ธ์ถœ์— ๋ฎคํ…์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ๋‹จ์ผ ๊ณ  ๋ฃจํ‹ด์ด ๋„ท ๋งํฌ ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ m1093782566 ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

@lbernail ์•„๋‹ˆ์š”, 21:30 ์ดํ›„์—๋Š” ํ•ด๋‹น ํŒŒ์ผ์˜ ํ•ญ๋ชฉ์ด ์—†์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ๋‹ค์–‘ํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

graceful_termination.go์˜ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ

$ cat kube-proxy-issue.log | grep 'graceful_termination.go' | tail
I1217 21:18:20.757262       1 graceful_termination.go:66] Adding rs 10.148.11.105:8080/TCP/10.148.174.35:8081 to graceful delete rsList
I1217 21:18:52.267340       1 graceful_termination.go:160] Trying to delete rs: 10.148.0.145:80/TCP/10.148.188.28:8080
I1217 21:18:52.267456       1 graceful_termination.go:173] Deleting rs: 10.148.0.145:80/TCP/10.148.188.28:8080
I1217 21:18:52.267638       1 graceful_termination.go:160] Trying to delete rs: 10.148.0.145:80/TCP/10.148.145.194:8080
I1217 21:18:52.267755       1 graceful_termination.go:173] Deleting rs: 10.148.0.145:80/TCP/10.148.145.194:8080
I1217 21:18:52.405770       1 graceful_termination.go:160] Trying to delete rs: 10.148.0.145:80/TCP/10.148.188.28:8081
I1217 21:18:52.405906       1 graceful_termination.go:173] Deleting rs: 10.148.0.145:80/TCP/10.148.188.28:8081
I1217 21:18:52.406052       1 graceful_termination.go:160] Trying to delete rs: 10.148.0.145:80/TCP/10.148.145.194:8081
I1217 21:18:52.406156       1 graceful_termination.go:173] Deleting rs: 10.148.0.145:80/TCP/10.148.145.194:8081
I1217 21:18:53.240664       1 graceful_termination.go:160] Trying to delete rs: 10.148.11.105:8080/TCP/10.148.174.35:8081

proxier.go์˜ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ :

$ cat kube-proxy-issue.log | grep 'proxier.go' | tail
I1217 21:18:52.570282       1 proxier.go:1023] Port "nodePort for kube-system/kube-dns:dns-tcp" (:30054/tcp) was open before and is still needed
I1217 21:18:52.663609       1 proxier.go:1023] Port "nodePort for ingress-nginx/ingress-nginx:http" (:31513/tcp) was open before and is still needed
I1217 21:18:53.241144       1 proxier.go:1465] Adding new service "c-qa4/yardchange-ws:http" 10.148.1.136:80/TCP
E1217 21:18:53.241277       1 proxier.go:1467] Failed to add IPVS service "c-qa4/yardchange-ws:http": file exists
E1217 21:18:53.241350       1 proxier.go:821] Failed to sync service: 10.148.1.136:80/TCP, err: file exists
I1217 21:18:53.241624       1 proxier.go:1465] Adding new service "c-qa4/receiving-ws-v2-uk:http-admin" 10.148.13.141:8080/TCP
E1217 21:18:53.241723       1 proxier.go:1467] Failed to add IPVS service "c-qa4/receiving-ws-v2-uk:http-admin": file exists
E1217 21:18:53.241761       1 proxier.go:821] Failed to sync service: 10.148.13.141:8080/TCP, err: file exists
E1217 21:18:53.242506       1 proxier.go:1496] Failed to get IPVS service, error: Expected only one service obtained=0
E1217 21:18:53.242558       1 proxier.go:818] Failed to sync endpoint for service: 10.148.11.84:8080/TCP, err: Expected only one service obtained=0

ipset.go์˜ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ :

$ cat kube-proxy-issue.log | grep 'ipset.go' | tail
I1217 21:17:14.768694       1 ipset.go:148] Successfully add entry: 10.148.134.229,tcp:8080,10.148.134.229 to ip set: KUBE-LOOP-BACK
I1217 21:17:14.774040       1 ipset.go:148] Successfully add entry: 10.148.134.229,tcp:8081,10.148.134.229 to ip set: KUBE-LOOP-BACK
I1217 21:17:26.643709       1 ipset.go:148] Successfully add entry: 10.148.172.59,tcp:8080,10.148.172.59 to ip set: KUBE-LOOP-BACK
I1217 21:17:26.648504       1 ipset.go:148] Successfully add entry: 10.148.172.59,tcp:8081,10.148.172.59 to ip set: KUBE-LOOP-BACK
I1217 21:17:31.049667       1 ipset.go:148] Successfully add entry: 10.148.136.14,tcp:8080,10.148.136.14 to ip set: KUBE-LOOP-BACK
I1217 21:17:31.053901       1 ipset.go:148] Successfully add entry: 10.148.136.14,tcp:8081,10.148.136.14 to ip set: KUBE-LOOP-BACK
I1217 21:18:18.920550       1 ipset.go:140] Successfully delete legacy ip set entry: 10.148.181.11,tcp:8080,10.148.181.11 from ip set: KUBE-LOOP-BACK
I1217 21:18:18.924752       1 ipset.go:140] Successfully delete legacy ip set entry: 10.148.181.11,tcp:8081,10.148.181.11 from ip set: KUBE-LOOP-BACK
I1217 21:18:21.232725       1 ipset.go:140] Successfully delete legacy ip set entry: 10.148.174.35,tcp:8080,10.148.174.35 from ip set: KUBE-LOOP-BACK
I1217 21:18:21.237619       1 ipset.go:140] Successfully delete legacy ip set entry: 10.148.174.35,tcp:8081,10.148.174.35 from ip set: KUBE-LOOP-BACK

๊ทธ๋“ค์€ ๋ชจ๋‘ 21์‹œ 18 ๋ถ„๊ฒฝ์— ๋กœ๊น…์„ ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค ... ์–ด๋–ค ๋‹จ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ?

@emptywee ์˜ˆ, ๋„ท ๋งํฌ ์†Œ์ผ“์„ ๊ณต์œ ํ•˜๋Š” ๋‘ ๊ณ  ๋ฃจํ‹ด ์‚ฌ์ด์— ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฐ€์„ค์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์„ฑ๊ณตํ•˜์ง€ ์•Š๊ณ  ๊ณ„์† ์žฌ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค (3 ์ดˆ ์ˆ˜์‹  ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ์ธํ•ด).

๊ฐ€์„ค์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ˆ˜์ • ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํด๋Ÿฌ์Šคํ„ฐ์— 1.12.4๋ฅผ ์„ค์น˜ํ•˜๊ณ  1.5 ์‹œ๊ฐ„ ๋งŒ์— ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•œ ์•ฑ์„ ์žฌ๋ฐฐํฌํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž ์žฌ์  ์ธ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ƒ๋‹นํžˆ ์•ˆ์ •์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„ท ๋งํฌ ์ˆ˜์‹ ์— ๋‹ค์‹œ 2 ๊ฐœ์˜ ๊ณ  ๋ฃจํ‹ด (1 ๋ฐ 107)์ด ๊ฑธ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์ž ์žฌ์  ์ธ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” https://github.com/DataDog/kubernetes/commit/9121f0122d805f55f85f42d26c294898fe29a92f์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„์ด๋””์–ด๋Š” ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด Mutex๋กœ ๋ชจ๋“  ๋„ท ๋งํฌ ํ˜ธ์ถœ์„ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ตœ์„ ์˜ ํ•ด๊ฒฐ์ฑ…์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์ž‘๋™ํ•˜๋ฉด ๋ฒ„๊ทธ๋ฅผ ํ™•์ธํ–ˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค).

์›ํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ ์ˆ˜์ • ์‚ฌํ•ญ์œผ๋กœ ๋‘ ๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํฅ๋ฏธ๋กœ์šด ๋กœ๊ทธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ๊ณ  ๋ฃจํ‹ด์„ ์‚ดํŽด๋ณด๊ณ  ์ผ๋ถ€๊ฐ€ ๋„ท ๋งํฌ ํ˜ธ์ถœ์— ๊ฐ‡ํ˜€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

(์ €๋Š” ๋‚ด ํŽธ์—์„œ ์•ฝ๊ฐ„์˜ ํ…Œ์ŠคํŠธ๋ฅผํ–ˆ์ง€๋งŒ ์ž‘์€ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค)

12 ์›” 24 ์ผ ์›”์š”์ผ์— ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์˜ค๋Š˜ ํ•ด๋ณด์ž. ๊ฒฐ๊ณผ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. iptables ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฒ ํƒ€ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๊ณง ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต ๋น ๋ฅด๊ฒŒ (ํ•˜๋ฃจ ๋ฏธ๋งŒ) ๋ถ€๋Ÿฌ์ง€๊ณ  ๊ฝค ์ผ๊ด€๋˜๊ฒŒ ... ์†๊ฐ€๋ฝ์ด ๊ต์ฐจํ–ˆ์Šต๋‹ˆ๋‹ค.

@ li-sen์€ ํ™•์‹คํžˆ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

@emptywee ์™€ @bjornryden ํ…Œ์ŠคํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@Lbernail ๋‚ด ๊ธฐ์จ! 1.11.7-beta.1 ์ด๋ฏธ์ง€๋กœ kube-proxy๋ฅผ ์‹œ์ž‘ํ•œ ์ง€ ์•ฝ ์ดํ‹€์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์•„์ง ์šฐ๋ฆฌ์—๊ฒŒ ๋งค๋‹ฌ๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. proxier.go์™€ ๋‹ค๋ฅธ ๊ณ  ๋ฃจํ‹ด์ด ์—ฌ์ „ํžˆ ์‚ด์•„ ์žˆ๊ณ  ๋กœ๊ทธ์— ์ธ์‡„๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ๋งŽ์€ ๋ฐฐํฌ๊ฐ€ ์ง„ํ–‰๋˜์ง€ ์•Š๊ณ  ์ •๋ง ๋Š๋ฆฌ๊ณ  ์กฐ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์„ ์ข€ ๋” ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“ , @lbernail์ด ์ถ”๊ฐ€ ํ•œ ๋ฎคํ…์Šค๊ฐ€ ๋„์›€์ด๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. :)

์ด๋ฒˆ ์ฃผ ๋ง๊นŒ์ง€์ด ๋ฌธ์ œ / ์Šค๋ ˆ๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์˜ฌ๋ฆฌ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

/๋‹ค์‹œ ์—ด๋‹ค
(๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ์ฒด๋ฆฌ ํ”ฝ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ํ…Œ์ŠคํŠธ์˜ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹œํ•˜๊ธฐ ์œ„ํ•ด)

@lbernail : ๋ณธ์ธ์ด ์ €์ž‘ํ•˜๊ฑฐ๋‚˜ ๊ณต๋™ ์ž‘์—…์ž๊ฐ€ ์•„๋‹Œ ์ด์ƒ ์ด์Šˆ / PR์„ ๋‹ค์‹œ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋Œ€ํ•œ ์‘๋‹ต ์ด :

/๋‹ค์‹œ ์—ด๋‹ค
(๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ์ฒด๋ฆฌ ํ”ฝ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ํ…Œ์ŠคํŠธ์˜ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹œํ•˜๊ธฐ ์œ„ํ•ด)

PR ๋Œ“๊ธ€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ kubernetes / test-infra ์ €์žฅ์†Œ์— ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์„ธ์š”.

@ m1093782566 ๋ฌธ์ œ๊ฐ€ ์™„์ „ํžˆ ํ•ด๊ฒฐ ๋  ๋•Œ๊นŒ์ง€ ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Kube-proxy ipvs ๋ฒ„์ „ 1.12.3๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹ค์ œ ์„œ๋ฒ„๋Š” ์ž˜๋ชป๋˜์—ˆ์œผ๋ฉฐ Kube-proxy๋Š” ipvs ๊ทœ์น™์„ ์ƒˆ๋กœ ๊ณ ์น  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋งˆ์ง€๋ง‰ ๋กœ๊ทธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์— ๋ฉˆ์ถฐ์„œ ๋” ์ด์ƒ ์ƒˆ ๋กœ๊ทธ๋ฅผ ์ธ์‡„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

27 23:31:24.113927       1 graceful_termination.go:93] lw: remote out of the list: 10.96.0.1:443/TCP/10.6.40.32:6443
E1227 23:31:24.113935       1 graceful_termination.go:183] Try flush graceful termination list err
I1227 23:32:24.114182       1 graceful_termination.go:160] Trying to delete rs: 10.96.0.1:443/TCP/10.6.40.32:6443
E1227 23:32:24.114316       1 graceful_termination.go:89] Try delete rs "10.96.0.1:443/TCP/10.6.40.32:6443" err: Failed to delete rs "10.96.0.1:443/TCP/10.6.40.32:6443", can't find the real server
I1227 23:32:24.114332       1 graceful_termination.go:93] lw: remote out of the list: 10.96.0.1:443/TCP/10.6.40.32:6443
I1227 23:32:24.114348       1 graceful_termination.go:160] Trying to delete rs: 10.96.0.1:443/TCP/10.6.40.33:6443
I1227 23:32:24.114397       1 graceful_termination.go:160] Trying to delete rs: 10.6.40.25:32444/TCP/10.244.20.41:32444
E1227 23:32:24.114446       1 graceful_termination.go:183] Try flush graceful termination list err
I1227 23:33:24.114853       1 graceful_termination.go:160] Trying to delete rs: 10.96.0.1:443/TCP/10.6.40.32:6443
E1227 23:33:24.115043       1 graceful_termination.go:89] Try delete rs "10.96.0.1:443/TCP/10.6.40.32:6443" err: Failed to delete rs "10.96.0.1:443/TCP/10.6.40.32:6443", can't find the real server
I1227 23:33:24.115106       1 graceful_termination.go:93] lw: remote out of the list: 10.96.0.1:443/TCP/10.6.40.32:6443
I1227 23:33:24.115128       1 graceful_termination.go:160] Trying to delete rs: 10.96.0.1:443/TCP/10.6.40.33:6443

@VincentFF : ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ญ์ œ ์‹คํŒจ : 1.12.4
  • ๊ต์ฐฉ ์ƒํƒœ๋กœ ์ธํ•ด kube-proxy๊ฐ€ ๋ฉˆ์ถค (์„ค๋ช…์ค‘์ธ ๋ฌธ์ œ) : ์–ด์ œ PR๋กœ ์ˆ˜์ • ๋˜์—ˆ์œผ๋ฉดํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํŒจ์น˜๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ ์žˆ๋Š” @emptywee ์™€ @bjornryden์˜ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋” ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ™•์ธ์„๋ฐ›๋Š” ์ฆ‰์‹œ 1.13, 1.12 ๋ฐ 1.11์— ๋Œ€ํ•œ cherrypicks๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค (ํŒจ์น˜๊ฐ€ ์ž‘๋™ํ•˜๋ฉด ๋‹ค์Œ ์ฃผ ์ดˆ์— ๋ชจ๋“  ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉ ๋  ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค)

๋‚˜๋Š” ๋˜ํ•œ ๋‚ด ์‹คํ—˜ https://github.com/kubernetes/kubernetes/issues/71071#issuecomment -449402484๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  ํŒจ์น˜๋ฅผ 1.12.4์— ๋ฐฑ ํฌํŒ…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค!

kube-proxy๊ฐ€ IPVS ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์œผ๋ฉฐ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ฐฐํฌ ๋ฐ ๋ณ€๊ฒฝ์ด ์ƒ๋‹นํžˆ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ํŒจ์น˜๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@lbernail ์ž˜ ๊ณ ์ณค์Šต๋‹ˆ๋‹ค! ๋งค์šฐ ๊ฐ์‚ฌ!

์ข‹์•„์š”, ์›”์š”์ผ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์„œ @matthiasr ๊ณผ @bjornryden์˜ ํ”ผ๋“œ๋ฐฑ๋„๋ฐ›์Šต๋‹ˆ๋‹ค.

@lbernail ์ข‹์€ ์†Œ์‹, ๊ท€ํ•˜์˜ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1.12.4์—์„œ https://github.com/DataDog/kubernetes/commit/9121f0122d805f55f85f42d26c294898fe29a92f๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ 12 ์‹œ๊ฐ„ ์ด์ƒ์ด ์ง€๋‚˜๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์—†์ด๋Š” 1.5 ์‹œ๊ฐ„ ๋‚ด์— ์ž ๊ธˆ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋งค์šฐ ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค!

@lbernail ๋‹ค๋ฅธ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํŒจ์น˜๊ฐ€ 1.12.5 ๋ฒ„์ „์ด๋ผ๋ฉด?
kube-proxy๋ฅผ 1.12.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋‹ค๋ฅธ ์œ ๋‹› (apiserver, kubelet, controller-manager, scheduler ...)์€ 1.12.3์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋ชจ๋“  ์œ ๋‹›์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@VincentFF ๋ฐ”๋ผ๊ฑด๋Œ€ ๊ทธ๊ฒƒ์€ 1.12.5 yes๋กœ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. 1.12.3์„ ์‹คํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ๋‹จ์œ„๋กœ kube-proxy 1.12.5๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : 24 ์‹œ๊ฐ„ ํ›„์—๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์‹คํ—˜์„ ์ค‘๋‹จํ•˜๊ณ  ์ด๊ฒƒ์ด ์™„์ „ํžˆ ์„ฑ๊ณตํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. 1.12.5๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค!

์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•„์ฃผ ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๊ณต์‹ ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์–ป๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์ฒด๋ฆฌ ํ”ฝ์„ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ํ…Œ์ŠคํŠธ์— ์ฐธ์—ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ–‰๋ณตํ•œ ํ…Œ์Šคํ„ฐ ํ•ฉ์ฐฝ๋‹จ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 4 ์ผ ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ๋œ ๋ชจ๋“  ๋ถ„๋“ค, ํŠนํžˆ @lbernail์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ƒˆํ•ด ๋ณต ๋งŽ์ด ๋ฐ›์œผ์„ธ์š”!

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. 24 ์‹œ๊ฐ„ ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ƒˆํ•ด ๋ณต ๋งŽ์ด ๋ฐ›์œผ์„ธ์š”.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋‚ด ํ™˜๊ฒฝ์€
Ubuntu 16.04.4 LTS
Kubernetes ๋ฒ„์ „ (kubectl ๋ฒ„์ „ ์‚ฌ์šฉ) : v1.13.0
ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ : ๋ฒ ์–ด ๋ฉ”ํƒˆ, 64 ๋น„ํŠธ Linux
์ปค๋„ 4.4.0-75- ์ผ๋ฐ˜

๊ฐ™์€ ๋ฒ„๊ทธ :

I0101 22 : 20 : 09.742898 267576 graceful_termination.go : 160] rs ์‚ญ์ œ ์‹œ๋„ : 10.200.198.70:9090/TCP/172.200.101.32:9090
E0101 22 : 20 : 09.742975 267576 proxier.go : 1519] IPVS ์„œ๋น„์Šค๋ฅผ ๊ฐ€์ ธ ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ : ํ•˜๋‚˜์˜ ์„œ๋น„์Šค ๋งŒ ๊ฐ€์ ธ์™€์•ผํ•ฉ๋‹ˆ๋‹ค = 0
E0101 22 : 20 : 09.743036 267576 proxier.go : 843] ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์—”๋“œ ํฌ์ธํŠธ ๋™๊ธฐํ™” ์‹คํŒจ : 10.200.36.192:80/TCP, ์˜ค๋ฅ˜ : ํ•˜๋‚˜์˜ ์„œ๋น„์Šค ๋งŒ ํ™•๋ณดํ•ด์•ผ ํ•จ = 0

kube-proxy๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@daigong v1.13.1

@daigong : ์ „์ฒด ์ˆ˜์ •์€ ์‹ค์ œ๋กœ 1.13.2 (# 72426์ด ๋ณ‘ํ•ฉ๋˜๋Š” ์†๋„์— ๋”ฐ๋ผ ๋‹ค๋ฆ„).

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. # 72426์„ ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฒ„๊ทธ๋ฅผ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋ญ๋“ ์ง€ ๊ดœ์ฐฎ์•„

PR์€ ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ ์œ„์น˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

  • 1.11.7
  • 1.12.5
  • 1.13.2

ํ—‰

1.12.2 ๋ฐ 1.13.0-beta1 ๋ชจ๋‘ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. @ m1093782566 @ Lion-Wei

์šฐํŽธํ•จ์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ? ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค. .์†Œ๋…„

๊ฐ™์€

v1.11.x์˜ ์ƒˆ๋กœ์šด ๋นŒ๋“œ์— ๋Œ€ํ•œ ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์ด ๋ฒ„๊ทธ๋ฅผ ํŒจ์น˜ ํ•  ์ˆ˜ ์žˆ๋„๋ก 1.12.5๊ฐ€ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋ผ๋Š” ํฌ๋ง์œผ๋กœ ์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ๊ฑฐ์˜ ๋งค์‹œ๊ฐ„๋งˆ๋‹ค ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ–ˆ์Šต๋‹ˆ๋‹ค. :-)

@verwilst haha๋Š” ํ˜„์žฌ prod ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด v1.11.7์ด ์ถœ์‹œ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  v1.12.5๋„ ๋‚ฎ์€ ํ™˜๊ฒฝ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์ด ๋ฒ„๊ทธ๋ฅผ ํŒจ์น˜ ํ•  ์ˆ˜ ์žˆ๋„๋ก 1.12.5๊ฐ€ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋ผ๋Š” ํฌ๋ง์œผ๋กœ ์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ๊ฑฐ์˜ ๋งค์‹œ๊ฐ„๋งˆ๋‹ค ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ–ˆ์Šต๋‹ˆ๋‹ค. :-)

์—ฌ๊ธฐ์— :-P

๋‚˜๋Š” ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์ด ๋ฒ„๊ทธ๋ฅผ ํŒจ์น˜ ํ•  ์ˆ˜ ์žˆ๋„๋ก 1.12.5๊ฐ€ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋ผ๋Š” ํฌ๋ง์œผ๋กœ ์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ๊ฑฐ์˜ ๋งค์‹œ๊ฐ„๋งˆ๋‹ค ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ–ˆ์Šต๋‹ˆ๋‹ค. :-)

์—ฌ๊ธฐ์— :-P

1.11์—์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? :(

1.11.7์—์„œ์ด ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ • ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#v1117์ž…๋‹ˆ๋‹ค .

Fix race condition introduced by graceful termination which can lead to a deadlock in kube-proxy (#72361, @lbernail)

์˜ˆ PR์˜ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์— "IPVS"๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
์ง€๊ธˆ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”! (๋งŒ์•ฝ ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋ช‡ ์ฃผ ๋™์•ˆ ์—ด์–ด ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค)

1.12.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค ๐ŸŽ‰

์ข‹์€ ์†Œ์‹!

@ m1093782566 , @thockin ์ด ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์•ฝ 2 ๊ฐœ์›” ๋™์•ˆ ์ƒˆ๋กœ์šด ๋ณด๊ณ ์„œ ์—†์Œ).

์ฐธ๊ณ ๋กœ ๋ฒ„๊ทธ๋Š” ์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋กœ ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

  • 1.11.5-1.11.6
  • 1.12.2-1.12.4
  • 1.13.0-1.13.1

๋‹ค์Œ ์ดํ›„์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • 1.11.7
  • 1.12.5
  • 1.13.2

/๋‹ซ๊ธฐ

@ m1093782566 :์ด ๋ฌธ์ œ๋ฅผ

์— ๋Œ€ํ•œ ์‘๋‹ต ์ด :

/๋‹ซ๊ธฐ

PR ๋Œ“๊ธ€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ kubernetes / test-infra ์ €์žฅ์†Œ์— ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์„ธ์š”.

๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? 1.12.7์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, 1.12.9์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?
kube-proxy ์ธ์Šคํ„ด์Šค์˜ ๋กœ๊ทธ๋ฅผ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๊ฒฝ๊ณ  ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ...์ด ๋กœ๊ทธ๊ฐ€ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

I0709 11:59:48.640888       1 graceful_termination.go:160] Trying to delete rs: 192.168.240.51:80/TCP/172.30.71.181:5050
I0709 11:59:48.640304       1 graceful_termination.go:93] lw: remote out of the list: 192.168.240.51:80/TCP/172.30.106.125:5050

์–ด๋–ค ์ด์œ ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ถ€ํ•˜๋ฅผ ๋ฐ›์œผ๋ฉด ์ผ๋ถ€ ํด๋Ÿฌ์Šคํ„ฐ ์„œ๋น„์Šค IP๋กœ ๋ผ์šฐํŒ… ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. IPVS ๋ฌธ์ œ์ธ์ง€ ์•„์ง ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

apiserver๊ฐ€ ์˜ค๋ฒ„๋กœ๋“œ๋˜๋ฉด ์—”๋“œ ํฌ์ธํŠธ ์ „ํŒŒ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์ผ๊นŒ ์š”?

๋ฉ”์‹œ์ง€๋Š” ์ผ๋ฐ˜์ ์ธ ์ •๋ณด ์ˆ˜์ค€ ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.
https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/graceful_termination.go#L94

https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/graceful_termination.go#L161

1.14.4์—์„œ ๋™์ผํ•œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋กœ๊ทธ๋Š” ์–ธ์ œ ๋‚˜์˜ต๋‹ˆ๊นŒ?

I0712 01:34:49.925012       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.1:443/TCP/10.0.22.42:443
I0712 01:34:49.925057       1 graceful_termination.go:175] Deleting rs: 11.3.0.1:443/TCP/10.0.22.42:443
I0712 01:35:11.907742       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.10:53/TCP/11.2.5.13:53
I0712 01:35:11.907874       1 graceful_termination.go:175] Deleting rs: 11.3.0.10:53/TCP/11.2.5.13:53
I0712 01:35:11.908006       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.10:53/UDP/11.2.5.13:53
I0712 01:35:11.908059       1 graceful_termination.go:175] Deleting rs: 11.3.0.10:53/UDP/11.2.5.13:53
I0712 01:35:21.992487       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.10:53/TCP/11.2.4.11:53
I0712 01:35:21.992594       1 graceful_termination.go:175] Deleting rs: 11.3.0.10:53/TCP/11.2.4.11:53
I0712 01:35:21.992784       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.10:53/UDP/11.2.4.11:53
I0712 01:35:21.992858       1 graceful_termination.go:175] Deleting rs: 11.3.0.10:53/UDP/11.2.4.11:53
I0712 01:36:29.411592       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.199:44134/TCP/11.2.0.5:44134
I0712 01:36:29.411660       1 graceful_termination.go:175] Deleting rs: 11.3.0.199:44134/TCP/11.2.0.5:44134
I0712 01:36:29.534158       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.17:8085/TCP/11.2.0.3:8085
I0712 01:36:29.534394       1 graceful_termination.go:175] Deleting rs: 11.3.0.17:8085/TCP/11.2.0.3:8085
I0712 01:36:50.745469       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.1:443/TCP/10.0.22.162:443
I0712 01:36:50.745508       1 graceful_termination.go:172] Not deleting, RS 11.3.0.1:443/TCP/10.0.22.162:443: 0 ActiveConn, 12 InactiveConn
I0712 01:37:37.475724       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.1:443/TCP/10.0.22.162:443
I0712 01:37:37.475841       1 graceful_termination.go:172] Not deleting, RS 11.3.0.1:443/TCP/10.0.22.162:443: 0 ActiveConn, 4 InactiveConn
I0712 01:38:37.475956       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.1:443/TCP/10.0.22.162:443
I0712 01:38:37.476201       1 graceful_termination.go:172] Not deleting, RS 11.3.0.1:443/TCP/10.0.22.162:443: 0 ActiveConn, 4 InactiveConn
I0712 01:39:37.476324       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.1:443/TCP/10.0.22.162:443
I0712 01:39:37.476585       1 graceful_termination.go:175] Deleting rs: 11.3.0.1:443/TCP/10.0.22.162:443
I0712 01:39:37.476628       1 graceful_termination.go:94] lw: remote out of the list: 11.3.0.1:443/TCP/10.0.22.162:443
I0712 01:40:36.883345       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.245:5473/TCP/10.0.22.25:5473
I0712 01:40:36.883566       1 graceful_termination.go:175] Deleting rs: 11.3.0.245:5473/TCP/10.0.22.25:5473
I0712 01:40:36.886079       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.17:8085/TCP/11.2.1.3:8085
I0712 01:40:36.886310       1 graceful_termination.go:175] Deleting rs: 11.3.0.17:8085/TCP/11.2.1.3:8085
I0712 01:40:46.927450       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.245:5473/TCP/10.0.22.191:5473
I0712 01:40:46.927525       1 graceful_termination.go:175] Deleting rs: 11.3.0.245:5473/TCP/10.0.22.191:5473
I0712 01:40:56.968884       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.245:5473/TCP/10.0.22.75:5473
I0712 01:40:56.968936       1 graceful_termination.go:175] Deleting rs: 11.3.0.245:5473/TCP/10.0.22.75:5473
I0712 01:41:16.747362       1 graceful_termination.go:161] Trying to delete rs: 11.3.0.1:443/TCP/10.0.23.45:443

๋‹ค์Œ์€ ์ •๋ณด ๋กœ๊ทธ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

  • Trying to delete rs : ๋ฐฑ์—”๋“œ ํฌ๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜์–ด ์‚ญ์ œ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์—ฐ๊ฒฐ์ด์žˆ๋Š” ๊ฒฝ์šฐ ์ •์ƒ ์ข…๋ฃŒ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ID๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • Deleting rs : ๋ฐฑ์—”๋“œ์— ์—ฐ๊ฒฐ์ด ์—†์œผ๋ฏ€๋กœ IPVS์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

@andrewsykim ์˜ˆ๋ฅผ ๋“ค์–ด v = 5 ์ด์ƒ์œผ๋กœ ๋งŒ ํ‘œ์‹œ๋˜๋„๋ก ์ด๋Ÿฌํ•œ ๋กœ๊ทธ์˜ ์ˆ˜์ค€์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/kubernetes/kubernetes/pull/78395 ์—์„œ ๋กœ๊ทธ ์ˆ˜์ค€์„ v = 0์—์„œ v = 2๋กœ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. v = 5๊ฐ€ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ์šฉ https://github.com/kubernetes/kubernetes/pull/80100

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰