Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
һƪÎÄÕÂΪÄãͼ½â Kubernetes ÍøÂçͨÐÅÔ­Àí
 
×÷ÕߣºÔƶËÃÜÂë
  872  次浏览      27
 2021-12-14
 
±à¼­ÍƼö:
±¾ÎÄÕë¶ÔkubernetesµÄÍøÂçÄ£ÐÍ£¬´ÓÒ»¸öservice£¬¶þ¸öIP£¬Èý¸öport³ö·¢½øÐÐͼ½â¡£Ïê½âkubernetes¼¯ÈºÄÚ¼°¼¯ÈºÍⲿ·ÃÎÊ·½Ê½ Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚÖªºõ £¬ÓÉAlice±à¼­¡¢ÍƼö¡£

Ãû´Ê½âÊÍ

1¡¢ÍøÂçµÄÃüÃû¿Õ¼ä£ºLinux ÔÚÍøÂçÕ»ÖÐÒýÈëÍøÂçÃüÃû¿Õ¼ä£¬½«¶ÀÁ¢µÄÍøÂçЭÒéÕ»¸ôÀëµ½²»Í¬µÄÃüÃû¿Õ¼äÖУ¬±Ë´Ë¼äÎÞ·¨Í¨ÐÅ£»Docker ÀûÓÃÕâÒ»ÌØÐÔ£¬ÊµÏÖ²»ÈÝÆ÷¼äµÄÍøÂç¸ôÀë¡£

2¡¢Veth É豸¶Ô£ºÒ²½ÐÐéÄâÍøÂç½Ó¿Ú¶Ô¡£VethÉ豸¶ÔµÄÒýÈëÊÇΪÁËʵÏÖÔÚ²»Í¬ÍøÂçÃüÃû¿Õ¼äµÄͨÐÅ¡£

3¡¢Iptables/Netfilter£ºNetfilter ¸ºÔðÔÚÄÚºËÖÐÖ´Ðи÷ÖֹҽӵĹæÔò£¨¹ýÂË¡¢Ð޸ġ¢¶ªÆúµÈ£©£¬ÔËÐÐÔÚÄÚºË Ä£Ê½ÖУ»IptablesģʽÊÇÔÚÓû§Ä£Ê½ÏÂÔËÐеĽø³Ì£¬¸ºÔðЭÖúά»¤ÄÚºËÖÐ Netfilter µÄ¸÷ÖÖ¹æÔò±í£»Í¨¹ý¶þÕßµÄÅäºÏÀ´ÊµÏÖÕû¸ö Linux ÍøÂçЭÒéÕ»ÖÐÁé»îµÄÊý¾Ý°ü´¦Àí»úÖÆ¡£

4¡¢ÍøÇÅ£ºÍøÇÅÊÇÒ»¸ö¶þ²ãÍøÂçÉ豸,ͨ¹ýÍøÇÅ¿ÉÒÔ½« linux Ö§³ÖµÄ²»Í¬µÄ¶Ë¿ÚÁ¬½ÓÆðÀ´,²¢ÊµÏÖÀàËÆ½»»»»úÄÇÑùµÄ¶à¶Ô¶àµÄͨÐÅ¡£

5¡¢Â·ÓÉ£ºLinux ϵͳ°üº¬Ò»¸öÍêÕûµÄ·Óɹ¦ÄÜ£¬µ±IP²ãÔÚ´¦ÀíÊý¾Ý·¢ËÍ»òת·¢µÄʱºò£¬»áʹÓ÷ÓɱíÀ´¾ö¶¨·¢ÍùÄÄÀï¡£

ÁîÈËÍ·´óµÄÍøÂçÄ£ÐÍ

Kubernetes¶Ô¼¯ÈºÄÚ²¿µÄÍøÂç½øÐÐÁËÖØÐ³éÏó£¬ÒÔʵÏÖÕû¸ö¼¯ÈºÍøÂç±âƽ»¯¡£ÎÒÃÇ¿ÉÒÔÀí½âÍøÂçÄ£ÐÍʱ£¬¿ÉÒÔÍêÈ«³éÀëÎïÀí½ÚµãÈ¥Àí½â£¬ÎÒÃÇÓÃͼ˵»°£¬ÏÈÓлù±¾Ó¡Ïó¡£

ÆäÖУ¬Öص㽲½âÒÔϼ¸¸ö¹Ø¼ü³éÏó¸ÅÄî¡£

Ò»¸ö Service

Service ÊÇ Kubernetes ΪÆÁ±ÎÕâЩºó¶ËʵÀý£¨Pod£©µÄ¶¯Ì¬±ä»¯ºÍ¶Ô¶àʵÀýµÄ¸ºÔؾùºâ¶øÒýÈëµÄ×ÊÔ´¶ÔÏó¡£Service ͨ³£Óë deployment °ó¶¨£¬¶¨ÒåÁË·þÎñµÄ·ÃÎÊÈë¿ÚµØÖ·£¬Ó¦Óã¨Pod£©¿ÉÒÔͨ¹ýÕâ¸öÈë¿ÚµØÖ··ÃÎÊÆä±³ºóµÄÒ»×éÓÉ Pod ¸±±¾×é³ÉµÄ¼¯ÈºÊµÀý¡£Service ÓëÆäºó¶Ë Pod ¸±±¾¼¯ÈºÖ®¼äÔòÊÇͨ¹ý Label Selector À´ÊµÏÖÓ³Éä¡£ ServiceµÄÀàÐÍ£¨Type£©¾ö¶¨ÁË Service ÈçºÎ¶ÔÍâÌṩ·þÎñ£¬¸ù¾ÝÀàÐͲ»Í¬£¬·þÎñ¿ÉÒÔÖ»ÔÚKubernetes clusterÖпɼû£¬Ò²¿ÉÒÔ±©Â¶µ½¼¯ÈºÍⲿ¡£ServiceÓÐÈýÖÖÀàÐÍ£¬ClusterIP£¬NodePort ºÍ LoadBalancer¡£¾ßÌåµÄʹÓó¡¾°»áÔÚÏÂÎÄÖнøÐвûÊö¡£

ÔÚ²âÊÔ»·¾³²é¿´£º
$ kubectl get svc --selector app=nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx ClusterIP 172.19.0.166 <none> 80/TCP 1m
$ kubectl describe svc nginx Name: nginx
Namespace: default
Labels: app=nginx
Annotations: <none> Selector: app=nginx
Type: ClusterIP IP: 172.19.0.166
Port: <unset> 80/TCP TargetPort: 80/TCP
Endpoints: 172.16.2.125:80,172.16.2.229:80
Session Affinity: None Events: <none>

ÉÏÊöÐÅÏ¢Öиà svc ºó¶Ë´úÀíÁË2¸öPodʵÀý£º172.16.2.125:80£¬172.16.2.229:80

¶þ¸ö IP

Kubernetes ΪÃèÊöÆäÍøÂçÄ£Ð굀 IP ¶ÔÏ󣬳éÏó³ö Cluster IPºÍPod IPµÄ¸ÅÄî¡£ Pod IP ÊÇ Kubernetes ¼¯ÈºÖÐÿ¸ö Pod µÄ IP µØÖ·¡£ËüÊÇ Docker Engine ¸ù¾Ý docker0ÍøÇŵÄIPµØÖ·¶Î½øÐзÖÅäµÄ£¬ÊÇÒ»¸öÐéÄâµÄ¶þ²ãÍøÂç¡£Kubernetes ÖÐ Pod ¼äÄܹ»±Ë´ËÖ±½ÓͨѶ£¬Pod ÀïµÄÈÝÆ÷·ÃÎÊÁíÍâÒ»¸öPodÀïµÄÈÝÆ÷£¬ÊÇͨ¹ýPod IPËùÔÚ½øÐÐͨÐÅ¡£ Cluster IP½ö×÷ÓÃÓÚ Service£¬ÆäûÓÐʵÌå¶ÔÏóËù¶ÔÓ¦£¬Òò´Ë Cluster IP ÎÞ·¨±»pingͨ¡£ËüµÄ×÷ÓÃÊÇΪ Service ºó¶ËµÄʵÀýÌṩͳһµÄ·ÃÎÊÈë¿Ú¡£µ±·ÃÎÊ Cluster IP ʱ£¬ÇëÇ󽫱»×ª·¢µ½ºó¶ËµÄʵÀýÉÏ£¬Ä¬ÈÏÊÇÂÖѯ·½Ê½¡£Cluster IP ºÍ ServiceÒ»ÑùÓÉ kube-proxy ×é¼þά»¤£¬ÆäʵÏÖ·½Ê½Ö÷ÒªÓÐÁ½ÖÖ£¬iptables ºÍ IPVS¡£ÔÚ 1.8 °æ±¾ºó kubeproxy ¿ªÊ¼Ö§³ÖIPVS ·½Ê½¡£ÔÚÉÏÀýÖУ¬SVCµÄÐÅÏ¢Öаüº¬ÁËCluster IP¡£

ÕâÀïδÁгö node ip ¸ÅÄÓÉÓÚÆä±¾ÉíÊÇÎïÀí»úµÄÍø¿¨IP¡£Òò´Ë¿ÉÀí½âΪnodeip¾ÍÊÇÎïÀí»úIP¡£

Èý¸ö Port

ÔÚ Kubernetes ÖУ¬Éæ¼°ÈÝÆ÷£¬Pod£¬Service£¬¼¯Èº¸÷µÈ¶à¸ö²ã¼¶µÄ¶ÔÏó¼äµÄͨÐÅ£¬ÎªÔÚÍøÂçÄ£ÐÍÖÐÇø·Ö¸÷²ã¼¶µÄͨÐŶ˿ڣ¬ÕâÀï¶ÔPort½øÐÐÁ˳éÏó¡£

Port

¸ÃPort·ÇÒ»°ãÒâÒåÉϵÄTCP/IPÖеÄPort¸ÅÄËüÊÇÌØÖ¸KubernetesÖÐServiceµÄport£¬ÊÇService¼äµÄ·ÃÎʶ˿ڣ¬ÀýÈçMysqlµÄServiceĬÈÏ3306¶Ë¿Ú¡£Ëü½ö¶Ô½øÈºÄÚÈÝÆ÷Ìṩ·ÃÎÊȨÏÞ£¬¶øÎÞ·¨´Ó¼¯ÈºÍⲿͨ¹ý¸Ã¶Ë¿Ú·ÃÎÊ·þÎñ¡£

nodePort

nodePortΪÍⲿ»úÆ÷ÌṩÁË·ÃÎʼ¯ÈºÄÚ·þÎñµÄ·½Ê½¡£±ÈÈçÒ»¸öWebÓ¦ÓÃÐèÒª±»ÆäËûÓû§·ÃÎÊ£¬ÄÇôÐèÒªÅäÖÃtype=NodePort£¬¶øÇÒÅäÖÃnodePort=30001£¬ÄÇôÆäËû»úÆ÷¾Í¿ÉÒÔͨ¹ýä¯ÀÀÆ÷·ÃÎÊscheme://node:30001·ÃÎʵ½¸Ã·þÎñ£¬ÀýÈçhttp://node:30001¡£

targetPort

targetPortÊÇÈÝÆ÷µÄ¶Ë¿Ú£¨×î¸ù±¾µÄ¶Ë¿ÚÈë¿Ú£©£¬ÓëÖÆ×÷ÈÝÆ÷ʱ±©Â¶µÄ¶Ë¿ÚÒ»Ö£¨DockerFileÖÐEXPOSE£©£¬ÀýÈç http://docker.io ¹Ù·½µÄ nginx ±©Â¶µÄÊÇ80¶Ë¿Ú¡£ ¾ÙÒ»¸öÀý×ÓÀ´¿´ÈçºÎÅäÖà Service µÄ port£º

kind: Service apiVersion:
v1 metadata: name: mallh5-service namespace:
abcdocker spec: selector:
app: mallh5web type:
NodePort ports: - protocol:
TCP port: 3017 targetPort:
5003 nodePort: 31122

ÕâÀï¾Ù³öÁËÒ»¸öserviceµÄyaml£¬Æä²¿ÊðÔÚabcdockerµÄnamespaceÖС£ÕâÀïÅäÖÃÁËnodePort£¬Òò´ËÆäÀàÐÍType¾ÍÊÇNodePort£¬×¢Òâ´óСд¡£ÈôûÓÐÅäÖÃnodePort£¬ÄÇÕâÀïÐèÒªÌîдClusterIP£¬¼´±íʾֻ֧³Ö¼¯ÈºÄÚ²¿·þÎñ·ÃÎÊ¡£

¼¯ÈºÄÚ²¿Í¨ÐÅ

µ¥½ÚµãͨÐÅ

¼¯Èºµ¥½ÚµãÄÚµÄͨÐÅ£¬Ö÷Òª°üÀ¨Á½ÖÖÇé¿ö£¬Í¬Ò»¸ö pod ÄڵĶàÈÝÆ÷¼äͨÐÅÒÔ¼°Í¬Ò»½Úµã²»Í¬ pod ¼äµÄͨÐÅ¡£ÓÉÓÚ²»Éæ¼°¿ç½Úµã·ÃÎÊ£¬Òò´ËÁ÷Á¿²»»á¾­¹ýÎïÀíÍø¿¨½øÐÐת·¢¡£ ͨ¹ý²é¿´Â·ÓÉ±í£¬Ò²ÄÜ¿ú¼ûÒ»¶þ£º

root@node-1:/opt/bin# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.23.100.1 0.0.0.0 UG 0 0 0 eth0 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 flannel.1 #flannel ÍøÂçÄÚ¿ç½ÚµãµÄͨÐŻύ¸ø flannel.1 ´¦Àí 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0 #flannel ÍøÂçÄÚ½ÚµãÄÚµÄͨÐÅ»á×ß docker0

1 Pod ÄÚͨÐÅ

ÈçÏÂͼËùʾ£º

ÕâÖÖÇé¿öÏ£¬Í¬Ò»¸öpodÄÚ¹²ÏíÍøÂçÃüÃû¿Õ¼ä£¬ÈÝÆ÷Ö®¼äͨ¹ý·ÃÎÊ 127.0.0.1:£¨¶Ë¿Ú£©¼´¿É¡£Í¼ÖÐµÄ veth* ¼´Ö¸veth¶ÔµÄÒ»¶Ë£¨ÁíÒ»¶Ëδ±ê×¢£¬µ«Êµ¼ÊÉÏÊdzɶԳöÏÖ£©£¬¸Ãveth¶ÔÊÇÓÉ Docker Daemon ¹ÒÔØÔÚ docker0 ÍøÇÅÉÏ£¬ÁíÒ»¶ËÌí¼Óµ½ÈÝÆ÷ËùÊôµÄÍøÂçÃüÃû¿Õ¼ä£¬Í¼ÉÏÏÔʾÊÇÈÝÆ÷ÖеÄeth0¡£

ͼÖÐÑÝʾÁË bridge ģʽϵÄÈÝÆ÷¼äͨÐÅ¡£docker1 Ïò docker2 ·¢ËÍÇëÇó£¬docker1£¬docker2 ¾ùÓë docker0 ½¨Á¢ÁË veth ¶Ô½øÐÐͨѶ¡£

µ±ÇëÇó¾­¹ý docker0 ʱ£¬ÓÉÓÚÈÝÆ÷ºÍ docker0 ͬÊôÓÚÒ»¸ö×ÓÍø£¬Òò´ËÇëÇó¾­¹ý docker2Óëdocker0µÄveth*¶Ô£¬×ª·¢µ½docker2£¬¸Ã¹ý³Ì²¢Î´¿ç½Úµã£¬Òò´Ë²»¾­¹ýeth0¡£

2 Pod ¼äͨÐÅ

ͬ½Úµã pod ¼äͨÐÅ

ÓÉÓÚ Pod ÄÚ¹²ÏíÍøÂçÃüÃû¿Õ¼ä£¨ÓÉ pause ÈÝÆ÷´´½¨£©£¬ËùÒÔ±¾ÖÊÉÏÒ²ÊÇͬ½ÚµãÈÝÆ÷¼äµÄͨÐÅ¡£Í¬Ê±£¬Í¬Ò» Node ÖÐ Pod µÄĬÈÏ·Óɶ¼ÊÇ docker0 µÄµØÖ·£¬ÓÉÓÚËüÃǹØÁªÔÚͬһ¸ö docker0 ÍøÇÅÉÏ£¬µØÖ·Íø¶ÎÏàͬ£¬ËùÓÐËüÃÇÖ®¼äÓ¦µ±ÊÇÄÜÖ±½ÓͨÐŵġ£À´¿´¿´Êµ¼ÊÉÏÕâÒ»¹ý³ÌÈçºÎʵÏÖ¡£ÈçÉÏͼ£¬Pod1 ÖÐÈÝÆ÷ 1ºÍÈÝÆ÷ 2 ¹²ÏíÍøÂçÃüÃû¿Õ¼ä£¬Òò´Ë¶Ôpod ÍâµÄÇëÇóͨ¹ý pod1 ºÍ Docker0 ÍøÇÅµÄ veth¶Ô£¨Í¼ÖйÒÔÚeth0ºÍethxÉÏ£©ÊµÏÖ¡£

·ÃÎÊÁíÒ»¸öpodÄÚµÄÈÝÆ÷£¬ÆäÇëÇóµÄµØÖ·ÊÇPodIP¶ø·ÇÈÝÆ÷µÄip£¬Êµ¼ÊÉÏÒ²ÊÇͬһ¸ö×ÓÍø¼äͨÐÅ£¬Ö±½Ó¾­¹ýveth¶Ôת·¢¼´¿É¡£

¿ç½ÚµãͨÐÅ

CNI£ºÈÝÆ÷ÍøÂç½Ó¿Ú

CNI ÊÇÒ»ÖÖ±ê×¼£¬ËüÖ¼ÔÚΪÈÝÆ÷ƽ̨Ìá¹©ÍøÂçµÄ±ê×¼»¯¡£²»Í¬µÄÈÝÆ÷ƽ̨£¨±ÈÈçĿǰµÄ kubernetes¡¢mesos ºÍ rkt£©Äܹ»Í¨¹ýÏàͬµÄ½Ó¿Úµ÷Óò»Í¬µÄÍøÂç×é¼þ¡£ ĿǰkubernetesÖ§³ÖµÄCNI×é¼þÖÖÀàºÜ¶à£¬ÀýÈ磺bridge calico calico-ipam dhcp flannel host-local ipvlan loopback macvlan portmap ptp sample tuning vlan¡£ÔÚdockerÖУ¬Ö÷Á÷µÄ¿çÖ÷»úͨÐÅ·½°¸Ö÷ÒªÓÐһϼ¸ÖÖ£º 1£©»ùÓÚËíµÀµÄoverlayÍøÂ磺°´ËíµÀÀàÐÍÀ´Ëµ£¬²»Í¬µÄ¹«Ë¾»òÕß×éÖ¯Óв»Í¬µÄʵÏÖ·½°¸¡£dockerÔ­ÉúµÄoverlayÍøÂç¾ÍÊÇ»ùÓÚvxlanËíµÀʵÏֵġ£ovnÔòÐèҪͨ¹ýgeneve»òÕßsttËíµÀÀ´ÊµÏֵġ£flannel×îа汾Ҳ¿ªÊ¼Ä¬ÈÏ»ùÓÚvxlanʵÏÖoverlayÍøÂç¡£ 2£©»ùÓÚ°ü·â×°µÄoverlayÍøÂ磺»ùÓÚUDP·â×°µÈÊý¾Ý°ü°ü×°·½Ê½£¬ÔÚdocker¼¯ÈºÉÏʵÏÖ¿çÖ÷»úÍøÂç¡£µäÐÍʵÏÖ·½°¸ÓÐweave¡¢flannelµÄÔçÆÚ°æ±¾¡£ 3£©»ùÓÚÈý²ãʵÏÖSDNÍøÂ磺»ùÓÚÈý²ãЭÒéºÍ·ÓÉ£¬Ö±½ÓÔÚÈý²ãÉÏʵÏÖ¿çÖ÷»úÍøÂ磬²¢ÇÒͨ¹ýiptablesʵÏÖÍøÂçµÄ°²È«¸ôÀë¡£µäÐ͵ķ½°¸ÎªProject Calico¡£Í¬Ê±¶Ô²»Ö§³ÖÈý²ã·ÓɵĻ·¾³£¬Project Calico»¹ÌṩÁË»ùÓÚIPIP·â×°µÄ¿çÖ÷»úÍøÂçʵÏÖ

ͨÐÅ·½Ê½

¼¯ÈºÄÚ¿ç½ÚµãͨÐÅÉæ¼°µ½²»Í¬µÄ×ÓÍø¼äͨÐÅ£¬½ö¿¿docker0ÎÞ·¨ÊµÏÖ£¬ÕâÀïÐèÒª½èÖúCNIÍøÂç²å¼þÀ´ÊµÏÖ¡£Í¼ÖÐչʾÁËʹÓÃflannelʵÏÖ¿ç½ÚµãͨÐŵķ½Ê½¡£ ¼òµ¥ËµÀ´£¬flannelµÄÓû§Ì¬½ø³Ìflanneld»áΪÿ¸önode½Úµã´´½¨Ò»¸öflannel.1µÄÍøÇÅ£¬¸ù¾Ýetcd»òapiserverµÄÈ«¾ÖͳһµÄ¼¯ÈºÐÅϢΪÿ¸önode·ÖÅäÈ«¾ÖΨһµÄÍø¶Î£¬±ÜÃâµØÖ·³åÍ»¡£Í¬Ê±»áΪdocker0ºÍflannel.1´´½¨veth¶Ô£¬docker0½«±¨ÎĶª¸øflannel.1,¡£ Flanneldά»¤ÁËÒ»·ÝÈ«¾ÖnodeµÄÍøÂç±í£¬Í¨¹ýflannel.1½ÓÊÕµ½ÇëÇóºó£¬¸ù¾Ýnode±í£¬½«ÇëÇó¶þ´Î·âװΪUDP°ü£¬ÈÓ¸øeth0£¬ÓÉeth0³ö¿Ú½øÈëÎïÀíÍøÂ··¢Ë͸øÄ¿µÄnode¡£ ÔÚÁíÒ»¶ËÒÔÏà·´µÄÁ÷³Ì¡£Flanneld½â°ü²¢·¢Íùdocker0£¬½ø¶ø·¢ÍùÄ¿µÄPodÖеÄÈÝÆ÷¡£

Íⲿ·ÃÎʼ¯Èº

´Ó¼¯ÈºÍâ·ÃÎʼ¯ÈºÓжàÖÖ·½Ê½£¬±ÈÈçloadbalancer£¬Ingress£¬nodeport£¬nodeportºÍloadbalancerÊÇserviceµÄÁ½¸ö»ù±¾ÀàÐÍ£¬Êǽ«serviceÖ±½Ó¶ÔÍⱩ¶µÄ·½Ê½£¬ingressÔòÊÇÌṩÁËÆß²ã¸ºÔØ¾ùºâ£¬Æä»ù±¾Ô­Àí½«ÍⲿÁ÷Á¿×ª·¢µ½ÄÚ²¿µÄservice£¬ÔÙת·¢µ½ºó¶Ëendpoints£¬ÔÚÆ½Ê±µÄʹÓÃÖУ¬ÎÒÃÇ¿ÉÒÔÒÀ¾Ý¾ßÌåµÄÒµÎñÐèÇóÑ¡Óò»Í¬µÄ·½Ê½¡£ÕâÀïÖ÷Òª½éÉÜnodeportºÍingress·½Ê½¡£

Nodeport

ͨ¹ý½« Service µÄÀàÐÍÉèÖÃΪ NodePort£¬¾Í¿ÉÒÔÔÚ Cluster ÖеÄÖ÷»úÉÏͨ¹ýÒ»¸öÖ¸¶¨¶Ë¿Ú±©Â¶·þÎñ¡£×¢Òâͨ¹ý Cluster ÖÐÿ̨Ö÷»úÉϵĸÃÖ¸¶¨¶Ë¿Ú¶¼¿ÉÒÔ·ÃÎʵ½¸Ã·þÎñ£¬·¢Ë͵½¸ÃÖ÷»ú¶Ë¿ÚµÄÇëÇó»á±» Kubernetes ·Óɵ½Ìṩ·þÎñµÄ Pod ÉÏ¡£²ÉÓÃÕâÖÖ·þÎñÀàÐÍ£¬¿ÉÒÔÔÚ Kubernetes cluster ÍøÂçÍâͨ¹ýÖ÷»ú IP£º¶Ë¿ÚµÄ·½Ê½·ÃÎʵ½·þÎñ¡£

ÕâÀï¸ø³öÒ»¸ö influxdb µÄÀý×Ó£¬ÎÒÃÇÒ²¿ÉÒÔÕë¶ÔÕâ¸öÄ£°åÈ¥ÐÞ¸Ä³ÉÆäËûµÄÀàÐÍ£º

kind: Service
apiVersion: v1
metadata: name:
influxdb spec: type:
NodePort ports:
- port: 8086
nodePort: 31112
selector:
name: influxdb

 

Ingress ÊÇÍÆ¼öÔÚÉú²ú»·¾³Ê¹Óõķ½Ê½£¬ËüÆðµ½ÁËÆß²ã¸ºÔØ¾ùºâÆ÷ºÍ Http ·½Ïò´úÀíµÄ×÷Ó㬿ÉÒÔ¸ù¾Ý²»Í¬µÄ url °ÑÈë¿ÚÁ÷Á¿·Ö·¢µ½²»Í¬µÄºó¶ËService¡£Íⲿ¿Í»§¶ËÖ»¿´µ½ http://foo.bar.com Õâ¸ö·þÎñÆ÷£¬ÆÁ±ÎÁËÄÚ²¿¶à¸ö Service µÄʵÏÖ·½Ê½¡£²ÉÓÃÕâÖÖ·½Ê½£¬¼ò»¯Á˿ͻ§¶ËµÄ·ÃÎÊ£¬²¢Ôö¼ÓÁ˺ó¶ËʵÏֺͲ¿ÊðµÄÁé»îÐÔ£¬¿ÉÒÔÔÚ²»Ó°Ïì¿Í»§¶ËµÄÇé¿ö϶Ժó¶ËµÄ·þÎñ²¿Êð½øÐе÷Õû¡£ Æä²¿ÊðµÄ yaml ¿ÉÒԲο¼ÈçÏÂÄ£°å£º

apiVersion: extensions/v1beta1 kind:
Ingress metadata: name:
test annotations:
ingress.kubernetes.io/rewrite-target: /
spec: rules:
- host: test.name.com
http:
paths:
- path: /test
backend:
serviceName: service-1
servicePort: 8118
- path: /name
backend:
serviceName: service-2
servicePort: 8228

ÕâÀïÎÒÃǶ¨ÒåÁËÒ»¸öingressÄ£°å£¬¶¨Òåͨ¹ý http://test.name.com À´·ÃÎÊ·þÎñ£¬ÔÚÐéÄâÖ÷»úhttp://test.name.comÏÂÃæ¶¨ÒåÁËÁ½¸öPath£¬ÆäÖÐ/test±»·Ö·¢µ½ºó¶Ë·þÎñs1£¬/name±»·Ö·¢µ½ºó¶Ë·þÎñs2¡£

¼¯ÈºÖпÉÒÔ¶¨Òå¶à¸öingress£¬À´Íê³É²»Í¬·þÎñµÄת·¢£¬ÕâÀïÐèÒªÒ»¸öingress controllerÀ´¹ÜÀí¼¯ÈºÖеÄIngress¹æÔò¡£Ingress Contronler ͨ¹ýÓë Kubernetes API ½»»¥£¬¶¯Ì¬µÄÈ¥¸ÐÖª¼¯ÈºÖÐ Ingress ¹æÔò±ä»¯£¬È»ºó¶ÁÈ¡Ëü£¬°´ÕÕ×Ô¶¨ÒåµÄ¹æÔò£¬¹æÔò¾ÍÊÇдÃ÷ÁËÄĸöÓòÃû¶ÔÓ¦Äĸöservice£¬Éú³ÉÒ»¶Î Nginx ÅäÖã¬ÔÙдµ½ Nginx-ingress-controlµÄ Pod ÀÕâ¸ö Ingress Contronler µÄ pod ÀïÃæÔËÐÐ×ÅÒ»¸önginx·þÎñ£¬¿ØÖÆÆ÷»á°ÑÉú³ÉµÄnginxÅäÖÃдÈë /etc/nginx.conf ÎļþÖУ¬È»ºó reloadʹÓÃÅäÖÃÉúЧ¡£

Kubernetes ÌṩµÄ Ingress Controller Ä£°åÈçÏ£º

apiVersion: extensions/v1beta1
kind: Ingress metadata:
name: test annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /foo backend:
serviceName: s1
servicePort: 80
- path: /bar
backend:
serviceName: s2
servicePort: 80

×ܽἰչÍû

±¾ÎÄÕë¶Ô Kubernetes µÄÍøÂçÄ£ÐÍ£¬´ÓÒ»¸ö service£¬¶þ¸öIP£¬Èý¸ö port ³ö·¢½øÐÐͼ½â¡£Ïê½â Kubernetes ¼¯ÈºÄÚ¼°¼¯ÈºÍⲿ·ÃÎÊ·½Ê½¡£ºóÐø»¹½«Õë¶Ô¸÷ÍøÂçϸ½Ú½øÐÐÉîÈë·ÖÎö£¬¾´Çë¹Ø×¢¡£

   
872 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ