1"use strict";(self.webpackChunkedgemesh=self.webpackChunkedgemesh||[]).push([[571],{7162:(n,s,a)=>{a.r(s),a.d(s,{data:()=>e});const e={key:"v-73e43e09",path:"/zh/advanced/hybird-proxy.html",title:"æ··å代ç",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"åç",slug:"åç",children:[]},{level:2,title:"æå¡è¿æ»¤",slug:"æå¡è¿æ»¤",children:[]}],filePathRelative:"zh/advanced/hybird-proxy.md",git:{updatedTime:1663549505e3,contributors:[]}}},7687:(n,s,a)=>{a.r(s),a.d(s,{default:()=>p});const e=(0,a(6252).uE)('<h1 id="æ··å代ç" tabindex="-1"><a class="header-anchor" href="#æ··å代ç" aria-hidden="true">#</a> æ··å代ç</h1><p>K8s éç¾¤åæ¶é¨ç½²äº kube-proxy å edgemesh æ¶ï¼éè¿æ··å代ççæ¹å¼ä¿è¯äºä¸¤è
çå
¼å®¹ã</p><h2 id="åç" tabindex="-1"><a class="header-anchor" href="#åç" aria-hidden="true">#</a> åç</h2><p>å½ edgemesh-agent åäº kube-proxy å¯å¨çæ¶åï¼ä¼å° <code>KUBE-PORTALS-CONTAINER</code> 龿å
¥å°ä¸»æº iptables ç nat 表ä¸ç PREROUTING å OUTPUT é¾ä¸ï¼å¹¶å¤äº <code>KUBE-SERVICES</code> é¾çåé¢ï¼å æ¤å¯ä»¥ä¼å
äº kube-proxy 嫿æå¡çæµéï¼å®ç°äºè¾¹éä¿¡çæµé转åã</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ iptables -t nat -nvL\nChain PREROUTING <span class="token punctuation">(</span>policy ACCEPT 1379K packets, 395M bytes<span class="token punctuation">)</span>\n pkts bytes target prot opt <span class="token keyword">in</span> out <span class="token builtin class-name">source</span> destination\n <span class="token number">52</span> <span class="token number">13980</span> KUBE-PORTALS-CONTAINER all -- * * <span class="token number">0.0</span>.0.0/0 <span class="token number">0.0</span>.0.0/0 /* handle ClusterIPs<span class="token punctuation">;</span> NOTE: this must be before the NodePort rules */\n1375K 394M KUBE-SERVICES all -- * * <span class="token number">0.0</span>.0.0/0 <span class="token number">0.0</span>.0.0/0 /* kubernetes <span class="token function">service</span> portals */\n<span class="token punctuation">..</span>.\n\nChain OUTPUT <span class="token punctuation">(</span>policy ACCEPT 1317K packets, 79M bytes<span class="token punctuation">)</span>\n pkts bytes target prot opt <span class="token keyword">in</span> out <span class="token builtin class-name">source</span> destination\n <span class="token number">51</span> <span class="token number">3086</span> KUBE-PORTALS-HOST all -- * * <span class="token number">0.0</span>.0.0/0 <span class="token number">0.0</span>.0.0/0 /* handle ClusterIPs<span class="token punctuation">;</span> NOTE: this must be before the NodePort rules */\n1314K 79M KUBE-SERVICES all -- * * <span class="token number">0.0</span>.0.0/0 <span class="token number">0.0</span>.0.0/0 /* kubernetes <span class="token function">service</span> portals */\n<span class="token punctuation">..</span>.\n</code></pre><div class="line-numbers"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br></div></div><div class="custom-container tip"><p class="custom-container-title">æç¤º</p><p>å¦æè®¿é®æå¡åºç°å¦ <code>No route to host</code> çé误ï¼å¯è½æ¯å 为 edgemesh-agent çå¯å¨å
äº kube-proxy çå¯å¨ï¼å¯¼è´ <code>KUBE-PORTALS-CONTAINER</code> é¾ä½äº <code>KUBE-SERVICES</code> åé¢ï¼è¿èæ æ³ä¼å
äº kube-proxy 嫿æå¡çæµéãå¯ä»¥éè¿éæ°é¨ç½² edgemesh æ¥é建é¾ç顺åºï¼ä»¥è§é¿è¿ä¸ªé®é¢ã</p></div><h2 id="æå¡è¿æ»¤" tabindex="-1"><a class="header-anchor" href="#æå¡è¿æ»¤" aria-hidden="true">
1#</a> æå¡è¿æ»¤</h2><p>edgemesh-agent é»è®¤æ¦æªå¹¶è½¬åææéè¿ Cluster IP 访é®çæå¡ï¼ä¸è¿ edgemesh-agent çæµé转åè¿ç¨å¨ç¨æ·æä¸ï¼ä¼å¸¦æ¥äºè®¸çæ§è½æèãå æ¤ï¼ä½ å¯è½ä¼æä¸äºæå¡ä¸æ³è¢« edgemesh-agent 代çï¼æä»¬ä¸ºæå¡è¿æ»¤æä¾äºä¸ä¸ªæ ç¾: <code>service.edgemesh.kubeedge.io/service-proxy-name</code>ã</p><p>举个ä¾åï¼æ¯å¦ä½ æ³å¨äºç«¯é¨ç½² prometheus + grafana çæ§æå¡ï¼è¿äºæå¡ä¸éè¦è¾¹ç¼ç«¯ç访é®ï¼æä»¥ä½ å¹¶ä¸å¸æå®ä»¬è¢« edgemesh-agent 代çï¼é£ä¹ä½ å¯ä»¥è¿ä¹åï¼</p><div class="language-yaml ext-yml line-numbers-mode"><pre class="language-yaml"><code><span class="token key atrule">apiVersion</span><span class="token punctuation">:</span> v1\n<span class="token key atrule">kind</span><span class="token punctuation">:</span> Service\n<span class="token key atrule">metadata</span><span class="token punctuation">:</span>\n <span class="token key atrule">labels</span><span class="token punctuation">:</span>\n <span class="token key atrule">service.edgemesh.kubeedge.io/service-proxy-name</span><span class="token punctuation">:</span> <span class="token string">""</span> <span class="token comment">#<---- æ·»å æ¤ label 以让 edgemesh-agent 忽ç¥ä»£ç</span>\n <span class="token key atrule">app.kubernetes.io/name</span><span class="token punctuation">:</span> node<span class="token punctuation">-</span>exporter\n <span class="token key atrule">app.kubernetes.io/version</span><span class="token punctuation">:</span> v1.0.1\n <span class="token key atrule">name</span><span class="token punctuation">:</span> node<span class="token punctuation">-</span>exporter\n <span class="token key atrule">namespace</span><span class="token punctuation">:</span> monitoring\n<span class="token key atrule">spec</span><span class="token punctuation">:</span>\n <span class="token key atrule">clusterIP</span><span class="token punctuation">:</span> None\n <span class="token key atrule">ports</span><span class="token punctuation">:</span>\n <span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> https\n <span class="token key atrule">port</span><span class="token punctuation">:</span> <span class="token number">9100</span>\n <span class="token key atrule">targetPort</span><span class="token punctuation">:</span> https\n <span class="token key atrule">selector</span><span class="token punctuation">:</span>\n <span class="token key atrule">app.kubernetes.io/name</span><span class="token punctuation">:</span> node<span class="token punctuation">-</span>exporter\n</code></pre><div class="line-numbers"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br></div></div><p>ä¿åé
ç½®åï¼ä½ å°ä¸ä¼å¨ <code>KUBE-PORTALS-CONTAINER</code> é¾éçå°è¿ä¸ªæå¡ç iptables è§åï¼æå³ç edgemesh ä¸ä¼å¯¹æ¤æå¡è¿è¡å¤çã</p>',11),p={render:function(n,s){return e}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.