{"id":313014,"date":"2020-11-12T09:01:14","date_gmt":"2020-11-12T09:01:14","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=313014"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=313014","title":{"rendered":"\u0412\u0441\u0435 \u043e\u0431 OpenShift Egress. \u0427\u0430\u0441\u0442\u044c 1"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/d0\/o_\/rs\/d0o_rs9fvpuo3h6jlx7iiexszng.jpeg\"><\/p>\n<p>  \u041f\u0440\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0432 OpenShift \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c (\u043e\u043d\u043e \u0436\u0435 Ingress) \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043f\u043e \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435. \u041d\u043e, \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 (Egress). \u0410 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435. \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043d\u0438\u0448\u0443 \u0441\u0435\u0440\u0438\u0435\u0439 \u043f\u043e\u0441\u0442\u043e\u0432.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u043d\u0443\u0436\u0435\u043d \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430? <br \/>  <a name=\"habracut\"><\/a><br \/>  \u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0440\u0438 \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h2>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u0432\u043d\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/h2>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044f\u044f \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0441\u0435\u0442\u0435\u0432\u044b\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c, \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u043e\u0439 \u0411\u0414 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 POD \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e POD \u043f\u0440\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 IP-\u0430\u0434\u0440\u0435\u0441 \u0443\u0437\u043b\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u00ab\u0432 \u043b\u043e\u0431\u00bb. <\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0437\u043b\u043e\u0432 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434 \u044d\u0442\u0438 POD, \u043d\u043e \u044d\u0442\u043e \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043d\u0435 \u0432\u044b\u0445\u043e\u0434. \u0423\u0437\u043b\u043e\u0432 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e (\u043d\u0430\u043c \u0436\u0435 \u043d\u0443\u0436\u043d\u0430 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c), \u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 POD \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e. \u0423\u0437\u043b\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c IP \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e DHCP, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041d\u0443 \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0442\u0430\u043a\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u00ab\u0437\u043e\u043d \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438\u00bb \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e, \u0438 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u043e \u0434\u0432\u0430 \u0443\u0437\u043b\u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f. <\/p>\n<h2>\u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 POD \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u0432 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0441\u0435\u0442\u0438<\/h2>\n<p>  \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 POD \u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u0441\u0435\u0442\u0438, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c VLAN (\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u043d\u0430 \u0443\u0437\u043b\u0430\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430) \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c PCI DSS). <\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0430\u043a\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u2014 \u0434\u043e\u0440\u043e\u0433\u043e \u0438 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0442\u044f\u0436\u0435\u043b\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c. \u0410 \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 VLAN \u043d\u0430 \u0443\u0437\u043b\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442: \u0435\u0433\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e \u041f\u041e \u0438 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e\u043c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0418\u0411 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. <\/p>\n<h2>\u041a \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u0441\u0435\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 POD \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f 10G Ethernet \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0433\u043e \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043a\u0430\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u044d\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0438\u043b\u0438 \u0441\u043e\u0442\u0435\u043d POD \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0443\u0437\u043b\u0435. \u041d\u0435 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0437\u0435\u043b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u0434 \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 POD.<\/p>\n<p>  \u041d\u0430 \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0435\u0441\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 OpenShift \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0432 \u043a\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e Egress \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c, \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  <strong>Egress IP \u0438 Egress Router<\/strong><\/p>\n<p>  Static IP Egress<\/p>\n<p>  \u0412 OpenShift, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 3.7, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430 namespace, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u044d\u0442\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432\u0441\u0435 POD \u0432 \u044d\u0442\u043e\u043c namespace \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u044d\u0442\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 OpenShift SDN.<\/p>\n<p>  \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<ol>\n<li>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u00abegress\u00bb \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0432 \u043d\u0435\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 POD \u00abtool\u00bb:\n<pre><code class=\"plaintext\">[ocp@shift-is01 ~]$ oc new-project egress  Now using project \u00abegress\u00bb on server \u00abhttps:\/\/api.ocp4.demo.local:6443\u00bb.  [ocp@shift-is01 ~]$ kubectl run tool -it --image=rhel7\/rhel-tools  --restart=Never -- bash  If you don't see a command prompt, try pressing enter.<\/code><\/pre>\n<\/li>\n<li>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441 POD \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0441 \u043a\u0430\u043a\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043c\u044b \u043f\u0440\u0438\u0448\u043b\u0438:\n<pre><code class=\"plaintext\">[root@tool \/]# curl www.ocp4.demo.local:8080\/test  Hello !   [root@shift-is01 httpd]# tail -f .\/access_log  192.168.111.204 \u2014 - [30\/Oct\/2020:14:00:32 +0300] \u00abGET \/test HTTP\/1.1\u00bb 200 8 \u00ab-\u00bb \u00abcurl\/7.29.0\u00bb<\/code><\/pre>\n<\/li>\n<li>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u00ab\u043d\u0430\u0440\u0443\u0436\u0443\u00bb \u0438\u0437 POD tool \u043c\u044b \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u0441 \u0443\u0437\u043b\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 shift-worker1:\n<pre><code class=\"plaintext\">[ocp@shift-is01 ~]$ oc get pod tool -o jsonpath='{ .status.hostIP }{\u00bb\\n\u00bb}'  192.168.111.204  [ocp@shift-is01 ~]$ oc get hostsubnets.network.openshift.io shift-worker0 shift-worker1  NAME            HOST            HOST IP           SUBNET          EGRESS CIDRS   EGRESS IPS shift-worker0   shift-worker0   192.168.111.203   10.254.3.0\/24 shift-worker1   shift-worker1   192.168.111.204   10.254.4.0\/24<\/code><\/pre>\n<\/li>\n<li>\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u043c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 IP-\u0430\u0434\u0440\u0435\u0441\u0443 \u0434\u043b\u044f egress \u043d\u0430 \u0434\u0432\u0430 \u0443\u0437\u043b\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u0443\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f egress \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 namespace \u00abegress\u00bb:\n<pre><code class=\"plaintext\">[ocp@shift-is01 egress]$ oc patch hostsubnet shift-worker0 --type=merge -p '{\u00abegressIPs\u00bb: [\u00ab192.168.111.225\u00bb]}'  hostsubnet.network.openshift.io\/shift-worker0 patched  [ocp@shift-is01 egress]$ oc patch hostsubnet shift-worker1 --type=merge -p '{\u00abegressIPs\u00bb: [\u00ab192.168.111.226\u00bb]}'  hostsubnet.network.openshift.io\/shift-worker1 patched  [ocp@shift-is01 egress]$ oc patch netnamespace egress --type=merge -p '{\u00abegressIPs\u00bb: [\u00ab192.168.111.225\u00bb, \u00ab192.168.111.226\u00bb]}'  netnamespace.network.openshift.io\/egress patched<\/code><\/pre>\n<\/li>\n<li>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e OpenShift \u0441\u043e\u0437\u0434\u0430\u0441\u0442 network alias \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0443\u0437\u043b\u0430 (\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u043e\u043c :eip, \u0442\u043e \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f egress IP):\n<pre><code class=\"plaintext\">[ocp@shift-is01 egress]$ ssh core@shift-worker0 ip a show dev ens192  2: ens192: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000      link\/ether 00:50:56:96:48:19 brd ff:ff:ff:ff:ff:ff      inet 192.168.111.203\/24 brd 192.168.111.255 scope global noprefixroute ens192        valid_lft forever preferred_lft forever      inet 192.168.111.225\/24 brd 192.168.111.255 scope global secondary ens192:eip        valid_lft forever preferred_lft forever      inet6 fe80::250:56ff:fe96:4819\/64 scope link        valid_lft forever preferred_lft forever  [ocp@shift-is01 egress]$ ssh core@shift-worker1 ip a show dev ens192  2: ens192: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000      link\/ether 00:50:56:96:0c:ef brd ff:ff:ff:ff:ff:ff      inet 192.168.111.204\/24 brd 192.168.111.255 scope global noprefixroute ens192        valid_lft forever preferred_lft forever      inet 192.168.111.226\/24 brd 192.168.111.255 scope global secondary ens192:eip        valid_lft forever preferred_lft forever      inet6 fe80::250:56ff:fe96:cef\/64 scope link        valid_lft forever preferred_lft forever<\/code><\/pre>\n<\/li>\n<li>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043c \u043a WEB-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e Egress \u0430\u0434\u0440\u0435\u0441\u0430:\n<pre><code class=\"plaintext\">[root@shift-is01 httpd]# tail -f .\/access_log  192.168.111.225 \u2014 - [30\/Oct\/2020:15:17:05 +0300] \u00abGET \/test HTTP\/1.1\u00bb 200 8 \u00ab-\u00bb \u00abcurl\/7.29.0\u00bb <\/code><\/pre>\n<\/li>\n<\/ol>\n<p>  \u0412\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e:) \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0440\u0430\u043d\u0435\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0443\u0437\u043b\u0435 shift-worker1. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b \u0431\u044b\u043b \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0430\u0434\u0440\u0435\u0441 Egress IP = 192.168.111.226. \u0422\u0430\u043a \u043f\u043e\u0447\u0435\u043c\u0443 \u0436\u0435 \u043c\u044b \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441 Egress IP = 192.168.111.225? <\/p>\n<p>  \u041e\u0442\u0432\u0435\u0442 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u044c\u044f <a href=\"https:\/\/www.openshift.com\/blog\/how-to-enable-static-egress-ip-in-ocp\">How to Enable Static Egress IP in OCP<\/a>. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441 \u0435\u0435 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b\u044f\u0441\u043d\u0438\u043c, \u0447\u0442\u043e \u0436\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u00ab\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c\u00bb OpenShift \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 Egress IP.<\/p>\n<ol>\n<li>\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 NAT \u0432 iptables \u043d\u0430 shift-worker1 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438:\n<pre><code class=\"plaintext\">---- skipped -----  Chain OPENSHIFT-MASQUERADE (1 references)  target     prot opt source               destination  SNAT       all  --  10.254.0.0\/16        anywhere             mark match 0xe28820 to:192.168.111.226  RETURN     all  --  anywhere             anywhere             mark match 0x1\/0x1  OPENSHIFT-MASQUERADE-2  all  --  10.254.0.0\/16        anywhere             \/* masquerade pod-to-external traffic *\/<\/code><\/pre>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c iptables \u043d\u0430 \u044d\u0442\u043e\u043c \u0443\u0437\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442 source address \u043d\u0430 192.168.111.226 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 c \u043c\u0435\u0442\u043a\u043e\u0439 0xe28820. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438 \u043d\u0430 shift-worker0, \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 192.168.111.225.<\/li>\n<li>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u044d\u0442\u0430 \u043c\u0435\u0442\u043a\u0430. \u0410 \u043c\u0435\u0442\u043a\u0443 \u0441\u0442\u0430\u0432\u0438\u0442 OpenShift SDN \u043d\u0430 \u0432\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0438\u0437 namespace \u00abegress\u00bb.\n<p>  \u041f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e virtual network ID (VNID), \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 0xe28820 \u2014 \u044d\u0442\u043e \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 VNID \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 egress.<\/p>\n<p>  OpenShift SDN \u0437\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0432 tunnel interface vxlan0 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u043d\u0430\u0434\u043e \u043d\u0430 \u0445\u043e\u0441\u0442 shift-worker0:<\/p>\n<pre><code class=\"plaintext\">[root@shift-worker1 ~]# ovs-ofctl -O OpenFlow13 dump-flows br0 table=100  ---- skipped -----  cookie=0x0, duration=4106.403s, table=100, n_packets=6, n_bytes=496, priority=100,ip,reg0=0xe28820 actions=ct(commit),move:NXM_NX_REG0[]-&gt;NXM_NX_TUN_ID[0..31],set_field:192.168.111.203-&gt;tun_dst,output:vxlan0<\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, OpenShift SDN \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u00ab\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u00bb Egress IP-\u0430\u0434\u0440\u0435\u0441, \u0438 \u0432\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043a\u043e\u0439 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430 \u0445\u043e\u0441\u0442, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u00ab\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u00bb Egress IP. \u041d\u0430 \u044d\u0442\u043e\u043c \u0445\u043e\u0441\u0442\u0435 iptables \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 Source NAT, \u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0435\u0448\u0435\u043d\u0430. \u0415\u0441\u043b\u0438 \u0445\u043e\u0441\u0442 \u0441 \u00ab\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u00bb Egress IP \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 Egress IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0445\u043e\u0441\u0442 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 shift-worker1).<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u043c \u0445\u043e\u0441\u0442 shift-worker0, \u0442\u043e \u043d\u0430\u0448 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 POD \u00ab\u043d\u0430\u0440\u0443\u0436\u0443\u00bb \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0443\u0436\u0435 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c 192.168.111.226, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043b\u0438 \u0443\u0437\u043b\u0443 shift-worker1:<\/p>\n<p>  192.168.111.226 \u2014 \u2014 [30\/Oct\/2020:15:28:38 +0300] \u00abGET \/test HTTP\/1.1\u00bb 200 8 \u00ab-\u00bb \u00abcurl\/7.29.0\u00bb<\/p>\n<p>  \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 Egress IP. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442\u043a\u0430\u0437\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 POD \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 IP.<\/li>\n<\/ol>\n<p>  \u041e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0437\u0434\u0435\u0441\u044c \u0441\u0445\u0435\u043c\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 Egress \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0441\u0435\u0442\u0435\u0432\u044b\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c \u0438\u043b\u0438 \u0441\u0430\u043c\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u043c. \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u0441\u0442\u0435\u043d\u0434\u0443 \u0432\u0441\u0435 POD \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u00abegress\u00bb (POD2 \u2013 POD4) \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u00ab\u043d\u0430\u0440\u0443\u0436\u0443\u00bb \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 (192.168.111.225 \u0438\u043b\u0438 192.168.111.225) \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0443\u0437\u043b\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 POD \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442 IP-\u0430\u0434\u0440\u0435\u0441 \u0443\u0437\u043b\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u044b \u043b\u0438\u0431\u043e \u041c\u042d, \u043b\u0438\u0431\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/360\/d0d\/e7e\/360d0de7ec4b660ec5302dd5ee4342a0.png\"><\/div>\n<p>  <i>Subnet IP Egress<\/i><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 Egress-\u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Egress IP \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0437\u043b\u0430\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u2014 \u043a\u0430\u043a\u043e\u0439 IP \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 \u044d\u0442\u043e\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0432\u0437\u044f\u0442\u044c.<\/p>\n<pre><code class=\"plaintext\">[ocp@shift-is01 egress]$ oc patch hostsubnet shift-worker0 --type=merge -p '{\u00abegressCIDRs\u00bb: [\u00ab192.168.111.224\/29\u00bb]}'  hostsubnet.network.openshift.io\/shift-worker0 patched  [ocp@shift-is01 egress]$ oc patch hostsubnet shift-worker1 --type=merge -p '{\u00abegressCIDRs\u00bb: [\u00ab192.168.111.224\/29\u00bb]}'  hostsubnet.network.openshift.io\/shift-worker1 patched  [ocp@shift-is01 egress]$ oc get hostsubnets.network.openshift.io shift-worker0 shift-worker1  NAME            HOST            HOST IP           SUBNET          EGRESS CIDRS             EGRESS IPS  shift-worker0   shift-worker0   192.168.111.203   10.254.3.0\/24   [\u00ab192.168.111.224\/29\u00bb] shift-worker1   shift-worker1   192.168.111.204   10.254.4.0\/24   [\u00ab192.168.111.224\/29\u00bb]<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0443, \u043a\u0430\u043a\u043e\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430:<\/p>\n<pre><code class=\"plaintext\">[ocp@shift-is01 egress]$ oc patch netnamespace egress --type=merge -p '{\u00abegressIPs\u00bb: [\u00ab192.168.111.225\u00bb]}'  netnamespace.network.openshift.io\/egress patched  [ocp@shift-is01 egress]$ oc get netnamespaces egress  NAME     NETID      EGRESS IPS  egress   14807624   [\u00ab192.168.111.225\u00bb]<\/code><\/pre>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, egressCIDR \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0442\u043e\u0439 \u0436\u0435 \u043f\u043e\u0434\u0441\u0435\u0442\u0438, \u0447\u0442\u043e \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0443\u0437\u043b\u0430. \u0418 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u0434\u0432\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u2014 \u043f\u0440\u0438 \u043e\u0442\u043a\u0430\u0437\u0435 \u0443\u0437\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u00ab\u043f\u0435\u0440\u0435\u0435\u0434\u0435\u0442\u00bb \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c egressCIDR (\u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u0432 \u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0434\u0438\u0442).<\/p>\n<h2>Egress Router<\/h2>\n<p>  \u0420\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043f\u0440\u043e Egress \u0432 OpenShift, \u0432\u0430\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043f\u0440\u043e Egress router. \u041e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0435\u0449\u0435 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 Openshift SDN. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 POD, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0434\u0438\u043d \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 OpenShift, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u0432\u043d\u0435\u0448\u043d\u0438\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0443\u0437\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 macvlan CNI plugin.<\/p>\n<p>  \u042d\u0442\u043e\u0442 POD \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b \u0432 \u0440\u043e\u043b\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0435\u0442\u044c\u044e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0441\u0435\u0442\u044f\u043c\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 OpenShift. \u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0447\u0435\u0440\u0435\u0437 Egress router \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"https:\/\/www.openshift.com\/blog\/accessing-external-services-using-egress-router\">Red Hat OpenShift Blog<\/a>. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 OpenShfit SDN \u043f\u0440\u043e\u0449\u0435 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 Egress router \u0432 OpenShift \u0432\u0435\u0440\u0441\u0438\u0438 4 \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/p>\n<h2>Vanilla Kubernetes<\/h2>\n<p>  \u0410 \u0447\u0442\u043e \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Egress \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0432 \u00ab\u0432\u0430\u043d\u0438\u043b\u044c\u043d\u043e\u043c\u00bb Kubernetes? \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442. \u0412\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 SDN, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Calico \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c Source NAT \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0443\u043b\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432. \u041d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 POD \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u043c\u0438\u0440\u043e\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h2>\u0420\u0435\u0437\u044e\u043c\u0435 <\/h2>\n<p>  \u0412 OpenShift \u043c\u043e\u0436\u043d\u043e \u0448\u0442\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 SDN \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c IP-\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u044e\u0430\u043d\u0441\u044b:<\/p>\n<ol>\n<li>\u0412\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c Egress IP \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f POD \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0434\u0430\u043d\u043d\u044b\u0445; <\/li>\n<li>Network alias \u0434\u043b\u044f Egress IP \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f OC \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0443\u0437\u043b\u0430\u0445 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u00ab\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u00bb \u0438\u0437 \u043d\u0438\u0445 \u0431\u044b\u043b \u043f\u0435\u0440\u0432\u044b\u043c; <\/li>\n<li>\u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f IP address management \u0434\u043b\u044f Egress IP. \u042d\u0442\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e: \u0440\u0430\u0437 \u0432\u044b \u0441\u0430\u043c\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0435\u0441\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c IP, \u0442\u043e \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0437\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0442\u043e\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430 \u0432\u0430\u043c\u0438. <\/li>\n<\/ol>\n<p>  \u041e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 Egress \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 IP \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041d\u043e \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 VLAN?<\/p>\n<p>  \u041f\u043e\u0434\u043c\u0435\u043d\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0437\u0434\u0435\u0441\u044c \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442. \u0420\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 CNI \u00abmeta-plugin\u00bb Multus. Multus CNI plugin \u0441\u0442\u0430\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432 OpenShift 4.1 \u0438 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 POD \u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0435\u0442\u044f\u043c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. <\/p>\n<p>  \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e Multus CNI Plugin \u0432 OpenShift \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430.<\/p>\n<p>  \u0414\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0438! <\/p>\n<h2>\u0421\u043f\u0438\u0441\u043e\u043a \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b<\/h2>\n<p>  <a href=\"https:\/\/docs.openshift.com\/container-platform\/4.6\/networking\/openshift_sdn\/assigning-egress-ips.html\">https:\/\/docs.openshift.com\/container-platform\/4.6\/networking\/openshift_sdn\/assigning-egress-ips.html<\/a><\/p>\n<p>  <a href=\"https:\/\/examples.openshift.pub\/networking\/egress-ip\/\">https:\/\/examples.openshift.pub\/networking\/egress-ip\/<\/a><\/p>\n<p>  <a href=\"https:\/\/www.openshift.com\/blog\/how-to-enable-static-egress-ip-in-ocp\">https:\/\/www.openshift.com\/blog\/how-to-enable-static-egress-ip-in-ocp<\/a><\/p>\n<p>  <a href=\"https:\/\/www.openshift.com\/blog\/accessing-external-services-using-egress-router\">www.openshift.com\/blog\/accessing-external-services-using-egress-router<\/a><\/p>\n<p>  <i>\u0410\u0432\u0442\u043e\u0440: \u0421\u0435\u0440\u0433\u0435\u0439 \u0410\u0440\u0442\u0435\u043c\u043e\u0432, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043e\u0442\u0434\u0435\u043b\u0430 DevOps-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u00ab\u0418\u043d\u0444\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0414\u0436\u0435\u0442\u00bb<\/i><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/jetinfosystems\/blog\/527482\/\"> https:\/\/habr.com\/ru\/company\/jetinfosystems\/blog\/527482\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/d0\/o_\/rs\/d0o_rs9fvpuo3h6jlx7iiexszng.jpeg\"><\/p>\n<p>  \u041f\u0440\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0432 OpenShift \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c (\u043e\u043d\u043e \u0436\u0435 Ingress) \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043f\u043e \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435. \u041d\u043e, \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 (Egress). \u0410 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435. \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043d\u0438\u0448\u0443 \u0441\u0435\u0440\u0438\u0435\u0439 \u043f\u043e\u0441\u0442\u043e\u0432.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u043d\u0443\u0436\u0435\u043d \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430?   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-313014","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/313014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=313014"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/313014\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=313014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=313014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=313014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}