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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
kubernetesʵ¼ù£ºIstioÖ®²ßÂÔÓëÒ£²â
 
  3112  次浏览      27
 2019-9-19
   
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚitpub£¬ÎÄÕÂÖ÷Òª½éÉÜÁËIstio£¬IstioµÄÖ÷Òª¹¦ÄÜ£¬ÒÔ¼°Mixer¼Ü¹¹µÄÏêϸÐÅÏ¢µÈ£¬Ï£Íû¶ÔÄúÄÜÓÐËù°ïÖú¡£

Ò»£ºIstio¼ò½é

1.Istio¶¨Òå

Ò»¸öÓÃÀ´Á¬½Ó£¬¹ÜÀíºÍ±£»¤·þÎñµÄ¿ª·¢Æ½Ì¨¡£IstioÌṩһÖÖ¼òµ¥µÄ·½Ê½½¨Á¢ÒѲ¿Êð·þÎñÍøÂ磬¾ß±¸¸ºÔؾùºâ£¬·þÎñ¼äÈÏÖ¤ºÍ¼à¿ØµÈ¹¦ÄÜ¡£

¶ø²»ÐèÒª¸Ä±äÈκηþÎñ´úÂë¡£ÏëҪΪ·þÎñÔö¼Ó¶ÔIstioµÄÖ§³Ö£¬Ö»ÐèÒªÔÚ»·¾³Öв¿ÊðÒ»¸ösidecar,ʹÓÃIstio¿ØÖÆÃæ°å¹¦ÄÜÅäÖú͹ÜÀí´úÀí£¬À¹½ØÎ¢·þÎñÖ®¼äµÄËùÓÐÍøÂçͨÐÅ¡£

2.ΪʲôÐèÒªIstio

Ëæ×Å΢·þÎñ³öÏÖ£¬Î¢·þÎñµÄÁ¬½Ó£¬¹ÜÀíºÍ¼à¿Ø³ÉΪÄÑÌâ¡£Kubernetes¿ÉÒÔ´¦Àí¶à¸öÈÝÆ÷µÄ¹¤×÷¸ºÔØ£¬µ«µ±Éæ¼°¸ü¸´ÔÓµÄÐèÇóʱ£¬ÐèÒªÏñIstioÕâÑùµÄ·þÎñÍø¸ñ¡£

3.IstioµÄÖ÷Òª¹¦ÄÜ

a.Á÷Á¿¹ÜÀí(Pilot): ¿ØÖÆ·þÎñÖ®¼äµÄÁ÷Á¿ºÍAPIµ÷ÓõÄÁ÷Ïò£¬Ê¹µÃµ÷ÓøüÁé»î¿É¿¿£¬²¢Ê¹ÍøÂçÔÚ¶ñÁÓÇé¿öϸü¼Ó½¡×³¡£

b.¿É¹Û²ìÐÔ£º ͨ¹ý¼¯³ÉzipkinµÈ·þÎñ£¬¿ìËÙÁ˽â·þÎñÖ®¼äµÄÒÀÀµ¹ØÏµ£¬ÒÔ¼°ËüÃÇÖ®¼äÁ÷Á¿µÄ±¾ÖʺÍÁ÷Ïò£¬´Ó¶øÌṩ¿ìËÙʶ±ðÎÊÌâµÄÄÜÁ¦¡£

c.²ßÂÔÖ´ÐÐ(mixer): ½«×éÖ¯²ßÂÔÓ¦ÓÃÓÚ·þÎñÖ®¼äµÄ»¥¶¯£¬È·±£·ÃÎʲßÂÔµÃÒÔÖ´ÐУ¬×ÊÔ´ÔÚÏû·ÑÕßÖ®¼äÁ¼ºÃ·ÖÅä¡£²ßÂԵĸü¸ÄÊÇͨ¹ýÅäÖÃÍø¸ñ¶ø²»ÊÇÐÞ¸ÄÓ¦ÓóÌÐò´úÂë¡£

d.·þÎñÉí·ÝºÍ°²È«(Istio-auth)£º ÎªÍø¸ñÖеķþÎñÌṩ¿ÉÑéÖ¤Éí·Ý£¬²¢Ìṩ±£»¤·þÎñÁ÷Á¿µÄÄÜÁ¦£¬Ê¹Æä¿ÉÒÔÔÚ²»Í¬¿ÉÐŶȵÄÍøÂçÉÏÁ÷ת¡£

4.Envoy¼Ü¹¹

a.svcA·þÎñ×÷Ϊ¿Í»§¶ËµãÓ÷þÎñ¶ËsvcB£¬svcB´æÔÚÓÐÁ½¸ö°æ±¾£¬µ«ÊÇsvcA²¢²»ÖªÇé

b.Envoy×÷Ϊsidecar²¿Ê𵽸÷¸ösvcµ½podÄÚ£¬´úÀíËùÓе½½ø³öÁ÷Á¿

c.µ±svcAͨ¹ýsvcBµ½ÓòÃû·ÃÎÊÆä·þÎñʱ£¬Envoy¸ù¾ÝPilotÅäÖõÄ·ÓɹæÔò£¬½«1%µÄÁ÷Á¿·Ö¸øÁËsvcBµÄalpha°æ±¾

5.Pilot¼Ü¹¹

ͨ¹ýÅäÖã¬Pilot¿ÉÒÔʹEnvoyʵÏÖ£ºÂ·ÓÉÅäÖᢹÊÕÏ×¢Èë¡¢Á÷Á¿Ç¨ÒÆ¡¢ÇëÇó³¬Ê±¡¢È۶ϵÈÖî¶àÄÜÁ¦¡£

6.Mixer¼Ü¹¹

MixerÖ÷ÒªÌṩÈý¸öºËÐŦÄÜ£º

ǰÌáÌõ¼þ¼ì²é£º·¢ÉúÔÚ·þÎñÏìÓ¦ÇëÇó֮ǰ£¬Èç¹û¼ì²é²»Í¨¹ý¿ÉÖÕÖ¹ÏìÓ¦

Åä¶î¹ÜÀí£º

Ò£²â±¨¸æ£º¿É¼à¿Ø·þÎñ¡¢Éϱ¨ÈÕÖ¾ÐÅÏ¢

¶þ£ºMixerÏê½â

1. »ù´¡ÉèÊ©ºó¶Ë£º

MixerÔÚÓ¦ÓóÌÐò´úÂëºÍ»ù´¡¼Ü¹¹ºó¶ËÖ®¼äÌṩͨÓÃÖнé²ã£¬

»ù´¡ÉèÊ©ºó¶ËÖ¼ÔÚÌṩÓÃÓÚ¹¹½¨·þÎñµÄÖ§³Ö¹¦ÄÜ¡£ËüÃǰüÀ¨·ÃÎÊ¿ØÖÆÏµÍ³£¬Ò£²â²¶»ñϵͳ£¬Åä¶îÖ´ÐÐϵͳ£¬¼Æ·ÑϵͳµÈµÈ¡£·þÎñ´«Í³ÉÏÖ±½ÓÓëÕâЩºó¶Ëϵͳ¼¯³É£¬´´½¨Ó²ñîºÏ£¬»¹ÓÐÕ´È¾ÌØ¶¨µÄÓïÒåºÍʹÓÃÑ¡Ïî¡£

Istio Ìṩͳһ³éÏó£¬Ê¹µÃ Istio ¿ÉÒÔÓëÒ»×鿪·Åʽ»ù´¡ÉèÊ©ºó¶Ë½øÐн»»¥¡£ÕâÑù×öÊÇΪÁ˸øÔËάÌṩ·á¸»¶øÉîÈëµÄ¿ØÖÆ£¬Í¬Ê±²»¸ø·þÎñ¿ª·¢ÈËÔ±´øÀ´¸ºµ£¡£Istio Ö¼Ôڸıä²ãÓë²ãÖ®¼äµÄ±ß½ç£¬ÒÔ¼õÉÙϵͳ¸´ÔÓÐÔ£¬Ïû³ý·þÎñ´úÂëÖеIJßÂÔÂß¼­²¢½«¿ØÖÆÈ¨½»¸øÔËά

2. ÊôÐÔ

ÊôÐÔÊÇÃèÊö³ö¿ÚÈë¿ÚÁ÷Á¿µÄÓÐÃû³ÆºÍÀàÐ͵ÄÔªÊý¾ÝƬ¶Î¡£

MixerÔÚÔËÐÐʱ£¬½ÓÊÜÒ»×éÊôÐÔ£¬mixer¸ù¾ÝÅäÖô¦Àí´«ÈëµÄÊôÐÔµ½Êʵ±µÄ»ù´¡ÉèÖúó¶Ë¡£

¹¦ÄÜ£º

a.ǰÆÚÌõ¼þ¼ì²é¡£ ·¢ÉúÔÚÇëÇó´¦Àíǰ £¬ÇëÇó±»À¹½Øµ½envoyʱ·ÃÎÊmixer¡£

ÔÊÐí·þÎñÔÚÏìÓ¦À´×Ô·þÎñÏû·ÑÕߵĴ«ÈëÇëÇó֮ǰÑé֤һЩǰÌáÌõ¼þ¡£Ç°ÌáÌõ¼þ¿ÉÒÔ°üÀ¨·þÎñʹÓÃÕßÊÇ·ñ±»ÕýÈ·ÈÏÖ¤£¬ÊÇ·ñÔÚ·þÎñµÄ°×Ãûµ¥ÉÏ£¬ÊÇ·ñͨ¹ýACL¼ì²éµÈµÈ¡£

b.Åä¶î¹ÜÀí¡£ ·¢ÉúÔÚÇëÇó´¦ÀíÖÐ £¬·þÎñÖÐÐèÒªµ÷Óúó¶Ë»ù´¡Éèʩʱ¡£

ʹ·þÎñÄܹ»ÔÚ·ÖÅäºÍÊͷŶà¸öά¶ÈÉϵÄÅä¶î£¬Åä¶îÕâÒ»¼òµ¥µÄ×ÊÔ´¹ÜÀí¹¤¾ß¿ÉÒÔÔÚ·þÎñÏû·ÑÕß¶ÔÓÐÏÞ×ÊÔ´·¢ÉúÕùÓÃʱ£¬ÌṩÏà¶Ô¹«Æ½µÄ£¨¾ºÕùÊֶΣ©¡£ÆµÂÊ¿ØÖƾÍÊÇÅä¶îµÄÒ»¸öʵÀý¡£

c.Ò£²â±¨¸æ¡£·¢ÉúÔÚÇëÇó´¦Àíºó £¬Éϱ¨²Î¿¼ÐÔÊý¾Ý¸ømixer¡£Ò²Òò´Ë£¬envoyÓµÓмì²épod½¡¿µÄÜÁ¦¡£

·þÎñÄܹ»Éϱ¨ÈÕÖ¾ºÍ¼à¿Ø¡£ÔÚδÀ´£¬Ëü»¹½«ÆôÓÃÕë¶Ô·þÎñÔËÓªÉÌÒÔ¼°·þÎñÏû·ÑÕߵĸú×ٺͼƷÑÁ÷¡£

Ò£²â±¨¸æÊÇÒì²½ÐÎʽ¡£¼´»º´æ¶àÌõÉϱ¨Ò»´Î

3.ÊÊÅäÆ÷

Mixer ÊǸ߶ÈÄ£¿é»¯ºÍ¿ÉÀ©Õ¹µÄ×é¼þ¡£ËûµÄÒ»¸ö¹Ø¼ü¹¦ÄܾÍÊǰѲ»Í¬ºó¶ËµÄ²ßÂÔºÍÒ£²âÊÕ¼¯ÏµÍ³µÄϸ½Ú³éÏó³öÀ´£¬Ê¹µÃ Istio µÄÆäÓಿ·Ö¶ÔÕâЩºó¶Ë²»ÖªÇé¡£

Mixer ´¦Àí²»Í¬»ù´¡ÉèÊ©ºó¶ËµÄÁé»îÐÔÊÇͨ¹ýʹÓÃͨÓòå¼þÄ£ÐÍʵÏֵġ£Ã¿¸ö²å¼þ¶¼±»³ÆÎª Adapter£¬Mixerͨ¹ýËüÃÇÓ벻ͬµÄ»ù´¡ÉèÊ©ºó¶ËÁ¬½Ó£¬ÕâЩºó¶Ë¿ÉÌṩºËÐŦÄÜ£¬ÀýÈçÈÕÖ¾¡¢¼à¿Ø¡¢Åä¶î¡¢ACL ¼ì²éµÈ¡£Í¨¹ýÅäÖÃÄܹ»¾ö¶¨ÔÚÔËÐÐʱʹÓõÄÈ·ÇеÄÊÊÅäÆ÷Ì×¼þ£¬²¢ÇÒ¿ÉÒÔÇáËÉÀ©Õ¹µ½ÐµĻò¶¨ÖƵĻù´¡ÉèÊ©ºó¶Ë¡£

4.ÅäÖÃÎļþʾÀý

a.´¦ÀíÆ÷(Handler):

ÊÊÅäÆ÷·â×°ÁË Mixer ºÍÌØ¶¨Íⲿ»ù´¡ÉèÊ©ºó¶Ë½øÐн»»¥µÄ±ØÒª½Ó¿Ú£¬ÀýÈç Prometheus »òÕß Stackdriver¡£¸÷ÖÖÊÊÅäÆ÷¶¼ÐèÒª²ÎÊýÅäÖòÅÄܹ¤×÷¡£ÀýÈçÈÕÖ¾ÊÊÅäÆ÷¿ÉÄÜÐèÒª IP µØÖ·ºÍ¶Ë¿ÚÀ´½øÐÐÈÕÖ¾µÄÊä³ö¡£

ÕâÀïµÄÀý×ÓÅäÖÃÁËÒ»¸öÀàÐÍΪ listchecker µÄÊÊÅäÆ÷¡£listchecker ÊÊÅäÆ÷ʹÓÃÒ»¸öÁбíÀ´¼ì²éÊäÈë¡£Èç¹ûÅäÖõÄÊǰ×Ãûµ¥Ä£Ê½ÇÒÊäÈëÖµ´æÔÚÓÚÁбíÖ®ÖУ¬¾Í»á·µ»Ø³É¹¦µÄ½á¹û¡£

apiVersion: config.istio.io/v1alpha2
kind: listcheckermetadata:
name: staticversion
namespace: istio-systemspec:
providerUrl: http://white_list_registry/
blacklist: false

{metadata.name}.{kind}.{metadata.namespace} ÊÇ HANDLER µÄÍêÈ«ÏÞ¶¨Ãû¡£ÉÏÃæ¶¨ÒåµÄ¶ÔÏóµÄ FQDN ¾ÍÊÇ staticversion.listchecker.istio-system£¬Ëû±ØÐëÊÇΨһµÄ¡£spec ÖеÄÊý¾Ý½á¹¹ÔòÒÀÀµÓÚ¶ÔÓ¦µÄÊÊÅäÆ÷µÄÒªÇó¡£

ÓÐЩÊÊÅäÆ÷ʵÏֵŦÄܾͲ»½ö½öÊÇ°Ñ Mixer ºÍºó¶ËÁ¬½ÓÆðÀ´¡£ÀýÈç prometheus ÊÊÅäÆ÷Ïû·ÑÖ¸±ê²¢ÒÔ¿ÉÅäÖõķ½Ê½½«ËüÃǾۺϳɷֲ¼»ò¼ÆÊýÆ÷¡£

apiVersion: config.istio.io/v1alpha2
kind: prometheusmetadata:
name: handler
namespace: istio-systemspec:
metrics:- name: request_count
instance_name: requestcount.metric.istio-system
kind: COUNTER
label_names:
- destination_service
- destination_version
- response_code- name: request_duration
instance_name: requestduration.metric.istio-system
kind: DISTRIBUTION
label_names:
- destination_service -
destination_version
- response_code
buckets:
explicit_buckets:
bounds: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10]

ÿ¸öÊÊÅäÆ÷¶¼¶¨ÒåÁË×Ô¼º¸ñʽµÄÅäÖÃÊý¾Ý¡£ÊÊÅäÆ÷¼°ÆäÅäÖõÄÏ꾡Áбí¿ÉÒÔÔÚÕâÀïÕÒµ½

b.ʵÀý(Instance):

ÅäÖÃʵÀý½«ÇëÇóÖеÄÊôÐÔÓ³Éä³ÉΪÊÊÅäÆ÷µÄÊäÈë¡£ÏÂÃæµÄÀý×Ó£¬ÊÇÒ»¸ö metric ʵÀýµÄÅäÖã¬ÓÃÓÚÉú³É requestduration metric¡£

apiVersion: config.istio.io/v1alpha2
kind: metricmetadata:
name: requestduration
namespace: istio-systemspec:
value: response.duration | "0ms" dimensions:
destination_service: destination.service | "unknown" destination_version: destination.labels["version"] | "unknown"
response_code: response.code | 200
monitored_resource_type: '"UNSPECIFIED"'

c.¹æÔò(Rule):

¹æÔòÓÃÓÚÖ¸¶¨Ê¹ÓÃÌØ¶¨ÊµÀýÅäÖõ÷ÓÃijһ HANDLER µÄʱ»ú¡£±ÈÈçÎÒÃÇÏëÒª°Ñ service1 ·þÎñÖУ¬ÇëÇóÍ·ÖдøÓÐ X-USER µÄÇëÇóµÄ requestduration Ö¸±ê·¢Ë͸ø Prometheus HANDLER¡£

apiVersion: config.istio.io/v1alpha2
kind: rulemetadata:
name: promhttp
namespace: istio-system
spec:
match: destination.service == "service1.ns.svc.cluster.local" && request.headers["x-user"] == "user1"
actions:- handler: handler.prometheus
instances:
- requestduration.metric.istio-system

¹æÔòÖаüº¬ÓÐÒ»¸ö MATCH ÔªËØ£¬ÓÃÓÚǰÖüì²é£¬Èç¹û¼ì²éͨ¹ýÔò»áÖ´Ðж¯×÷ÁÐ±í¡£¶¯×÷Öаüº¬ÁËÒ»¸öʵÀýÁÐ±í£¬Õâ¸öÁÐ±í½«»á·Ö·¢¸ø HANDLER¡£¹æÔò±ØÐëʹÓà HANDLER ºÍʵÀýµÄÍêÈ«ÏÞ¶¨Ãû¡£Èç¹û¹æÔò¡¢HANDLER ÒÔ¼°ÊµÀýÈ«¶¼ÔÚͬһ¸öÃüÃû¿Õ¼ä£¬ÃüÃû¿Õ¼äºó׺¾Í¿ÉÒÔÔÚ FQDN ÖÐÊ¡ÂÔ£¬ÀýÈç handler.prometheus¡£

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

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù