±à¼ÍƼö: |
±¾ÎĽ«ÒÔ´øÓÐÁ½¸ö
Linux ½ÚµãµÄ±ê×¼ Google Kubernetes Engine£¨GKE£©¼¯ÈºÎªÀý£¬Í¨¹ý¸ú×Ù
HTTP ÇëÇó±»´«Ë͵½¼¯Èº·þÎñµÄÕû¸ö¹ý³Ì£¬Éî¶È²ð½â Kubernetes ÍøÂçµÄ¸´ÔÓÐÔ¡£
±¾ÎÄÀ´×ÔÓÚK8s¼¼ÊõȦ£¬ÓÉAlice±à¼¡¢ÍƼö¡£ |
|
ÇëÇóµÄÂóÌ
µ±Ò»¸öÈËÔÚä¯ÀÀÍøÒ³Ê±£¬ËûÊ×Ïȵ¥»÷Ò»¸öÁ´½Ó£¬·¢ÉúÁËһЩÊ£¬Ö®ºóÄ¿±êÒ³Ãæ¾Í±»¼ÓÔØ³öÀ´¡£ÕâÈÃÈ˲»ÃâºÃÆæ£¬´Óµ¥»÷Á´½Óµ½Ò³Ãæ¼ÓÔØ£¬Öм䵽µ×·¢ÉúÁËʲô£¿

¶ÔÓÚÕâ¸öÎÊÌ⣬ÎÒÃÇ¿ÉÒÔÕâÑùÀí½â¡£ÈçÏÂͼËùʾ£¬Óû§ÇëÇóͨ¹ý Internet ±»·¢Ë͸øÒ»¸ö·Ç³£´óµÄÔÆÌṩÉÌ£¬È»ºóÔÙ±»·¢Ë͵½¸ÃÔÆÌṩÉÌ»ù´¡¼Ü¹¹ÖÐÍйܵÄ
Kubernetes ¼¯Èº¡£

Èç¹û½øÒ»²½·Å´ó Kubernetes ¼¯Èº£¬ÎÒÃÇ¿ÉÒÔ¿´µ½ÔÆÌṩÉÌÕýÏò Kubernetes Service
×ÊÔ´£¨svc£©·¢ËÍÇëÇó£¬È»ºó½«ÇëÇó·Óɵ½ Kubernetes ReplicaSet£¨rs£©ÖÐµÄ Pod¡£

ΪÁ˸üÖ±¹Û£¬ÎÒÃÇ¿ÉÒÔ²¿Êð YAML À´´´½¨ Kubernetes Service ºÍ ReplicaSet£º
ÏÖÔÚÎÒÃÇÒѾÔÚ hello-world ReplicaSet Ï´´½¨ÁËÁ½¸ö Pod£¬»¹´´½¨ÁËÒ»¸ö´øÓиºÔؾùºâÆ÷µÄ·þÎñ×ÊÔ´
hello-world£¨Èç¹ûÔÆÌṩÉ̺ͼ¯ÈºÍøÂçÖ§³Ö£©£¬ÒÔ¼°Ò»¸öÔÚ host:port ÖÐÓÐÁ½¸öÌõÄ¿µÄ
Kubernetes Endpoint ×ÊÔ´£¬Ã¿¸ö Pod ¶ÔÓ¦Ò»¸ö£¬ÒÔ Pod IP ×÷ΪÖ÷»úÖµºÍ¶Ë¿Ú
8080¡£
ÔÚ GKE ¼¯ÈºÉÏ£¬ÎÒÃÇ kubectl һϻ᷵»ØÒÔÏÂÄÚÈÝ£º

¼¯Èº IP ÍøÂçÐÅÏ¢£º
Node - 10.138.15.0/24
Cluster - 10.16.0.0/14
Service - 10.19.240.0/20
ÒÑÖª·þÎñÔÚ¼¯Èº CIDR ÖеÄÐéÄâ IP µØÖ·£¨VIP£©ÊÇ 10.19.240.1¡£ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔ´Ó¸ºÔؾùºâÆ÷¿ªÊ¼£¬ÉîÈë¸ú×ÙÇëÇó½øÈë
Kubernetes ¼¯ÈºµÄÕû¸ö¡°Âó̡±¡£
¸ºÔؾùºâÆ÷
Kubernetes ͨ¹ý±¾µØ¿ØÖÆÆ÷ºÍ Ingress ¿ØÖÆÆ÷ÌṩÁ˺ܶ๫¿ª·þÎñµÄ·½·¨£¬µ«ÕâÀïÎÒÃÇ»¹ÊÇʹÓÃ
LoadBalancer ÀàÐ͵ıê×¼ Service ×ÊÔ´¡£
ÎÒÃÇµÄ hello-world ·þÎñÐèÒª GCP ÍøÂç¸ºÔØ¾ùºâÆ÷¡£Ã¿¸ö GKE ¼¯Èº¶¼ÓÐÒ»¸öÔÆ¿ØÖÆÆ÷£¬ËüÔÚ¼¯ÈººÍ
API ¶ËµãÖ®¼ä½øÐнӿڣ¬ÒÔ×Ô¶¯´´½¨¼¯Èº×ÊÔ´ËùÐèµÄ GCP ·þÎñ£¬°üÀ¨ÎÒÃǵĸºÔؾùºâÆ÷£¨²»Í¬ÔÆÌṩÉ̵ĸºÔؾùºâÆ÷ÔÚÀàÐÍ¡¢ÌØÐÔÉ϶¼Óв»Í¬£©¡£
ͨ¹ý´Ó²»Í¬µÄ½Ç¶È¹Û²ì¼¯Èº£¬ÎÒÃÇ¿ÉÒԲ鿴Íⲿ¸ºÔؾùºâÆ÷µÄλÖãº

kube-proxy
ÿ¸ö½Úµã¶¼ÓÐÒ»¸ö kube-proxy ÈÝÆ÷½ø³Ì£¨ÔÚ Kubernetes ²Î¿¼¿ò¼ÜÖУ¬kube-proxy
ÈÝÆ÷λÓÚ kube-system ÃüÃû¿Õ¼äµÄ Pod ÖУ©£¬Ëü¸ºÔð°ÑѰַµ½¼¯Èº Kubernetes
·þÎñ¶ÔÏóÐéÄâ IP µØÖ·µÄÁ÷Á¿×ª·¢µ½ÏàÓ¦ºó¶Ë Pod¡£kube-proxy µ±Ç°Ö§³ÖÈýÖÖ²»Í¬µÄʵÏÖ·½Ê½£º
User space£º¼´Óû§¿Õ¼ä£¬·þÎñ·ÓÉÊÇÔÚÓû§½ø³Ì¿Õ¼äµÄ kube-proxy ÖнøÐе쬶ø²»ÊÇÄÚºËÍøÂç¶ÑÕ»¡£ÕâÊÇkube-proxy
µÄ×î³õ°æ±¾£¬½ÏΪÎȶ¨£¬µ«ÊÇЧÂʲ»Ì«¸ß£»
iptables£ºÕâÖÖ·½Ê½²ÉÓà Linux Äں˼¶ Netfilter ¹æÔòΪ Kubernetes
Services ÅäÖÃËùÓзÓÉ£¬ÊÇ´ó¶àÊýƽ̨ʵÏÖ kube-proxy µÄĬÈÏģʽ¡£µ±¶Ô¶à¸öºó¶Ë Pod
½øÐиºÔؾùºâʱ£¬ËüʹÓÃδ¼ÓȨµÄÑ»·µ÷¶È£»
IPVS£ºIPVS »ùÓÚ Netfilter ¿ò¼Ü¹¹½¨£¬ÔÚ Linux ÄÚºËÖÐʵÏÖÁË L4 ¸ºÔؾùºâ£¬Ö§³Ö¶àÖÖ¸ºÔؾùºâËã·¨£¬Á¬½Ó×îÉÙ£¬Ô¤ÆÚÑÓ³Ù×î¶Ì¡£Ëü´Ó
Kubernetes v1.11 ÖпªÊ¼ÆÕ±é¿ÉÓ㬵«ÐèÒª Linux Äں˼ÓÔØ IPVS Ä£¿é¡£ËüÒ²²»Ïñ
iptables ÄÇÑùÓµÓи÷ÖÖ Kubernetes ÍøÂçÏîÄ¿µÄ¹ã·ºÖ§³Ö¡£
ÔÚÎÒÃÇµÄ GKE ¼¯ÈºÖУ¬kube-proxy ÒÔ iptables ģʽÔËÐУ¬ËùÒÔÎÒÃǺóÐøÖ÷ÒªÑо¿¸ÃģʽµÄ¹¤×÷·½Ê½¡£
Èç¹û²é¿´´´½¨ºÃµÄ hello-world ·þÎñ£¬ÎÒÃÇ¿ÉÒÔ·¢ÏÖËüÒѾ±»·ÖÅäÁËÒ»¸ö½Úµã¶Ë¿Ú 30510¡£½ÚµãÍøÂçÉ϶¯Ì¬·ÖÅäµÄ¶Ë¿ÚÔÊÐíÆäÖÐÍйܵĶà¸ö
Kubernetes ·þÎñÔÚÆä¶ËµãÖÐʹÓÃÏàͬµÄÃæÏò Internet µÄ¶Ë¿Ú¡£
Èç¹û·þÎñÒѱ»²¿Êðµ½±ê×¼ Amazon EKS ¼¯Èº£¬Ëü½«ÓÉ Elastic Load Balance
Ìṩ·þÎñ£¬¸Ã·þÎñ»á½«´«ÈëµÄÁ¬½Ó·¢Ë͵½ÏàÓ¦ Pod ½ÚµãÉÏÎÒÃÇ·þÎñµÄ½Úµã¶Ë¿Ú¡£µ«ÊÇ£¬Google Cloud
Platform ÍøÂç¸ºÔØ¾ùºâÆ÷Ö»»á½«Á÷Á¿×ª·¢µ½Óë¸ºÔØ¾ùºâÆ÷µÄ´«Èë¶Ë¿ÚλÓÚͬһ¶Ë¿ÚµÄÄ¿±ê£¬ÀýÈ磬µ½¸ºÔؾùºâÆ÷ÉϵĶ˿Ú
80 µÄÁ÷Á¿»á±»·¢Ë͵½Ä¿±êºó¶ËʵÀýÉÏµÄ¶Ë¿Ú 80¡£
ÎÒÃÇµÄ hello-world pods ¾ø¶ÔûÓÐÔÚ½ÚµãµÄ¶Ë¿Ú 80
ÉϼàÌý¡£ËùÒÔÈç¹ûÔÚ½ÚµãÉÏÔËÐÐ netstat£¬ÎÒÃÇ¿ÉÒÔ¿´µ½Ã»Óнø³ÌÕýÔÚ¼àÌý¸Ã¶Ë¿Ú¡£
ÄÇô£¬Í¨¹ý¸ºÔؾùºâÆ÷µÄÇëÇóÊÇÈçºÎ³É¹¦½¨Á¢Á¬½ÓµÄÄØ£¿Èç¹û kube-proxy
ÔÚÓû§¿Õ¼äģʽÏÂÔËÐУ¬Ëüʵ¼ÊÉÏÊǽ«Á¬½Ó´úÀíµ½ºó¶Ë Pod¡£µ«ÊÇ£¬ÔÚ iptables ģʽÏ£¬kube-proxy
ÅäÖÃÁË Netfilter Á´£¬Òò´Ë¸ÃÁ¬½Ó±»½ÚµãµÄÄÚºËÖ±½Ó·Óɵ½Á˺ó¶ËÈÝÆ÷µÄ¶Ëµã¡£
iptables
ÔÚÎÒÃÇµÄ GKE ¼¯ÈºÖУ¬Èç¹ûµÇ¼µ½ÆäÖÐÒ»¸ö½Úµã²¢ÔËÐÐ iptables£¬ÎÒÃÇ¿ÉÒÔ¿´µ½ÕâЩ¹æÔò¡£

¸ù¾Ý¹æÔò×¢ÊÍ£¬ÎÒÃÇ¿ÉÒÔ»ñµÃÓëÀ´×Ô·þÎñµÄ¸ºÔؾùºâÆ÷µ½ hello-world ·þÎñµÄ´«ÈëÁ¬½ÓÏàÆ¥ÅäµÄ¹ýÂËÆ÷Á´µÄÃû³Æ£¬²¢×ñѸÃÁ´µÄ¹æÔò£¨ÔÚûÓйæÔò×¢Ê͵ÄÇé¿öÏ£¬ÎÒÃÇÈÔÈ»¿ÉÒÔ½«¹æÔòµÄÔ´
IP µØÖ·Óë·þÎñµÄ¸ºÔؾùºâÆ÷½øÐÐÆ¥Å䣩¡£

ÎÒÃÇ»¹¿ÉÒÔ¿ÉÊÓ»¯ÍøÂç¶ÑÕ»ÖÐÓÃÓÚÆÀ¹ÀºÍÐÞ¸ÄÊý¾Ý°üµÄÁ´ºÍ¹æÔò£¬²é¿´ÎÒÃÇÔÚ¼¯ÈºÖд´½¨µÄ·þÎñÊÇÔõô°ÑÁ÷Á¿¶¨Ïòµ½¸±±¾¼¯³ÉÔ±µÄ¡£

KUBE-FW-33X6KPGSXBPETFQV Á´ÓÐÈý¸ö¹æÔò£¬Ã¿¸ö¹æÔò¶¼Ìí¼ÓÁËÁíÒ»¸öÁ´À´´¦ÀíÊý¾Ý°ü¡£
KUBE-MARK-MASQ Ïò·¢Ë͵½ hello-world ·þÎñµÄ°ü£¨À´×Ô¼¯ÈºÍøÂçÍⲿ£©Ìí¼ÓÒ»¸ö
Netfilter ±ê¼Ç¡£´øÓд˱ê¼ÇµÄÊý¾Ý°ü½«°´ÕÕ POSTROUTING ¹æÔò½øÐиü¸Ä£¬ÒÔʹÓÃÔ´ÍøÂçµØÖ·×ª»»£¨SNAT£©£¬²¢½«½Úµã
IP µØÖ·×÷ΪÆäÔ´ IP µØÖ·£»
KUBE-SVC-33X6KPGSXBPETFQV Á´ÊÊÓÃÓÚËùÓÐÓë hello-world ·þÎñÏà¹ØµÄÁ÷Á¿£¨ÓëÔ´Î޹أ©£¬²¢ÇÒ¶Ôÿ¸ö·þÎñ¶Ëµã£¨ÔÚ±¾ÀýÖÐΪÁ½¸ö
Pod£©Ìṩ¹æÔò¡£Ê¹ÓÃÄĸö¶ËµãÁ´ÊÇÍêÈ«Ëæ»úÈ·¶¨µÄ£º
KUBE-SEP-ALRUKLHE5DT3R34X£ºÈç¹ûÐèÒª£¬KUBE-MARK-MASQ »áÔÙ´ÎÏòÊý¾Ý°üÖÐÌí¼ÓÒ»¸ö
Netfilter ±ê¼ÇÓÃÒÔ SNAT£»DNAT ¹æÔòʹÓà 10.16.0.11:8080 ¶Ëµã×÷ΪĿ±êÀ´ÉèÖÃÄ¿±ê
NAT
KUBE-SEP-X7DMMHFVFOT4JLHD£ºÈç¹ûÐèÒª£¬KUBE-MARK-MASQ »áÔÙ´ÎΪÊý¾Ý°üÌí¼ÓÒ»¸ö
Netfilter ±ê¼ÇÓÃÒÔ SNAT£»DNAT ¹æÔòʹÓà 10.16.1.8:8080 ¶Ëµã×÷ΪĿ±êÀ´ÉèÖÃÄ¿±ê
NAT
KUBE-MARK-DROP Ïò´ËʱÉÐδÆôÓÃÄ¿±ê NAT µÄÊý¾Ý°üÌí¼Ó Netfilter ±ê¼Ç¡£ÕâЩÊý¾Ý°ü½«ÔÚ
KUBE-FIREWALL Á´Öб»¶ªÆú¡£
ÐèҪעÒâµÄÊÇ£¬¾¡¹ÜÎÒÃǵļ¯ÈºÓÐÁ½¸ö½Úµã£¬Ã¿¸ö½Úµã¶¼ÓÐÒ»¸ö hello-world Pod£¬µ«ÕâÖÖ·ÓÉ·½·¨²¢²»´æÔÚÓÅÏȼ¶¡£Èç¹ûÎÒÃǽ«·þÎñ¹æ·¶ÖеÄ
externalTrafficPolicy ¸ü¸ÄΪ Local£¬ÄÇôÇé¿ö¾Í»á¸Ä±ä¡£¼ÙÉè´Ëʱ´æÔÚÇëÇó£¬Õâ¸öÇëÇó²»½ö»áתµ½½ÓÊÕÇëÇóµÄ½ÚµãÉϵÄ
Pod£¬»¹»áµ¼ÖÂûÓзþÎñ Pod µÄ½Úµã¾Ü¾øÁ¬½Ó¡£
Òò´Ë£¬Local ²ßÂÔͨ³£ÐèÒªÓë Kubernetes daemon
sets Ò»ÆðʹÓ㬺óÕß»áÔÚ¼¯ÈºÖеÄÿ¸ö½ÚµãÉϵ÷¶ÈÒ»¸ö Pod¡£ËäȻǰÕßÄÜÃ÷ÏÔ½µµÍÇëÇóµÄƽ¾ùÍøÂçÑÓ³Ù£¬µ«ËüÒ²¿ÉÄܵ¼Ö·þÎñ
Pods Ö®¼äµÄ¸ºÔز»¾ùºâ¡£
Pod ÍøÂç
±¾ÎIJ»»áÉîÈë½éÉÜ Pod ÍøÂ磬µ«ÊÇÔÚÎÒÃÇµÄ GKE ¼¯ÈºÖУ¬Pod
ÍøÂçÓÐ×Ô¼ºµÄ CIDR ¿é£¬Óë½ÚµãÍøÂç·Ö¿ª¡£Kubernetes ÍøÂçÄ£ÐÍÒªÇó¼¯ÈºÖеÄËùÓÐ Pod
Äܹ»Ö±½ÓÏ໥Ѱַ£¨ÎÞÊÓÆäÖ÷»ú½Úµã£©¡£GKE Ⱥ¼¯Ê¹Óà kubenet CNI£¬ËüÔÚÿ¸ö½ÚµãÉÏ´´½¨µ½
Pod ÍøÂçµÄÍøÇŽӿڣ¬ÎªÃ¿¸ö½ÚµãÌṩ×Ô¼ºµÄ Pod IP µØÖ·×¨Óà CIDR ¿é£¬ÒÔ¼ò»¯·ÖÅäºÍ·ÓÉ¡£Google
Compute Engine£¨GCE£©ÍøÂç¿ÉÒÔÔÚ VM Ö®¼ä·Óɸà Pod ÍøÂçÁ÷Á¿¡£
ÇëÇó
ÒÔÏÂÊÇÊÇÎÒÃÇ»ñÈ¡ HTTP 200 ÏìÓ¦´úÂëµÄ·½Ê½£º

±¾ÎÄÌáµ½ÁËÐí¶à¸Ä±ä·Óɵķ½·¨£¬ËüÃÇÓɲ»Í¬ Kubernetes ƽ̨Ìṩ£¬ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÇåµ¥£º
ÈÝÆ÷ÍøÂç½Ó¿Ú£¨CNI£©²å¼þ£ºÃ¿¸öÔÆÌṩÉÌĬÈÏʹÓÃÓëÆä VM ÍøÂçÄ£ÐͼæÈÝµÄ CNI ʵÏÖ¡£±¾ÎÄÒÔĬÈÏÉèÖõÄ
GKE ¼¯ÈºÎªÀý£¬µ«Èç¹ûÊÇ Amazon EKS£¬ÄÇ»áºÜ²»Ò»Ñù£¬ÒòΪ AWS VPC CNI °ÑÈÝÆ÷Ö±½Ó·ÅÔÚ½ÚµãµÄ
VPC ÍøÂçÉÏ£»
Kubernetes Network Policy£ºCalico ÊÇÊµÊ©ÍøÂç²ßÂÔ×îÊÜ»¶ÓµÄ CNI
²å¼þÖ®Ò»£¬ËüÔÚ½ÚµãÉÏΪÿ¸ö Pod ´´½¨Ò»¸öÐéÄâÍøÂç½Ó¿Ú£¬²¢Ê¹Óà Netfilter ¹æÔòÀ´ÊµÊ©Æä·À»ðǽ¹æÔò£»
¾¡¹Ü´ó¶àÊýÇé¿öÏÂÈÔȻʹÓà Netfilter£¬µ« kube-proxy IPVS ·ÓÉģʽͨ³£»á°Ñ·þÎñ·ÓɺÍ
NAT ÒÆ³ö Netfilter ¹æÔò£»
Íⲿ¸ºÔؾùºâÆ÷»òÆäËû¿ÉÒÔ½«Á÷Á¿Ö±½Ó·¢Ë͵½·þÎñ½Úµã¶Ë¿ÚµÄÔ´½«Æ¥Åä iptables ÖеIJ»Í¬Á´£¨KUBE-NODEPORTS£©£»
Kubernetes Ingress ¿ØÖÆÆ÷¿ÉÒÔͨ¹ý¶àÖÖ·½Ê½¸ü¸Ä±ßÔµ·þÎñ·ÓÉ£»
ÖîÈç Istio Ö®ÀàµÄ·þÎñÍø¸ñ¿ÉÄÜ»áÈÆ¹ý kube-proxy£¬Ö±½ÓÁ¬½Ó·þÎñÈÝÆ÷Ö®¼äµÄÄÚ²¿Â·ÓÉ¡£
±£»¤·þÎñ
Kubernetes ÍøÂçÐèÒª´óÁ¿¿ÉÒÆ¶¯²¿¼þ£¬Ëü·Ç³£¸´ÔÓ£¬µ«Èç¹û¿ª·¢Õß¶Ô¼¯ÈºÖз¢ÉúµÄÊÂÓлù±¾Á˽⣬Õâ»áÓÐÖúÓÚ¿ª·¢Õ߸üÓÐЧµØ¼à¿Ø¡¢±£»¤Ëü¡£
µÚÒ»£¬¶ÔÓÚ Kubernetes ·þÎñ×ÊÔ´´´½¨µÄÔÆ¸ºÔؾùºâÆ÷£¬Ìí¼Ó·À»ðǽÏÞÖÆµÄͨÓ÷½·¨ÊDz»´æÔڵġ£Ò»Ð©ÔÆÌṩÉÌ»áÖ§³Ö·þÎñ¹æ·¶ÖеÄ
loadBalancerSourceRanges ×ֶΣ¬Õâ¸ö×Ö¶ÎÔÊÐí¿ª·¢ÕßÌṩ¿ÉÒÔÁ¬½Óµ½¸ºÔؾùºâÆ÷µÄ
IP CIDR ¿é°×Ãûµ¥¡£Èç¹ûÔÆÌṩÉ̲»Ö§³Ö´Ë×ֶΣ¬Ëü¾Í»á±»ºöÂÔ£¬Òò´Ë¿ª·¢ÕßÐèÒªÑéÖ¤Íⲿ¸ºÔؾùºâÆ÷µÄÍøÂçÅäÖá£
¶ø¶ÔÓÚ²»Ö§³Ö loadBalancerSourceRanges ×ֶεÄÔÆÌṩÉÌ£¬³ý·ÇÒѾÔÚÔÆÌṩÉ̼¶±ð²ÉÈ¡´ëÊ©Ëø¶¨Á˸ºÔؾùºâÆ÷ºÍÔËÐÐËüÃǵÄÔÆÍøÂ磬¿ª·¢Õß»¹ÊÇÓ¦¸Ã¼Ù¶¨¸ºÔؾùºâÆ÷ÉϵķþÎñ¶ËµãÊǶÔÈ«ÊÀ½ç¿ª·ÅµÄ¡£ÓÉÓÚ¸÷ÖÖÒòËØ£¬ÔÆÌṩÉ̸ºÔؾùºâÆ÷²úÆ·µÄĬÈÏ·À»ðǽÉèÖÃǧ²îÍò±ð£¬Ò»Ð©ÔÆÌṩÉÌ¿ÉÄÜ»¹Ö§³Ö¶Ô
Service ¶ÔÏóµÄ×¢ÊÍ£¬ÒÔÅäÖøºÔؾùºâÆ÷µÄ°²È«ÐÔ¡£
Æä´Î£¬Çë×¢Ò⣬ÎÒÃÇûÓÐͨ¹ýÔÚ GKE ¼¯ÈºÖÐÆôÓà Kubernetes ÍøÂç²ßÂÔÖ§³ÖÀ´°²×° Calico
CNI£¬ÒòΪ Calico ´´½¨ÁË´óÁ¿ÆäËû iptables ¹æÔò£¬Õâ¸ø¿ÉÊÓ»¯¸ú×Ùµ½ Pod µÄÐéÄâ·ÓÉʱÔö¼ÓÁ˶îÍâ²½Öè¡£¾¡¹ÜÈç´Ë£¬ÎÒÃÇ»¹Êǽ¨Ò鿪·¢ÕßÔÚÉú²ú¼¯ÈºÖÐʵÏÖ
NetworkPolicy API µÄ CNI£¬²¢´´½¨ÏÞÖÆ Pod Á÷Á¿µÄ²ßÂÔ¡£
µÚÈý£¬ÆôÓà HostNetwork ÊôÐÔ´´½¨µÄ Pod ½«¹²Ïí½ÚµãµÄÍøÂç¿Õ¼ä¡£ËäÈ»´æÔÚһЩÕâÑù×öµÄÀý×Ó£¬µ«Í¨³£Çé¿öÏ£¬´ó¶àÊý
Pod ²»ÐèÒªÔÚÖ÷»úÍøÂçÉÏ£¬ÓÈÆäÊǶÔÓÚÓÐ root ÌØÈ¨µÄ Pod£¬Õâ¿ÉÄܻᵼÖÂÊܹ¥»÷µÄÈÝÆ÷¿ÉÒÔ²é¿´ÍøÂçÁ÷Á¿¡£Èç¹û¿ª·¢ÕßÐèÒªÔÚ½ÚµãÍøÂçÉϹ«¿ªÈÝÆ÷¶Ë¿Ú£¬¶øÊ¹ÓÃ
Kubernetes Service ½Úµã¶Ë¿ÚÎÞ·¨Âú×ãÐèÇó£¬Ò»¸öÎÈÍ×µÄÑ¡ÔñÊÇ¿ÉÒÔÔÚ PodSpec
ÖÐΪÈÝÆ÷Ö¸¶¨ hostPort¡£
×îºó£¬Ê¹ÓÃÖ÷»úÍøÂçµÄ Pod ²»Ó¦Ê¹Óà NET_ADMIN ¹¦ÄÜÔËÐУ¬Õ⽫ʹËüÃÇÄܹ»¶ÁÈ¡ºÍÐ޸ĽڵãµÄ·À»ðǽ¹æÔò¡£
ÔÎÄ£ºhttps://www.stackrox.com/post/2020/01/kubernetes-networking-demystified/ |