{"id":345650,"date":"2023-02-19T09:00:23","date_gmt":"2023-02-19T09:00:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=345650"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=345650","title":{"rendered":"<span>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Kubernetes Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c ip \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Kubernetes \u0432 \u043e\u0431\u043b\u0430\u043a\u0435, \u0433\u0434\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 ip \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u042f \u0438\u0437\u0443\u0447\u0430\u044e Kubernetes, \u043e\u0431\u0445\u043e\u0434\u044f\u0441\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u043e\u043c \u0437\u0430 NAT, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 Kubernetes. \u041a\u043e\u0433\u0434\u0430 \u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0441 Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c, \u0443 \u043c\u0435\u043d\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u043d\u0435\u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0438\u043c\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0432 \u043d\u0435\u0433\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 ip \u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u043c\u0443 \u0438\u0437\u0432\u043d\u0435. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041b\u0438\u043d\u0443\u043a\u0441 \u0412\u0441\u0435\u043c\u043e\u0433\u0443\u0449\u0438\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 ip \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0443 vps. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 reg.ru (\u043d\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u0430, \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e) \u044f \u0430\u0440\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u043d\u0430 \u043f\u0430\u0440\u0443 \u0447\u0430\u0441\u043e\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0443 \u0441 ubuntu20.04 \u043d\u0430 \u0431\u043e\u0440\u0442\u0443 \u0438 \u043f\u0430\u0440\u043e\u0439 ip \u0430\u0434\u0440\u0435\u0441\u043e\u0432. \u041e\u0434\u0438\u043d \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e ssh, \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043d\u0438\u043c\u0435\u043c \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0438 \u0437\u0430\u0432\u0435\u0434\u0435\u043c \u0432 \u043d\u0430\u0448 Kubernetes (\u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0449\u0435, DNAT\u0430\u043c\u0438, \u043d\u043e \u0442\u0430\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439). \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 ip \u0430\u0434\u0440\u0435\u0441\u0430, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043b\u0435\u0435, \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0441\u0432\u043e\u0438, \u0438 \u0438\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>  <\/p>\n<h2 id=\"vps\">VPS<\/h2>\n<p>  <\/p>\n<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 vps \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip a 1: lo: &lt;LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000     link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00     inet 127.0.0.1\/8 scope host lo        valid_lft forever preferred_lft forever     inet6 ::1\/128 scope host         valid_lft forever preferred_lft forever 2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000     link\/ether 52:54:00:73:f5:f6 brd ff:ff:ff:ff:ff:ff     inet 95.163.241.96\/24 brd 95.163.241.255 scope global eth0        valid_lft forever preferred_lft forever     inet 89.108.76.161\/24 brd 89.108.76.255 scope global eth0        valid_lft forever preferred_lft forever     inet6 2a00:f940:2:4:2::51d4\/64 scope global         valid_lft forever preferred_lft forever     inet6 fe80::5054:ff:fe73:f5f6\/64 scope link         valid_lft forever preferred_lft forever 3: eth1: &lt;BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000     link\/ether 52:54:00:9a:da:36 brd ff:ff:ff:ff:ff:ff<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0443\u0448\u0430\u0432 eth0 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 arp \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f ip \u0430\u0434\u0440\u0435\u0441\u043e\u0432. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u043e\u0442\u0432\u044f\u0436\u0435\u043c ip \u0430\u0434\u0440\u0435\u0441 89.108.76.161 \u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u0438 arp \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 ip \u0430\u0434\u0440\u0435\u0441\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># tcpdump -i eth0 -n -v arp  tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 14:53:20.229845 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 95.163.241.96 tell 37.140.193.29, length 28 14:53:20.229879 ARP, Ethernet (len 6), IPv4 (len 4), Reply 95.163.241.96 is-at 52:54:00:73:f5:f6, length 28 14:54:05.031046 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 89.108.76.161 tell 37.140.193.29, length 28 14:54:05.031103 ARP, Ethernet (len 6), IPv4 (len 4), Reply 89.108.76.161 is-at 52:54:00:73:f5:f6, length 28 14:54:09.126771 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 95.163.241.96 tell 37.140.193.29, length 28 14:54:09.126827 ARP, Ethernet (len 6), IPv4 (len 4), Reply 95.163.241.96 is-at 52:54:00:73:f5:f6, length 28 14:54:49.573563 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 89.108.76.161 tell 37.140.193.29, length 28 14:54:49.573615 ARP, Ethernet (len 6), IPv4 (len 4), Reply 89.108.76.161 is-at 52:54:00:73:f5:f6, length 28 14:54:54.693462 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 95.163.241.96 tell 37.140.193.29, length 28 14:54:54.693493 ARP, Ethernet (len 6), IPv4 (len 4), Reply 95.163.241.96 is-at 52:54:00:73:f5:f6, length 28<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u043a\u0438\u043d\u0435\u043c \u0442\u0443\u043d\u043d\u0435\u043b\u044c \u0441 vps \u0434\u043e \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u043d\u043e\u0443\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e wireguard. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e\u043b\u043d\u043e \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0433\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># apt update # apt install wireguard # wg genkey | tee \/etc\/wireguard\/private.key # chmod go= \/etc\/wireguard\/private.key # cat \/etc\/wireguard\/private.key | wg pubkey | tee \/etc\/wireguard\/public.key # cat  > \/etc\/wireguard\/wg0.conf &lt;&lt;EOF [Interface] Address = 10.15.0.1\/24 SaveConfig = true ListenPort = 51820 PrivateKey = gFzlk6\/oBAkRnqTSqRQ0A03IR8iX2NY0Q9518xMTDmI= EOF<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c wireguard:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># systemctl start wg-quick@wg0.service<\/code><\/pre>\n<p>  <\/p>\n<p>\u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 ip \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip addr del 89.108.76.161\/24 brd 89.108.76.255 dev eth0<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043a \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 ip \u0447\u0435\u0440\u0435\u0437 \u0442\u0443\u043d\u043d\u0435\u043b\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip r add 89.108.76.161 via 10.15.0.2<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0438\u0436\u0435 \u043d\u0443\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043d\u043e\u0443\u0442\u0431\u0443\u043a \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0431\u0435\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443, \u0442.\u043a. \u0434\u0430\u043b\u0435\u0435 \u043c\u044b \u0437\u0430\u0432\u0435\u0440\u043d\u0435\u043c \u0432\u0435\u0441\u044c \u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a \u0432 \u0442\u0443\u043d\u043d\u0435\u043b\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 ip \u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430 \u0432 \u0441\u0435\u0442\u0438 wireguard \u0447\u0435\u0440\u0435\u0437 \u0442\u0443\u043d\u043d\u0435\u043b\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># wg set wg0 peer hd7clB\/uztrTOlsWTrHCF7mu9g6ECp+FhE2lhohWf1s= allowed-ips 89.108.76.161,10.15.0.2<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0438\u043d\u0433 \u043c\u0435\u0436\u0434\u0443 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># sysctl -w net.ipv4.ip_forward=1<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 FORWARD \u043d\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># iptables-save | grep FORWARD    :FORWARD ACCEPT [450722:544073659] :FORWARD ACCEPT [4633:3846037]<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 wireguard \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 wg0:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip a 4: wg0: &lt;POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000     link\/none      inet 10.15.0.1\/24 scope global wg0        valid_lft forever preferred_lft forever<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"noutbuk-ubuntu2004\">\u041d\u043e\u0443\u0442\u0431\u0443\u043a (Ubuntu20.04)<\/h2>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c wireguard \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u044e\u0447\u0438 \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># cat  > \/etc\/wireguard\/wg2.conf &lt;&lt;EOF  [Interface] PrivateKey = Some private key Address = 10.15.0.2\/24 Table = off  [Peer] PublicKey = aU3tLYzJPTKCtelYgVTtAfgnvixWdNK5jC2wnXgvemw= AllowedIPs = 0.0.0.0\/0 Endpoint = 95.163.241.96:51820 PersistentKeepalive = 25 EOF<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u0442\u0443\u043d\u043d\u0435\u043b\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># systemctl start wg-quick@wg2.service<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 wireguard:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip a 221: wg2: &lt;POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000     link\/none      inet 10.15.0.2\/24 scope global wg2        valid_lft forever preferred_lft forever<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ping 10.15.0.1 PING 10.15.0.1 (10.15.0.1) 56(84) bytes of data. 64 bytes from 10.15.0.1: icmp_seq=1 ttl=64 time=16.3 ms 64 bytes from 10.15.0.1: icmp_seq=2 ttl=64 time=8.91 ms 64 bytes from 10.15.0.1: icmp_seq=3 ttl=64 time=9.00 ms<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0432\u0435\u0441\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 ip \u043d\u0430 loopback \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip addr add 89.108.76.161 dev lo<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u0442\u0443\u043d\u043d\u0435\u043b\u044c, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a 89.108.76.161 (192.168.88.1 \u2014 \u0448\u043b\u044e\u0437 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e):<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip r add 95.163.241.96\/32 via 192.168.88.1  # ip r add default via 10.15.0.1 <\/code><\/pre>\n<p>  <\/p>\n<p>\u0423\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 FORWARD \u043d\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># iptables-save | grep FORWARD :FORWARD ACCEPT [67644779:42335638975] :FORWARD ACCEPT [149377:28667150]<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># sysctl -w net.ipv4.ip_forward=1<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"vps-1\">VPS<\/h2>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c 89.108.76.161 \u0441 VPS:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ping 89.108.76.161 PING 89.108.76.161 (89.108.76.161) 56(84) bytes of data. 64 bytes from 89.108.76.161: icmp_seq=1 ttl=64 time=6.90 ms 64 bytes from 89.108.76.161: icmp_seq=2 ttl=64 time=38.7 ms 64 bytes from 89.108.76.161: icmp_seq=3 ttl=64 time=59.9 ms<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 arp \u0437\u0430\u043f\u0440\u043e\u0441\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># farpd -d -i eth0 89.108.76.161<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 ping 89.108.76.161 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a \u0441\u0435\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430).<\/p>\n<p>  <\/p>\n<h2 id=\"noutbuk\">\u041d\u043e\u0443\u0442\u0431\u0443\u043a<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u043d\u0430 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 (\u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440) \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 (\u0412\u041c), \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0435\u0433\u0430\u0435\u0442 minikube. \u041e\u043d\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0430 \u0441 \u0431\u0440\u0438\u0434\u0436\u0435\u043c virbr0 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip a 19: virbr0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000     link\/ether 52:54:00:c3:6e:e6 brd ff:ff:ff:ff:ff:ff     inet 192.168.122.1\/24 brd 192.168.122.255 scope global virbr0        valid_lft forever preferred_lft forever<\/code><\/pre>\n<p>  <\/p>\n<p>\u0423\u0434\u0430\u043b\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u0441 lo: <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip addr del 89.108.76.161 dev lo<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043a 89.108.76.161 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0412\u041c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"># ip r add 89.108.76.161 via 192.168.122.245<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"vm\">\u0412\u041c<\/h2>\n<p>  <\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0412\u041c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ ip a 1: lo: &lt;LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000     link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00     inet 127.0.0.1\/8 scope host lo        valid_lft forever preferred_lft forever     inet6 ::1\/128 scope host         valid_lft forever preferred_lft forever 2: enp1s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000     link\/ether 52:54:00:a5:b3:df brd ff:ff:ff:ff:ff:ff     inet 192.168.122.245\/24 brd 192.168.122.255 scope global dynamic enp1s0        valid_lft 2292sec preferred_lft 2292sec     inet6 fe80::5054:ff:fea5:b3df\/64 scope link         valid_lft forever preferred_lft forever 3: br-5b72cdfd77e4: &lt;BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default      link\/ether 02:42:01:94:a2:a5 brd ff:ff:ff:ff:ff:ff     inet 192.168.58.1\/24 brd 192.168.58.255 scope global br-5b72cdfd77e4        valid_lft forever preferred_lft forever     inet6 fe80::42:1ff:fe94:a2a5\/64 scope link         valid_lft forever preferred_lft forever<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0438\u043d\u0433\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ sysctl -w net.ipv4.ip_forward net.ipv4.ip_forward = 1  l@minikube2:~$ sudo iptables-save | grep FORWARD :FORWARD ACCEPT [2663492:1312451658] :FORWARD ACCEPT [6299:278761] <\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043c\u0438\u043d\u0438\u043a\u0443\u0431 \u0441 \u0442\u0440\u0435\u043c\u044f \u043d\u043e\u0434\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0431\u0440\u0438\u0434\u0436\u0435\u043c br-5b72cdfd77e4:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ docker ps CONTAINER ID   IMAGE                                 COMMAND                  CREATED      STATUS        PORTS                                                                                                                                  NAMES d672c95f6adc   gcr.io\/k8s-minikube\/kicbase:v0.0.37   \"\/usr\/local\/bin\/entr\u2026\"   5 days ago   Up 34 hours   127.0.0.1:49197->22\/tcp, 127.0.0.1:49196->2376\/tcp, 127.0.0.1:49195->5000\/tcp, 127.0.0.1:49194->8443\/tcp, 127.0.0.1:49193->32443\/tcp   helm-m03 6eac7091ea0c   gcr.io\/k8s-minikube\/kicbase:v0.0.37   \"\/usr\/local\/bin\/entr\u2026\"   5 days ago   Up 34 hours   127.0.0.1:49192->22\/tcp, 127.0.0.1:49191->2376\/tcp, 127.0.0.1:49190->5000\/tcp, 127.0.0.1:49189->8443\/tcp, 127.0.0.1:49188->32443\/tcp   helm-m02 c02b9bb12c98   gcr.io\/k8s-minikube\/kicbase:v0.0.37   \"\/usr\/local\/bin\/entr\u2026\"   5 days ago   Up 34 hours   127.0.0.1:49187->22\/tcp, 127.0.0.1:49186->2376\/tcp, 127.0.0.1:49185->5000\/tcp, 127.0.0.1:49184->8443\/tcp, 127.0.0.1:49183->32443\/tcp   helm<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u044e \u043d\u043e\u0434\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ sudo ip r add 89.108.76.161 via 192.168.58.4<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u0439\u0434\u0435\u043c \u043d\u0430 \u043d\u0435\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ minikube ssh -n helm-m03<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0432\u0435\u0441\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0430 lo:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">docker@helm-m03:~$ sudo ip addr add 89.108.76.161 dev lo docker@helm-m03:~$ ip a         1: lo: &lt;LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000     link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00     inet 127.0.0.1\/8 scope host lo        valid_lft forever preferred_lft forever         inet 89.108.76.161\/32 scope global lo        valid_lft forever preferred_lft forever  21: eth0@if22: &lt;BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default      link\/ether 02:42:c0:a8:3a:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0     inet 192.168.58.4\/24 brd 192.168.58.255 scope global eth0        valid_lft forever preferred_lft forever<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043f\u0438\u0442\u043e\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">docker@helm-m03:~$ sudo apt update docker@helm-m03:~$ sudo apt install python<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 8080:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">docker@helm-m03:~$ python -m http.server<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a 89.108.76.161 \u0438\u0437\u0432\u043d\u0435 \u043f\u043e <code>http:\/\/89.108.76.161:8000<\/code>. <\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ minikube addons enable ingress<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043d\u0435\u0441\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 ip \u0432 ingress controller:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ k patch svc -n ingress-nginx ingress-nginx-controller -p '{\"spec\":{\"externalIPs\":[\"89.108.76.161\"]}}'<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438 \u0443 \u043d\u0430\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f DNAT \u043d\u0430 pod, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 ingress-nginx-controller:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ sudo iptables-save | grep 89.108.76.161 -A KUBE-SERVICES -d 89.108.76.161\/32 -p tcp -m comment --comment \"ingress-nginx\/ingress-nginx-controller:http external IP\" -m tcp --dport 80 -j KUBE-EXT-CG5I4G2RS3ZVWGLK -A KUBE-SERVICES -d 89.108.76.161\/32 -p tcp -m comment --comment \"ingress-nginx\/ingress-nginx-controller:https external IP\" -m tcp --dport 443 -j KUBE-EXT-EDNDUDH2C75GIR6O<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441 whoami \u0432 Kubernetes:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ cat > deployment.yaml &lt;&lt;EOF apiVersion: apps\/v1 kind: Deployment metadata:   name: whoami     labels:     app: whoami spec:   replicas: 3   selector:     matchLabels:       app: whoami   template:     metadata:       labels:         app: whoami     spec:       containers:       - name: whoami         image: traefik\/whoami         ports:         - containerPort: 80 EOF<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ cat > service.yaml &lt;&lt;EOF apiVersion: v1 kind: Service metadata:   name: extip spec:   ports:   - port: 80     targetPort: 80   selector:     app: whoami EOF<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ cat ingress.yaml &lt;&lt;EOF apiVersion: networking.k8s.io\/v1 kind: Ingress metadata:   name: extip  spec:   ingressClassName: nginx   rules:   - host: extip.yourdomainhere     http:       paths:       - path: \/         pathType: Prefix         backend:           service:             name: extip             port:               number: 80 EOF<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">l@minikube2:~$ k apply -f deployment.yaml l@minikube2:~$ k apply -f service.yaml l@minikube2:~$ k apply -f ingress.yaml<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u043f\u0438\u0448\u0435\u043c \u0432 A \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043e\u043c\u0435\u043d\u0430 extip.yourdomainhere \u0432\u043d\u0435\u0448\u043d\u0438\u0439 ip \u0430\u0434\u0440\u0435\u0441 89.108.76.161. \u041e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0438\u0437\u0432\u043d\u0435 \u043d\u0430 <code>http:\/\/extip.yourdomainhere<\/code>, \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442!<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">curl extip.yourdomainhere Hostname: whoami-75d55b64f6-7q894 IP: 127.0.0.1 IP: 10.244.0.17 RemoteAddr: 10.244.0.3:50120 GET \/ HTTP\/1.1 Host: extip.yourdomainhere User-Agent: Mozilla\/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko\/20100101 Firefox\/109.0 Accept: text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,*\/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.5 Upgrade-Insecure-Requests: 1 X-Forwarded-For: 192.168.58.4 X-Forwarded-Host: extip.yourdomainhere X-Forwarded-Port: 80 X-Forwarded-Proto: http X-Forwarded-Scheme: http X-Real-Ip: 192.168.58.4 X-Request-Id: f3c1f071b171b2ab1036241410acebcb X-Scheme: http<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 ip \u0443 vps, \u0437\u0430\u0432\u0435\u043b\u0438 \u0435\u0433\u043e \u0432 Kubernetes, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430, \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 Kubernetes \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \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\/post\/717842\/\"> https:\/\/habr.com\/ru\/post\/717842\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Kubernetes \u0432 \u043e\u0431\u043b\u0430\u043a\u0435, \u0433\u0434\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 ip \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u042f \u0438\u0437\u0443\u0447\u0430\u044e Kubernetes, \u043e\u0431\u0445\u043e\u0434\u044f\u0441\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u043e\u043c \u0437\u0430 NAT, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 Kubernetes. \u041a\u043e\u0433\u0434\u0430 \u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0441 Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c, \u0443 \u043c\u0435\u043d\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u043d\u0435\u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0438\u043c\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0432 \u043d\u0435\u0433\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 ip \u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u043c\u0443 \u0438\u0437\u0432\u043d\u0435. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041b\u0438\u043d\u0443\u043a\u0441 \u0412\u0441\u0435\u043c\u043e\u0433\u0443\u0449\u0438\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c.<\/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-345650","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/345650","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=345650"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/345650\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=345650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=345650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=345650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}