Compare commits

..

4 Commits

Author SHA1 Message Date
9486370697 Merge remote-tracking branch 'origin/main' into HEAD 2024-07-03 07:33:19 +00:00
d4c0c06972 CFW API 20240703 Version 2024-07-03 10:59:59 +08:00
ef4814c65c CFW API 20240531 version 2024-05-31 16:33:09 +08:00
152fbef519 First version of CFW API 2024-04-11 14:16:27 +08:00
3928 changed files with 77077 additions and 170759 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,92 +0,0 @@
[
{
"desc":"API requests sent by third-party applications to public cloud services must be authenticated using signatures.This document describes the signature procedure, provides sa",
"product_code":"apiug",
"title":"Overview",
"uri":"apig-en-api-180328001.html",
"doc_type":"guidelines",
"p_code":"",
"code":"1"
},
{
"desc":"API Gateway provides RESTful APIs.REST provides APIs to create, query, update, delete, and access service resources.A REST API request/response pair is divided into the f",
"product_code":"apiug",
"title":"Overview of REST APIs",
"uri":"apig-en-api-180328002.html",
"doc_type":"guidelines",
"p_code":"",
"code":"2"
},
{
"desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.",
"product_code":"apiug",
"title":"Calling APIs",
"uri":"apig-en-api-180925010.html",
"doc_type":"guidelines",
"p_code":"",
"code":"3"
},
{
"desc":"Obtain the required information before calling APIs.A project ID needs to be specified in the URIs of some APIs. Therefore, you need to obtain the project ID before calli",
"product_code":"apiug",
"title":"Obtaining Required Information",
"uri":"apig-en-api-180328009.html",
"doc_type":"guidelines",
"p_code":"3",
"code":"4"
},
{
"desc":"If API requests are authenticated using tokens, the request header must contain X-Auth-Token (token information).This section describes how to call an API for token authe",
"product_code":"apiug",
"title":"Token Authentication",
"uri":"apig-en-api-180328003.html",
"doc_type":"guidelines",
"p_code":"3",
"code":"5"
},
{
"desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.",
"product_code":"apiug",
"title":"AK/SK Authentication",
"uri":"apig-en-api-180328004.html",
"doc_type":"guidelines",
"p_code":"3",
"code":"6"
},
{
"desc":"Log in to the management console.Click the username and choose My Credential from the drop-down list.Click Access Keys.Click Add Access Keys to switch to the Add Access K",
"product_code":"apiug",
"title":"Generating an AK and SK",
"uri":"apig-en-api-180328005.html",
"doc_type":"guidelines",
"p_code":"6",
"code":"7"
},
{
"desc":"Introduce the API Gateway signing SDK in the project.Download the API Gateway signing tool from the following link:https://apig-demo.obs.eu-de.otc.t-systems.com/java/java",
"product_code":"apiug",
"title":"Signing a Request",
"uri":"apig-en-api-180328006.html",
"doc_type":"guidelines",
"p_code":"6",
"code":"8"
},
{
"desc":"This section describes how to call the API of a public cloud service by using Eclipse.The following code shows how to sign a request and how to use an HTTP client to send",
"product_code":"apiug",
"title":"Sample Code",
"uri":"apig-en-api-180328008.html",
"doc_type":"guidelines",
"p_code":"6",
"code":"9"
},
{
"desc":"Table 1 describes common status codes.",
"product_code":"apiug",
"title":"HTTP Status Codes",
"uri":"apig-en-api-180328012.html",
"doc_type":"guidelines",
"p_code":"",
"code":"10"
}
]

View File

@ -1,7 +0,0 @@
<a name="apig-en-api-180328001"></a><a name="apig-en-api-180328001"></a>
<h1 class="topictitle1">Overview</h1>
<div id="body1521449602954"><p id="apig-en-api-180328001__p7945016142655">API requests sent by third-party applications to public cloud services must be authenticated using signatures.</p>
<p id="apig-en-api-180328001__p36893300141518">This document describes the signature procedure, provides sample code to illustrate how to use the default signer to sign requests and how to use the HTTP client to send requests.</p>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -1,80 +0,0 @@
<a name="apig-en-api-180328003"></a><a name="apig-en-api-180328003"></a>
<h1 class="topictitle1">Token Authentication</h1>
<div id="body1537441075328"><div class="section" id="apig-en-api-180328003__section5608799912249"><h4 class="sectiontitle">Application Scenarios</h4><p id="apig-en-api-180328003__p4683410312249">If API requests are authenticated using tokens, the request header must contain <strong id="apig-en-api-180328003__b842352706161232">X-Auth-Token</strong> (token information).</p>
<p id="apig-en-api-180328003__p1885374512249">This section describes how to call an API for token authentication.</p>
</div>
<div class="section" id="apig-en-api-180328003__section3546598312249"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-api-180328003__ol5417235112249"><li id="apig-en-api-180328003__li7201450105021">Send <strong id="apig-en-api-180328003__b034312224917">POST https://</strong><em id="apig-en-api-180328003__i20265928093">IAM endpoint</em><strong id="apig-en-api-180328003__b1356462520912">/v3/auth/tokens</strong> to obtain the IAM endpoint and the region name in the message body.<p id="apig-en-api-180328003__p29157503105024">See <a href="https://docs.otc.t-systems.com/regions-and-endpoints/index.html" target="_blank" rel="noopener noreferrer">Regions and Endpoints</a>.</p>
<p id="apig-en-api-180328003__p126473211266"></p>
<p id="apig-en-api-180328003__p066712334263">A cloud service can be deployed globally or at the project level.</p>
<ul id="apig-en-api-180328003__ul11667123332614"><li id="apig-en-api-180328003__li17667173382616">A project-level service requires a project-level token. When you call the API, set <strong id="apig-en-api-180328003__b18431516468">auth.scope</strong> in the request body to <strong id="apig-en-api-180328003__b5845158464">project</strong>. The following services are at the project level: AOM, APIG, AS, BMS, CBR, CCE, Cloud Eye, CSBS, CSS, CTS, DataArts Studio, DC, DCS, DDS, Dedicated WAF, DeH, DIS, DLI, DMS, DNS, DRS, DWS, ECS, EIP, ELB, EVS, GaussDB (for MySQL), GaussDB NoSQL, IMS, KMS, LTS, ModelArts, MRS, NAT, PLAS, RDS, RTS, SDRS, SFS, SMN, SWR, VBS, VPC, VPCEP, VPN, and WAF.</li><li id="apig-en-api-180328003__li7667233182615">A global service requires a global token. When you call the API, set <strong id="apig-en-api-180328003__b16642105915485">auth.scope</strong> in the request body to <strong id="apig-en-api-180328003__b364265915485">domain</strong>. The following services are global ones: Anti-DDoS, IAM, OBS, TMS, and TMS.</li></ul>
<div class="p" id="apig-en-api-180328003__p4434491412249">The following shows an example of a project-level service request:<div class="note" id="apig-en-api-180328003__note6355990812249"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-api-180328003__p3516826412249">Replace the texts in italic with actual ones. For details, see <em id="apig-en-api-180328003__i842352697155127">Identity and Access Management API Reference</em>.</p>
<p id="apig-en-api-180328003__p1770474713271">Log in to the management console, click your username in the upper right corner, and choose <strong id="apig-en-api-180328003__b1424175514817">My Credential</strong> from the drop-down list. On the <strong id="apig-en-api-180328003__b362886114912">My Credentials</strong> page, obtain your username, domain name, and project ID.</p>
</div></div>
<pre class="screen" id="apig-en-api-180328003__screen18966866105917">{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "<em id="apig-en-api-180328003__i3005717212249"><strong id="apig-en-api-180328003__b34061845415">username</strong></em>", // IAM username
"password": "<em id="apig-en-api-180328003__i207909212249"><strong id="apig-en-api-180328003__b626512207546">password</strong></em>", // IAM user password
"domain": {
"name": "<em id="apig-en-api-180328003__i1871183512249"><strong id="apig-en-api-180328003__b7805102111542">domainname</strong></em>" // Name of the domain to which the IAM user belongs
}
}
}
},
"scope": {
"<strong id="apig-en-api-180328003__b563015402144">project</strong>": {
"id": "<strong id="apig-en-api-180328003__b4301132835416"><em id="apig-en-api-180328003__i1191627165415">0215ef11e49d4743be23dd97a1561e91</em></strong>" // Project ID
}
}
}
}</pre>
</div>
<p id="apig-en-api-180328003__p1847182114579">The following shows an example of a global service request:</p>
<pre class="screen" id="apig-en-api-180328003__screen184324210584">{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "<em id="apig-en-api-180328003__i1589423111011"><strong id="apig-en-api-180328003__b1589423112012">username</strong></em>", // IAM username
"password": "<em id="apig-en-api-180328003__i7932938307"><strong id="apig-en-api-180328003__b149328381909">password</strong></em>", // IAM user password
"domain": {
"name": "<em id="apig-en-api-180328003__i34335451306"><strong id="apig-en-api-180328003__b343319451304">domainname</strong></em>" // Name of the domain to which the IAM user belongs
}
}
}
},
"scope": {
"<strong id="apig-en-api-180328003__b191917362143">domain</strong>": {
"name": "<em id="apig-en-api-180328003__i13403382119"><strong id="apig-en-api-180328003__b74031884120">domainname</strong></em>" // Name of the domain to which the IAM user belongs
}
}
}
}</pre>
</li><li id="apig-en-api-180328003__li2615608112249"><a name="apig-en-api-180328003__li2615608112249"></a><a name="li2615608112249"></a>Obtain the token. For details, see section "Obtaining the User Token" in the <em id="apig-en-api-180328003__i9409102014312">Identity and Access Management API Reference</em>. If the request is successful, the value of the X-Subject-Token header in the response is the token.<p id="apig-en-api-180328003__p183451053025">The following figures illustrate how to use Postman to manually obtain a token.</p>
<div class="fignone" id="apig-en-api-180328003__fig423411369101"><span class="figcap"><b>Figure 1 </b>Example request</span><br><span><img id="apig-en-api-180328003__image1460602112316" src="en-us_image_0139098594.png" title="Click to enlarge" class="imgResize"></span></div>
<div class="fignone" id="apig-en-api-180328003__fig1097673441212"><span class="figcap"><b>Figure 2 </b>Obtain <strong id="apig-en-api-180328003__b89061138185418">X-Subject-Token</strong> from the header of the response message.</span><br><span><img id="apig-en-api-180328003__image10464847153010" src="en-us_image_0139099203.png" title="Click to enlarge" class="imgResize"></span></div>
</li><li id="apig-en-api-180328003__li3407814412249">Call a service API, add the <strong id="apig-en-api-180328003__b208194011610">X-Auth-Token</strong> header with the token obtained in <a href="#apig-en-api-180328003__li2615608112249">2</a>.</li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180925010.html">Calling APIs</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>

View File

@ -1,36 +0,0 @@
<a name="apig-en-api-180328004"></a><a name="apig-en-api-180328004"></a>
<h1 class="topictitle1">AK/SK Authentication</h1>
<div id="body1521445726195"><p id="apig-en-api-180328004__p4081232010247">When you use API Gateway to send requests to underlying services, the requests must be signed using the AK and SK.</p>
<div class="note" id="apig-en-api-180328004__note39290400185533"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-api-180328004__p43222010185539">AK is a unique identifier that is associated with a secret access key; the access key ID and secret access key are used together to sign requests cryptographically.</p>
<p id="apig-en-api-180328004__p27812810185625">SK is a key that is used in conjunction with an access key ID to cryptographically sign requests. Signing a request identifies the sender and prevents the request from being altered.</p>
</div></div>
<p id="apig-en-api-180328004__p177381608119">The AK/SK authentication process is as follows:</p>
<ol id="apig-en-api-180328004__ol3895253574"><li id="apig-en-api-180328004__li889518531076"><a name="apig-en-api-180328004__li889518531076"></a><a name="li889518531076"></a>A standard request is created.</li><li id="apig-en-api-180328004__li1541420241986">A to-be-signed string is created using the request and other related information.</li><li id="apig-en-api-180328004__li198402221915"><a name="apig-en-api-180328004__li198402221915"></a><a name="li198402221915"></a>A signature is calculated using the AK/SK and to-be-signed string.</li><li id="apig-en-api-180328004__li68021236101010">The generated signature is added as a header or a query parameter in the HTTP request.</li><li id="apig-en-api-180328004__li12754191891410">After receiving the request, API Gateway performs <a href="#apig-en-api-180328004__li889518531076">1</a> to <a href="#apig-en-api-180328004__li198402221915">3</a> to calculate a signature.</li><li id="apig-en-api-180328004__li1440182718209">The new signature is compared with the signature generated in <a href="#apig-en-api-180328004__li198402221915">3</a>. If they are consistent, the request is processed; otherwise, the request is rejected.</li></ol>
<p id="apig-en-api-180328004__p193791486216"><a href="#apig-en-api-180328004__fig104904517537">Figure 1</a> shows the process of calling APIs through AK/SK authentication.</p>
<div class="fignone" id="apig-en-api-180328004__fig104904517537"><a name="apig-en-api-180328004__fig104904517537"></a><a name="fig104904517537"></a><span class="figcap"><b>Figure 1 </b>API calling process flow</span><br><span><img class="imgResize" id="apig-en-api-180328004__image1749635618277" src="en-us_image_0161965716.png" title="Click to enlarge"></span></div>
<div class="note" id="apig-en-api-180328004__note14106145674716"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-api-180328004__ul4407983487"><li id="apig-en-api-180328004__li11407988488">If a failure occurs in any step, the failure will be returned to the client application.</li><li id="apig-en-api-180328004__li1091411114818">The cached token is valid for 15 minutes by default.</li></ul>
</div></div>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-api-180328005.html">Generating an AK and SK</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-api-180328006.html">Signing a Request</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-api-180328008.html">Sample Code</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180925010.html">Calling APIs</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>

View File

@ -1,15 +0,0 @@
<a name="apig-en-api-180328005"></a><a name="apig-en-api-180328005"></a>
<h1 class="topictitle1">Generating an AK and SK</h1>
<div id="body1537444154231"><ol id="apig-en-api-180328005__ol6063434420657"><li id="apig-en-api-180328005__li53268082161429">Log in to the management console.</li><li id="apig-en-api-180328005__li58707242194127">Click the username and choose <strong id="apig-en-api-180328005__b15347312181919">My Credential</strong> from the drop-down list.</li></ol><ol start="3" id="apig-en-api-180328005__ol1866691320747"><li id="apig-en-api-180328005__li64261916202213">Click <strong id="apig-en-api-180328005__b25322139195">Access Keys</strong>.</li><li id="apig-en-api-180328005__li1327987320742">Click <strong id="apig-en-api-180328005__b77941514131917">Add Access Keys</strong> to switch to the <strong id="apig-en-api-180328005__b12795614141914">Add Access Keys</strong> page.</li><li id="apig-en-api-180328005__li12076053102753">Enter your login password.</li><li id="apig-en-api-180328005__li18362662204736">Enter the verification code sent to your mailbox or mobile phone.<div class="note" id="apig-en-api-180328005__note35171693204736"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-api-180328005__ul26525690204736"><li id="apig-en-api-180328005__li30992410204736">Users that are created in IAM without specifying email addresses or mobile numbers only need to enter their login passwords.</li><li id="apig-en-api-180328005__li28362923204736">MyWorkplace users are not required to enter their login passwords. They can create new access keys without entering verification codes if no email addresses or mobile numbers have been specified.</li></ul>
</div></div>
</li></ol><ol start="7" id="apig-en-api-180328005__ol6544796411157"><li id="apig-en-api-180328005__li38629386204736">Click <strong id="apig-en-api-180328005__b13623101072111">OK</strong> to download the access key.<div class="note" id="apig-en-api-180328005__note3606752619504"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p class="text" id="apig-en-api-180328005__p59314629204732">Keep the AK/SK file confidential to prevent information leakage.</p>
</div></div>
</li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180328004.html">AK/SK Authentication</a></div>
</div>
</div>

View File

@ -1,25 +0,0 @@
<a name="apig-en-api-180328006"></a><a name="apig-en-api-180328006"></a>
<h1 class="topictitle1">Signing a Request</h1>
<div id="body1537444154804"><ol id="apig-en-api-180328006__ol930865701011"><li id="apig-en-api-180328006__li17137133433914"><a name="apig-en-api-180328006__li17137133433914"></a><a name="li17137133433914"></a>Introduce the API Gateway signing SDK in the project.<ol type="a" id="apig-en-api-180328006__ol54494262406"><li id="apig-en-api-180328006__li9451162612408">Download the API Gateway signing tool from the following link:<p id="apig-en-api-180328006__p122916401107"><a name="apig-en-api-180328006__li9451162612408"></a><a name="li9451162612408"></a><a href="https://apig-demo.obs.eu-de.otc.t-systems.com/java/java-sdk-core.zip" target="_blank" rel="noopener noreferrer">https://apig-demo.obs.eu-de.otc.t-systems.com/java/java-sdk-core.zip</a></p>
</li><li id="apig-en-api-180328006__li54621026114019">Decompress the downloaded package to obtain a <strong id="apig-en-api-180328006__b12397105192410">.jar</strong> file.</li><li id="apig-en-api-180328006__li1046402634017">Add the decompressed <strong id="apig-en-api-180328006__b765309142415">.jar</strong> file to a project, for example, Eclipse, as a dependency package. See the following figure.<p id="apig-en-api-180328006__p9619172034018"><span><img id="apig-en-api-180328006__image534782164016" src="en-us_image_0132557229.png" title="Click to enlarge" class="imgResize"></span></p>
</li></ol>
</li><li id="apig-en-api-180328006__li18855549161113">Sign the request.<p id="apig-en-api-180328006__p147949344572"><a name="apig-en-api-180328006__li18855549161113"></a><a name="li18855549161113"></a>The signing method is integrated into the <strong id="apig-en-api-180328006__b11687487240">.jar</strong> file added in <a href="#apig-en-api-180328006__li17137133433914">1</a>. Before sending the request, sign the requested content. The signature obtained is included in the HTTP header of the request.</p>
<p id="apig-en-api-180328006__p9205028144610">For details, see <a href="apig-en-api-180328008.html">Sample Code</a>.</p>
<div class="notice" id="apig-en-api-180328006__note47372794014"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="apig-en-api-180328006__p1773727144016">The JDK version cannot be earlier than 1.8.</p>
</div></div>
</li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180328004.html">AK/SK Authentication</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>

View File

@ -1,79 +0,0 @@
<a name="apig-en-api-180328008"></a><a name="apig-en-api-180328008"></a>
<h1 class="topictitle1">Sample Code</h1>
<div id="body1537444154811"><div class="section" id="apig-en-api-180328008__section1596319488437"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-api-180328008__p1220414484384">This section describes how to call the API of a public cloud service by using Eclipse.</p>
<div class="p" id="apig-en-api-180328008__p363635184312">The following code shows how to sign a request and how to use an HTTP client to send an HTTPS request. The code is categorized into three classes:<ul id="apig-en-api-180328008__ul109498014112"><li id="apig-en-api-180328008__li119491103110"><strong id="apig-en-api-180328008__b38114539368">AccessService</strong>: an abstract class that merges the GET, POST, PUT, and DELETE methods into the access method.</li><li id="apig-en-api-180328008__li16949701211"><strong id="apig-en-api-180328008__b16692111103719">Demo</strong>: execution entry that simulates GET, POST, PUT, and DELETE requests.</li><li id="apig-en-api-180328008__li99492015115"><strong id="apig-en-api-180328008__b79386273717">AccessServiceImpl</strong>: implementation of the access method. The code required for API Gateway communication is included in the access method.</li></ul>
</div>
<p id="apig-en-api-180328008__p265415818244">You can download the sample code package from <a href="https://apig-demo.obs.eu-de.otc.t-systems.com/java/SdkDemo.zip" target="_blank" rel="noopener noreferrer">https://apig-demo.obs.eu-de.otc.t-systems.com/java/SdkDemo.zip</a>.</p>
<div class="notice" id="apig-en-api-180328008__note47372794014"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="apig-en-api-180328008__p1773727144016">The JDK version cannot be earlier than 1.8.</p>
</div></div>
</div>
<div class="section" id="apig-en-api-180328008__section98551696457"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-api-180328008__ol1515318170459"><li id="apig-en-api-180328008__li1115311720450">Download the sample code package and decompress it.</li><li id="apig-en-api-180328008__li1210954191115">Import the sample project to Eclipse.<div class="fignone" id="apig-en-api-180328008__fig16546145205014"><span class="figcap"><b>Figure 1 </b>Selecting an existing project</span><br><span><img id="apig-en-api-180328008__image1474131114720" src="en-us_image_0132432937.png" title="Click to enlarge" class="imgResize"></span></div>
<div class="fignone" id="apig-en-api-180328008__fig767232218519"><span class="figcap"><b>Figure 2 </b>Selecting the sample code file after decompression</span><br><span><img id="apig-en-api-180328008__image13419842205018" src="en-us_image_0132432939.png" title="Click to enlarge" class="imgResize"></span></div>
<div class="fignone" id="apig-en-api-180328008__fig159778103242"><span class="figcap"><b>Figure 3 </b>Structure of the project after importing</span><br><span><img id="apig-en-api-180328008__image128044312389" src="en-us_image_0132518357.png"></span></div>
</li><li id="apig-en-api-180328008__li1985133317503">Edit the main method in the <strong id="apig-en-api-180328008__b12111822184012">Demo.java</strong> file.<p id="apig-en-api-180328008__p2061535616161">Replace the bold texts with actual values. If you use other methods, such as POST, PUT, and DELETE, see the corresponding annotations.</p>
<p id="apig-en-api-180328008__p129401344175213">Replace the parameters in the URL, for example, <strong id="apig-en-api-180328008__b61192044135710">project_id</strong>.</p>
<p id="apig-en-api-180328008__p76929333513">For details on how to obtain your region name, service name, AK/SK, project ID, and domain ID, see <a href="apig-en-api-180328009.html">Obtaining Required Information</a>.</p>
<pre class="screen" id="apig-en-api-180328008__screen1282532262819">//<strong id="apig-en-api-180328008__b682822216285">TODO</strong>: Replace <strong id="apig-en-api-180328008__b1494717204464">eu-de</strong> with the name of the region in which the service to be accessed is located.
<strong id="apig-en-api-180328008__b3836162292818">private</strong> <strong id="apig-en-api-180328008__b14838142214284">static</strong> <strong id="apig-en-api-180328008__b9840162252820">final</strong> String <strong id="apig-en-api-180328008__b168426222280"><em id="apig-en-api-180328008__i78434223289">region</em></strong> = "<strong id="apig-en-api-180328008__b984611224288">eu-de</strong>";
//<strong id="apig-en-api-180328008__b485092242814">TODO</strong>: Replace <strong id="apig-en-api-180328008__b1289103244620">vpc</strong> with the name of the service you want to access. For example, ecs, vpc, iam, and elb.
<strong id="apig-en-api-180328008__b1085511229289">private</strong> <strong id="apig-en-api-180328008__b148569223286">static</strong> <strong id="apig-en-api-180328008__b2858922162819">final</strong> String <strong id="apig-en-api-180328008__b1886002219283"><em id="apig-en-api-180328008__i08607227287">serviceName</em></strong> = "<strong id="apig-en-api-180328008__b10864422132819">vpc</strong>";
<strong id="apig-en-api-180328008__b586872292810">public</strong> <strong id="apig-en-api-180328008__b387022202811">static</strong> <strong id="apig-en-api-180328008__b9872422122810">void</strong> main(String[] args) <strong id="apig-en-api-180328008__b1687452216287">throws</strong> UnsupportedEncodingException
{
//<strong id="apig-en-api-180328008__b14878522192811">TODO</strong>: Replace the AK and SK with those obtained on the <strong id="apig-en-api-180328008__b96051419463">My Credential</strong> page.
String ak = "<strong id="apig-en-api-180328008__b1788482282817">ZIRRKMTWPTQFQI1WKNKB</strong>";
String sk = "<strong id="apig-en-api-180328008__b15888122142815">Us0mdMNHk******YrRCnW0ecfzl</strong>";
//<strong id="apig-en-api-180328008__b138911622102819">TODO</strong>: To specify a project ID (multi-project scenarios), add the X-Project-Id header.
//<strong id="apig-en-api-180328008__b188965224282">TODO</strong>: To access a global service, such as IAM, DNS, CDN, and TMS, add the X-Domain-Id header to specify an account ID.
//<strong id="apig-en-api-180328008__b690112219287">TODO</strong>: To add a header, find "Add special headers" in the <strong id="apig-en-api-180328008__b1545410554465">AccessServiceImple.java</strong> file.
//<strong id="apig-en-api-180328008__b18907182213284">TODO</strong>: Test the API
String url = "<strong id="apig-en-api-180328008__b20913522132813">https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}</strong>";
<em id="apig-en-api-180328008__i1291714227289">get</em>(ak, sk, url);
//<strong id="apig-en-api-180328008__b7926142272813">TODO</strong>: When creating a VPC, replace <em id="apig-en-api-180328008__i6496148124718">{project_id}</em> in postUrl with the actual value.
//String postUrl = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/cloudservers";
//String postbody ="{\"<u id="apig-en-api-180328008__u393210221281">vpc</u>\": {\"name\": \"vpc\",\"cidr\": \"192.168.0.0/16\"}}";
//post(ak, sk, postUrl, postbody);
//<strong id="apig-en-api-180328008__b39371722132816">TODO</strong>: When querying a VPC, replace <em id="apig-en-api-180328008__i29291714154718">{project_id}</em> in url with the actual value.
//String url = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}";
//get(ak, sk, url);
//<strong id="apig-en-api-180328008__b795092292816">TODO</strong>: When updating a VPC, replace <em id="apig-en-api-180328008__i96031294474">{project_id}</em> and <em id="apig-en-api-180328008__i3423933194716">{vpc_id}</em> in putUrl with the actual values.
//String putUrl = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}";
//String putbody ="{\"vpc\":{\"name\": \"vpc1\",\"cidr\": \"192.168.0.0/16\"}}";
//put(ak, sk, putUrl, putbody);
//<strong id="apig-en-api-180328008__b1996262292817">TODO</strong>: When deleting a VPC, replace <em id="apig-en-api-180328008__i1564824510475">{project_id}</em> and <em id="apig-en-api-180328008__i3443250124716">{vpc_id}</em> in deleteUrl with the actual values.
//String deleteUrl = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}";
//delete(ak, sk, deleteUrl);
}</pre>
</li><li id="apig-en-api-180328008__li692519271935">(Optional) To call a service API of a sub-project or to add a self-defined header, perform the following steps:<ol type="a" id="apig-en-api-180328008__ol12427135611263"><li id="apig-en-api-180328008__li54271856142617">In the main method in the <strong id="apig-en-api-180328008__b112361621145020">Demo.java</strong> file, replace <strong id="apig-en-api-180328008__b5766162611504">project_id</strong> with the sub-project ID of the API.<pre class="screen" id="apig-en-api-180328008__screen11631945182617">//<strong id="apig-en-api-180328008__b763444562619">TODO</strong>: Test the API
String url = "https://vpc.eu-de.otc.t-systems.com/v1/{<strong id="apig-en-api-180328008__b363934516261">project_id</strong>}/vpcs/{vpc_id}";
<em id="apig-en-api-180328008__i1164219452266">get</em>(ak, sk, url);</pre>
</li><li id="apig-en-api-180328008__li11427145613263"><a name="apig-en-api-180328008__li11427145613263"></a><a name="li11427145613263"></a>Locate the following lines in the <strong id="apig-en-api-180328008__b117131855110">AccessServiceImpl.java</strong> file, delete "//" to activate the code line, and replace the sub-project ID with the actual one.<pre class="screen" id="apig-en-api-180328008__screen17729190153516">//<strong id="apig-en-api-180328008__b167326033518">TODO</strong>: Add special headers.
//request.addHeader("X-Project-Id", "<strong id="apig-en-api-180328008__b77328083512">xxxxx</strong>");</pre>
</li><li id="apig-en-api-180328008__li47751621276">Repeat <a href="#apig-en-api-180328008__li11427145613263">4.b</a> to add other self-defined headers.</li></ol>
</li><li id="apig-en-api-180328008__li18412306320">Compile and run the API calling code.<p id="apig-en-api-180328008__p188281527115415"><a name="apig-en-api-180328008__li18412306320"></a><a name="li18412306320"></a>Find <strong id="apig-en-api-180328008__b350175610616">Demo.java</strong> in the left pane of the Package Explorer, right-click, and choose <strong id="apig-en-api-180328008__b1685091315113">Run AS</strong> &gt; <strong id="apig-en-api-180328008__b340219171313">Java Application</strong>.</p>
<p id="apig-en-api-180328008__p20946560369">View the API call logs on the console.</p>
</li></ol>
</div>
<p id="apig-en-api-180328008__p56708187102740"></p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180328004.html">AK/SK Authentication</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
<a name="apig-en-api-180925010"></a><a name="apig-en-api-180925010"></a>
<h1 class="topictitle1">Calling APIs</h1>
<div id="body1537441012740"><p id="apig-en-api-180925010__p8060118"></p>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-api-180328009.html">Obtaining Required Information</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-api-180328003.html">Token Authentication</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-api-180328004.html">AK/SK Authentication</a></strong><br>
</li>
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1014 B

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version=""
language="en-us"
type=""

View File

@ -1,13 +0,0 @@
<a name="asm_01_0016"></a><a name="asm_01_0016"></a>
<h1 class="topictitle1">Application Service Mesh</h1>
<div id="body0000001083553366"><p id="asm_01_0016__p13190152018530">Application Service Mesh (ASM) is a service mesh platform developed based on Istio. It seamlessly interconnects with Cloud Container Engine (CCE), an enterprise-level Kubernetes cluster service. With better usability, reliability, and visualization, ASM provides you with out-of-the-box features and enhanced user experience.</p>
<p id="asm_01_0016__p102231950161415">ASM is a non-intrusive microservice governance solution that provides full-lifecycle management and traffic management. It is compatible with the Kubernetes and Istio ecosystems and provides a wide range of features such as load balancing, outlier detection, and rate limiting. ASM provides diversified built-in grayscale releases, including canary release and blue-green deployment, enabling one-stop automatic release management. </p>
<p id="asm_01_0016__p0763127151216">For more about ASM, see <a href="asm_productdesc_0001.html">Introduction</a>.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="en-us_topic_0000001627845328.html">User Guide</a></div>
</div>
</div>

View File

@ -1,15 +0,0 @@
<a name="asm_01_0017"></a><a name="asm_01_0017"></a>
<h1 class="topictitle1">Creating a Service Mesh</h1>
<div id="body0000001209619746"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="asm_01_0020.html">Creating a Service Mesh</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="en-us_topic_0000001627845328.html">User Guide</a></div>
</div>
</div>

View File

@ -1,56 +0,0 @@
<a name="asm_01_0020"></a><a name="asm_01_0020"></a>
<h1 class="topictitle1">Creating a Service Mesh</h1>
<div id="body8662426"><p id="asm_01_0020__en-us_topic_0000001542706401_p7705103811473">ASM allows you to create a service mesh of the Basic edition, which is a standard service mesh available for commercial use.</p>
<div class="section" id="asm_01_0020__en-us_topic_0000001542706401_section033812246196"><h4 class="sectiontitle">Prerequisites</h4><p id="asm_01_0020__en-us_topic_0000001542706401_p43381724171910">A CCE cluster is available.</p>
</div>
<div class="section" id="asm_01_0020__en-us_topic_0000001542706401_section1486314595204"><h4 class="sectiontitle">Constraints</h4><ul id="asm_01_0020__en-us_topic_0000001542706401_ul186475910202"><li id="asm_01_0020__en-us_topic_0000001542706401_li1786417596203">ASM depends on the domain name resolution of CoreDNS. Before creating a service mesh for a cluster, ensure that the cluster has required resources and CoreDNS is running normally.</li><li id="asm_01_0020__li133817361244">Istio components v1.13 and v1.15 cannot run on nodes running CentOS or EulerOS 2.5. When creating a service mesh, do not specify these types of nodes as master nodes.</li></ul>
</div>
<div class="section" id="asm_01_0020__en-us_topic_0000001542706401_section201371027102715"><h4 class="sectiontitle">Procedure</h4><ol id="asm_01_0020__en-us_topic_0000001542706401_ol1158918434276"><li id="asm_01_0020__en-us_topic_0000001542706401_li184614499427"><span>Log in to the ASM console.</span></li><li id="asm_01_0020__en-us_topic_0000001542706401_li125894431271"><span>Click Create Mesh in the upper right corner.</span></li><li id="asm_01_0020__en-us_topic_0000001542706401_li135891543162714"><span>Configure the following parameters.</span><p><ul id="asm_01_0020__en-us_topic_0000001542706401_ul75901043202711"><li id="asm_01_0020__en-us_topic_0000001542706401_li2092711501216"><strong id="asm_01_0020__en-us_topic_0000001542706401_b1094850142211">Mesh Edition</strong><p id="asm_01_0020__en-us_topic_0000001542706401_p4479132261213">Only service meshes of the Basic edition are supported.</p>
</li><li id="asm_01_0020__en-us_topic_0000001542706401_li35901243162718"><strong id="asm_01_0020__b696006975">Mesh Name</strong><p id="asm_01_0020__en-us_topic_0000001542706401_p19590743152711">Enter a service mesh name, which consists of 4 to 64 characters. It must start with a lowercase letter and cannot end with a hyphen (-). Only lowercase letters, digits, and hyphens (-) are allowed.</p>
<p id="asm_01_0020__en-us_topic_0000001542706401_p11590144316275">Service mesh names under the same account must be unique and cannot be modified after creation.</p>
</li><li id="asm_01_0020__en-us_topic_0000001542706401_li3590184362716"><strong id="asm_01_0020__b1645938020">Istio Version</strong><p id="asm_01_0020__en-us_topic_0000001542706401_p19590144310274">Select the Istio version supported by the service mesh.</p>
</li><li id="asm_01_0020__li20991123625914"><strong id="asm_01_0020__b54661518132116">Enable IPv6</strong><p id="asm_01_0020__p1499153613599">Determine whether to enable IPv6. This option is supported only in Istio 1.18 or later.</p>
</li><li id="asm_01_0020__en-us_topic_0000001542706401_li4590154315271"><strong id="asm_01_0020__b1309500367">Cluster</strong><p id="asm_01_0020__en-us_topic_0000001542706401_p4590184313278">Select the target cluster from the cluster list or enter the target cluster name in the upper right corner of the list to search for it. You can select only the clusters which versions are supported by the current mesh version.</p>
</li><li id="asm_01_0020__en-us_topic_0000001542706401_li159044311277"><strong id="asm_01_0020__b1490852056">Mesh Control Plane Node</strong><p id="asm_01_0020__en-us_topic_0000001542706401_p125902437272">To install the control plane components for the service mesh of the Basic edition in your cluster, you need to select a node for installation. If HA is required, you can select two or more nodes from different AZs.</p>
<p id="asm_01_0020__en-us_topic_0000001542706401_p1959024392713">The selected node is labeled with <strong id="asm_01_0020__b12113195612363">istio:master</strong>, and the components are scheduled to this node.</p>
</li><li id="asm_01_0020__li17225629125"><strong id="asm_01_0020__b182161818152520">Observability Configuration</strong><ul id="asm_01_0020__ul162251921123"><li id="asm_01_0020__li1233211216319"><strong id="asm_01_0020__b274587613">Application Metrics</strong><p id="asm_01_0020__p93321821123112">If this option is enabled, you can build service access metrics, application topologies, and service health and SLO definitions in the service mesh.</p>
</li><li id="asm_01_0020__li4225182181210"><strong id="asm_01_0020__b784414181280">Access Logging</strong><p id="asm_01_0020__p172253214122">If this option is enabled, you can query inter-service access records in the service mesh to locate exceptions. After enabling this option, you need to select the Log Tank Service (LTS) log group and log stream. Access logs will be transmitted to the log stream. You can view the access logs on the <strong id="asm_01_0020__b109851931102518">Monitoring Center</strong> &gt; <strong id="asm_01_0020__b098543172514">Access Logs</strong> page.</p>
<div class="note" id="asm_01_0020__note172251629121"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="asm_01_0020__ul10225923127"><li id="asm_01_0020__li17225122121217">Only Istio 1.18 or later can work with LTS to collect and store access logs. To ensure logs are reported to LTS, install CCE Log-Agent on the <strong id="asm_01_0020__b16168103005612">Add-ons</strong> page in advance.</li></ul>
</div></div>
</li><li id="asm_01_0020__li1522512214127">Tracing<p id="asm_01_0020__p3225124129"><a name="asm_01_0020__li1522512214127"></a><a name="li1522512214127"></a>- <strong id="asm_01_0020__b1649171110292">Sampling Rate</strong>: Number of requests generated by the tracing/Total number of requests</p>
<p id="asm_01_0020__p722519210123">- <strong id="asm_01_0020__b13853258294">Version</strong>: the tracing service. If you select <strong id="asm_01_0020__b1028517591813">Third-party Jaeger/Zipkin service</strong>, you need to set <strong id="asm_01_0020__b613018597425">Service Address</strong> and <strong id="asm_01_0020__b665636154317">Service Port</strong>, which indicate the address and port number used by the third-party tracing service to receive requests.</p>
<div class="note" id="asm_01_0020__note122518211219"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="asm_01_0020__ul1522613251216"><li id="asm_01_0020__li112261223127">Only Istio 1.15 or later support the third-party tracing service.</li><li id="asm_01_0020__li142761222131512">If you want to use the third-party Jaeger or Zipkin service, install Jaeger or Zipkin first. Alternatively, you can obtain the service address after installing Jaeger or Zipkin by referring to section "Installing Jaeger/Zipkin" in the <em id="asm_01_0020__i195711233204615">FAQs</em>.</li><li id="asm_01_0020__li1622612111211">The default service ports of Jaeger and Zipkin are both 9411. If you customize the service port during Jaeger or Zipkin installation, replace <strong id="asm_01_0020__b3675134710313">Service Port</strong> with the actual value.</li></ul>
</div></div>
</li></ul>
</li></ul>
</p></li><li id="asm_01_0020__en-us_topic_0000001542706401_li185901043112713"><span>(Optional) Configure advanced settings.</span><p><ul id="asm_01_0020__en-us_topic_0000001542706401_ul195914431277"><li id="asm_01_0020__en-us_topic_0000001542706401_li105911243172720"><strong id="asm_01_0020__b1279363897">Sidecar Configuration</strong><p id="asm_01_0020__en-us_topic_0000001542706401_p0591154316270">Select a namespace and label it with <strong id="asm_01_0020__b1228706015">istio-injection=enabled</strong>. All pods in the namespace will be injected with an istio-proxy sidecar.</p>
<p id="asm_01_0020__en-us_topic_0000001542706401_p1459184332714">You can inject a sidecar in <strong id="asm_01_0020__b441230997">Mesh Configuration</strong> &gt; <strong id="asm_01_0020__b844338891">Sidecar Management</strong> after the mesh is created. For details, see <a href="asm_01_0041.html#asm_01_0041__section65931513505">Injecting a Sidecar</a>.</p>
</li><li id="asm_01_0020__en-us_topic_0000001542706401_li1059184310276"><strong id="asm_01_0020__b534709116">Restart Existing Services</strong><p id="asm_01_0020__en-us_topic_0000001542706401_p12591144362715"><span><img id="asm_01_0020__image879324619490" src="en-us_image_0000001920032153.png"></span>: Pods of the existing services in the namespace will be restarted, which will temporarily interrupt your services. The <strong id="asm_01_0020__b666069868">istio-proxy</strong> sidecar is automatically injected into the pods of the existing services.</p>
<p id="asm_01_0020__en-us_topic_0000001542706401_p195911343162718"><span><img id="asm_01_0020__en-us_topic_0000001542706401_image1736110311031" src="en-us_image_0000001494249996.png"></span>: The <strong id="asm_01_0020__b166037221819">istio-proxy</strong> sidecar cannot be automatically injected into the pods of the existing services. You need to manually restart the workloads on the CCE console to inject the sidecar.</p>
</li><li id="asm_01_0020__li103761117176"><strong id="asm_01_0020__b161488533415">Traffic Interception Settings</strong><div class="note" id="asm_01_0020__note9376117978"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="asm_01_0020__p2376181712720">By default, sidecars intercept all inbound and outbound traffic of pods. You can modify the default traffic rules in <strong id="asm_01_0020__b134331479345">Traffic Interception Settings</strong>.</p>
</div></div>
<p id="asm_01_0020__p93763174718"><strong id="asm_01_0020__b9810181314341">Inbound Ports</strong>: Inbound ports separated by commas (,). You can use this field to specify the ports that will be included or excluded for inbound traffic redirection.</p>
<ul id="asm_01_0020__ul1376817679"><li id="asm_01_0020__li33768171718"><strong id="asm_01_0020__b16992015173412">Include only specified ports</strong> means that the traffic to services in a service mesh over specified ports will be redirected to the sidecar.</li></ul>
<ul id="asm_01_0020__ul73766176715"><li id="asm_01_0020__li1137612175714"><strong id="asm_01_0020__b15386151833412">Exclude only specified ports</strong> means that the traffic to services in a service mesh over the ports except the specified ports will be redirected to the sidecar.</li></ul>
<p id="asm_01_0020__p437612171973"><strong id="asm_01_0020__b155051822203412">Outbound Ports</strong>: Outbound ports separated by commas (,). You can use this field to specify the ports that will be included or excluded for outbound traffic redirection.</p>
<ul id="asm_01_0020__ul10376151714710"><li id="asm_01_0020__li16376121711719"><strong id="asm_01_0020__b10871024123417">Include only specified ports</strong> means that the traffic from services in a service mesh over specified ports will be redirected to the sidecar.</li></ul>
<ul id="asm_01_0020__ul337611714716"><li id="asm_01_0020__li1337717171578"><strong id="asm_01_0020__b67131127173417">Exclude only specified ports</strong> means that the traffic from services in a service mesh over the ports except the specified ports will be redirected to the sidecar.</li></ul>
<p id="asm_01_0020__p11377181717712"><strong id="asm_01_0020__b1846318299347">Outbound IP Ranges</strong>: IP address ranges separated by commas (,) in CIDR format. You can use this field to specify the IP ranges that will be excluded from redirection to the sidecar.</p>
<ul id="asm_01_0020__ul1337716172078"><li id="asm_01_0020__li1377417579"><strong id="asm_01_0020__b39502030153411">Include only specified IP ranges</strong> means that the traffic from specified IP ranges will be redirected to the sidecar.</li></ul>
<ul id="asm_01_0020__ul14377181711717"><li id="asm_01_0020__li3377171710719"><strong id="asm_01_0020__b393303213347">Exclude only specified IP ranges</strong> means that the traffic from IP ranges except the specified IP ranges will be redirected to the sidecar.</li></ul>
</li><li id="asm_01_0020__li1611138125316"><strong id="asm_01_0020__b1838169676">Resource Tags</strong><p id="asm_01_0020__p1711128135317">Enter the tag key and tag value. A maximum of 20 tags can be added.</p>
</li></ul>
</p></li><li id="asm_01_0020__en-us_topic_0000001542706401_li859154318271"><span>Review the service mesh configuration in the <strong id="asm_01_0020__b1200737994">Configuration List</strong> on the right of the page and click <strong id="asm_01_0020__b170596237">Submit</strong>.</span><p><p id="asm_01_0020__en-us_topic_0000001542706401_p13591174382714">It takes about 1 to 3 minutes to create a service mesh. If the service mesh status changes from <strong id="asm_01_0020__b1247244532">Installing</strong> to <strong id="asm_01_0020__b335797679">Running</strong>, the service mesh is successfully created.</p>
<div class="note" id="asm_01_0020__en-us_topic_0000001542706401_note14591184342712"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="asm_01_0020__en-us_topic_0000001542706401_p1459119432275">When the service mesh is enabled, the following operations are performed:</p>
<ul id="asm_01_0020__en-us_topic_0000001542706401_ul859134311276"><li id="asm_01_0020__en-us_topic_0000001542706401_li195911043152719">Helm orchestrates the application into a Release as the resource of the service mesh control plane.</li></ul>
</div></div>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0017.html">Creating a Service Mesh</a></div>
</div>
</div>

View File

@ -1,17 +0,0 @@
<a name="asm_01_0023"></a><a name="asm_01_0023"></a>
<h1 class="topictitle1">Mesh Management</h1>
<div id="body0000001158734023"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="asm_01_0133.html">Mesh Events</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0086.html">Uninstalling a Mesh</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="en-us_topic_0000001627845328.html">User Guide</a></div>
</div>
</div>

View File

@ -1,19 +0,0 @@
<a name="asm_01_0029"></a><a name="asm_01_0029"></a>
<h1 class="topictitle1">Service Management</h1>
<div id="body0000001130335659"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="asm_01_0031.html">Configuration Diagnosis</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0060.html">Manual Fixing Items</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0065.html">Auto Fixing Items</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="en-us_topic_0000001627845328.html">User Guide</a></div>
</div>
</div>

View File

@ -1,21 +0,0 @@
<a name="asm_01_0031"></a><a name="asm_01_0031"></a>
<h1 class="topictitle1">Configuration Diagnosis</h1>
<div id="body0000001168358681"><p id="asm_01_0031__p136332164213">ASM diagnoses all services in a managed cluster. Traffic management and grayscale release are available only for normal services.</p>
<div class="section" id="asm_01_0031__section1492016145439"><h4 class="sectiontitle">Constraints</h4><ul id="asm_01_0031__ul13586133513431"><li id="asm_01_0031__li1458616355432">If multiple services correspond to one deployment, these services cannot be added to the mesh. Otherwise, functions such as grayscale release or gateway access may fail.</li><li id="asm_01_0031__li12667143715435">If the workload of a service uses the host network mode (<strong id="asm_01_0031__b6019551881">hostNetwork: true</strong> is configured for the pod), sidecars cannot be injected for the service.</li></ul>
</div>
<div class="section" id="asm_01_0031__section12419144997"><h4 class="sectiontitle">Service Diagnosis</h4><ol id="asm_01_0031__ol1448417221398"><li id="asm_01_0031__li6469645181611"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0031__li196333015449"><span>In the navigation pane, choose <strong id="asm_01_0031__b1105438117102610">Service Management</strong>. The diagnosis results of services are displayed in the <strong id="asm_01_0031__b413973126102610">Configuration Diagnosis Result</strong> column.</span><p><p id="asm_01_0031__p1059141134414">If a service is abnormal, click <strong id="asm_01_0031__b392659170102610">Fix</strong> to fix the issues. For details, see <a href="#asm_01_0031__section104191546916">Service Issue Fixing</a>.</p>
</p></li><li id="asm_01_0031__li793141204616"><span>After the issues are fixed, you can click <strong id="asm_01_0031__b1638257010102610">Diagnose Again</strong> to diagnose the service again.</span></li></ol>
</div>
<div class="section" id="asm_01_0031__section104191546916"><a name="asm_01_0031__section104191546916"></a><a name="section104191546916"></a><h4 class="sectiontitle">Service Issue Fixing</h4><p id="asm_01_0031__p114191214192412">If a service is abnormal, you need to manually fix the abnormal items and then perform auto fix for left issues.</p>
<ol id="asm_01_0031__ol7957194914310"><li id="asm_01_0031__li79571649154313"><span>Click <strong id="asm_01_0031__b1342048372102610">Fix</strong> in the row of the abnormal service. If there are issues to be fixed manually, click <strong id="asm_01_0031__b19983173225119">View Solution</strong> to see how to fix them.</span></li><li id="asm_01_0031__li1264572716612"><span>Click <strong id="asm_01_0031__b91951837165410">Next</strong> to go to the auto fix page, and click <strong id="asm_01_0031__b6195153745412">Auto Fix</strong> to automatically fix left issues.</span><p><div class="note" id="asm_01_0031__note4360522174016"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="asm_01_0031__ul2016935475419"><li id="asm_01_0031__li19169175412543">If left issues cannot be fix automatically, click <strong id="asm_01_0031__b72222039102610">View Solution</strong> and fix them manually.</li><li id="asm_01_0031__li1030121545517">Auto fix does not support Services which have configured gateways or have created grayscale release tasks.</li><li id="asm_01_0031__li981319126141">If the service is not displayed in the service list, check whether the corresponding workload exists.</li></ul>
</div></div>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0029.html">Service Management</a></div>
</div>
</div>

View File

@ -1,17 +0,0 @@
<a name="asm_01_0033"></a><a name="asm_01_0033"></a>
<h1 class="topictitle1">Gateway Management</h1>
<div id="body0000001166607251"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="asm_01_0056.html">Adding a Gateway</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0057.html">Adding a Route</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="en-us_topic_0000001627845328.html">User Guide</a></div>
</div>
</div>

View File

@ -1,19 +0,0 @@
<a name="asm_01_0034"></a><a name="asm_01_0034"></a>
<h1 class="topictitle1">Grayscale Release</h1>
<div id="body0000001130052867"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="asm_01_0035.html">Grayscale Release Overview</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0036.html">Creating a Grayscale Release Task</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0037.html">Basic Operations on a Grayscale Task</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="en-us_topic_0000001627845328.html">User Guide</a></div>
</div>
</div>

View File

@ -1,18 +0,0 @@
<a name="asm_01_0035"></a><a name="asm_01_0035"></a>
<h1 class="topictitle1">Grayscale Release Overview</h1>
<div id="body0000001130250039"><p id="asm_01_0035__p204251248299">When switching between old and new services, you may be challenged in ensuring the system service continuity. If a new service version is directly released to all users at a time, it can be risky because once an online accident or bug occurs, the impact on users is great. It could take a long time to fix the issue. Sometimes, the version has to be rolled back, which severely affects user experience.</p>
<p id="asm_01_0035__p954014407530">Several release policies are developed for service upgrade: canary release, blue-green deployment, A/B testing, rolling upgrade, and batch suspension of release. Traffic loss or service unavailability caused by releases can be avoided as much as possible. Currently, ASM supports canary release and blue-green deployment.</p>
<div class="section" id="asm_01_0035__section18766329162914"><h4 class="sectiontitle">Canary Release</h4><p id="asm_01_0035__p4541003362">Canary release is also called grayscale release. It is a smooth iteration mode for version upgrade. During the upgrade, some users use the new version, while other users continue to use the old version. After the new version is stable and ready, it gradually takes over all the live traffic. In this way, service risks brought by the release of the new version can be minimized, the impact of faults can be reduced, and quick rollback is supported.</p>
<div class="fignone" id="asm_01_0035__fig109451130201"><span class="figcap"><b>Figure 1 </b>Canary release process</span><br><span><img id="asm_01_0035__image1519152581213" src="en-us_image_0000001254994475.png"></span></div>
</div>
<div class="section" id="asm_01_0035__section1192552994318"><h4 class="sectiontitle">Blue-Green Deployment</h4><p id="asm_01_0035__p420735819400">Blue-green deployment provides a zero-downtime, predictable manner for releasing applications to reduce service interruption during the release. A new version is deployed while the old version is retained. The two versions are online at the same time. The new and old versions work in hot backup mode. The route weight is switched (0 or 100) to enable different versions to go online or offline. If a problem occurs, the version can be quickly rolled back.</p>
<div class="fignone" id="asm_01_0035__fig17374432214"><span class="figcap"><b>Figure 2 </b>Blue-green deployment process</span><br><span><img id="asm_01_0035__image12609632171216" src="en-us_image_0000001210274518.png"></span></div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0034.html">Grayscale Release</a></div>
</div>
</div>

View File

@ -1,51 +0,0 @@
<a name="asm_01_0036"></a><a name="asm_01_0036"></a>
<h1 class="topictitle1">Creating a Grayscale Release Task</h1>
<div id="body0000001130151131"><div class="section" id="asm_01_0036__section695502711820"><h4 class="sectiontitle">Basic Concepts</h4><ul id="asm_01_0036__ul1540612364188"><li id="asm_01_0036__li206717917229"><span class="keyword" id="asm_01_0036__keyword26724919224">Grayscale version</span><p id="asm_01_0036__p135211613172220">Only one grayscale version can be released for a service. You can configure grayscale policies for the version.</p>
</li><li id="asm_01_0036__li17102132219228"><span class="keyword" id="asm_01_0036__keyword161031822192210">Grayscale policy</span><p id="asm_01_0036__p1686542219222">Before releasing a new service version in the production environment and letting it serve all the live traffic, you can add a grayscale version and configure grayscale policies to serve just a proportion of the traffic. After the grayscale version has run stably for a period, it can serve as the default version to take over all traffic in place of the original version in the production environment.</p>
</li></ul>
</div>
<div class="section" id="asm_01_0036__section230105120212"><h4 class="sectiontitle">Creating a Grayscale Release Task</h4><ol id="asm_01_0036__ol923713456714"><li id="asm_01_0036__li0970112012172"><span>Log in to the ASM console and go to the <strong id="asm_01_0036__b13161141102511">Create a grayscale release task</strong> page by one of the following ways:</span><p><ul id="asm_01_0036__ul171761631102512"><li id="asm_01_0036__li7877104561515">(Shortcut) In the upper right corner of an Enterprise mesh, click <span><img id="asm_01_0036__image1891933718163" src="en-us_image_0000001254994843.png"></span>.</li><li id="asm_01_0036__li51767318252">(Shortcut) In the center of the target mesh, click <strong id="asm_01_0036__b1545983530102415">Create a grayscale release task</strong>.</li><li id="asm_01_0036__li746144374218">Create a grayscale release task on the mesh details page.<ol type="a" id="asm_01_0036__ol4373114819425"><li id="asm_01_0036__li123737481421">Click the target mesh and go to its details page, click <strong id="asm_01_0036__b1885266196102415">Grayscale Release</strong> in the navigation pane on the left.</li><li id="asm_01_0036__li4599125384218">If no grayscale task is running, click <strong id="asm_01_0036__b7201145816720">Create Release Task</strong> in the <strong id="asm_01_0036__b920820582075">Canary Release</strong> or <strong id="asm_01_0036__b16209135817711">Blue-Green Deployment</strong> area. If there is an ongoing grayscale task, click <strong id="asm_01_0036__b1620995818710">Grayscale Release</strong> in the upper right corner.</li></ol>
</li></ul>
</p></li><li id="asm_01_0036__li771712313588"><span>Configure basic information of the grayscale release task.</span><p><ul id="asm_01_0036__ul6468103391818"><li id="asm_01_0036__li182551458340"><strong id="asm_01_0036__b151365433183">Grayscale Release Form</strong><p id="asm_01_0036__p2064691819344">Select <strong id="asm_01_0036__b1497597343102415">Canary Release</strong> or <strong id="asm_01_0036__b2049366149102415">Blue-Green Deployment</strong> as required. For details about the differences between the two forms, see <a href="asm_01_0035.html">Grayscale Release Overview</a>.</p>
</li><li id="asm_01_0036__li4938581353"><strong id="asm_01_0036__b743019103613">Task Name</strong><p id="asm_01_0036__p98958413619">Customize a grayscale release task name. Enter 4 to 63 characters, starting with a lowercase letter and ending with a letter or digit. Only lowercase letters, digits, and hyphens (-) are allowed.</p>
</li><li id="asm_01_0036__li36212449385"><strong id="asm_01_0036__b13288953173816">Namespace</strong><p id="asm_01_0036__p26361500386">Select the namespace to which the service belongs.</p>
</li><li id="asm_01_0036__li10113185692215"><strong id="asm_01_0036__b083101432311">Service</strong><p id="asm_01_0036__p11370657182210">Select the service to be released from the drop-down list box. Services that are running grayscale tasks cannot be selected. They are automatically filtered out from the list.</p>
</li><li id="asm_01_0036__li164901553114017"><strong id="asm_01_0036__b486725564018">Workload</strong><p id="asm_01_0036__p614765119400">Select the workload to which the service belongs.</p>
</li><li id="asm_01_0036__li16245142511413"><strong id="asm_01_0036__b2245142520413">Version</strong><p id="asm_01_0036__p5245132584112">Current service version number, which cannot be changed.</p>
</li></ul>
</p></li><li id="asm_01_0036__li1480323914110"><span>Configure grayscale version information.</span><p><ul id="asm_01_0036__ul11748103715413"><li id="asm_01_0036__li1074820373417"><strong id="asm_01_0036__b67471377410">Cluster</strong><p id="asm_01_0036__p7748103744117">Select the cluster on which the grayscale version of the service will be deployed.</p>
</li><li id="asm_01_0036__li1574817374414"><strong id="asm_01_0036__b207485372415">Version</strong><p id="asm_01_0036__p187481537204112">Enter the grayscale version number of the service.</p>
</li><li id="asm_01_0036__li1835217487279"><strong id="asm_01_0036__b96251705281">Pods</strong><p id="asm_01_0036__p6256649192710">Number of pods of the grayscale version. You can modify the number as required. Each pod of the grayscale version consists of containers deployed with the same image.</p>
</li><li id="asm_01_0036__li17315175072717"><strong id="asm_01_0036__b3547182102812">Image Name</strong><p id="asm_01_0036__p1763125102711">The image of the service is selected by default.</p>
</li><li id="asm_01_0036__li366895242717"><strong id="asm_01_0036__b16922517284">Image Tag</strong><p id="asm_01_0036__p058355372716">Select the image tag of the grayscale version.</p>
</li></ul>
</p></li><li id="asm_01_0036__li11228147115610"><span>Click <span class="uicontrol" id="asm_01_0036__uicontrol142518585718"><b>Release</b></span>. Wait for the grayscale version to be created.</span><p><p id="asm_01_0036__p157607115573">Ensure that all pods of the grayscale version are running normally and configure the traffic policy when the startup progress reaches 100%. You can view the pod monitoring information, including <strong id="asm_01_0036__b738282634102415">Start Logs</strong> and <strong id="asm_01_0036__b38129282102415">Performance Monitoring</strong> on the <strong id="asm_01_0036__b2126702874102415">View Status</strong> page.</p>
</p></li><li id="asm_01_0036__li5242204519710"><span>(For canary release only) Click <strong id="asm_01_0036__b2127315232102415">Configure Traffic Policy</strong> to configure a traffic policy.</span><p><p id="asm_01_0036__p58080153163125"><strong id="asm_01_0036__b371783390102415">Policy Type</strong>: The value can be <strong id="asm_01_0036__b1569755184102415">Based on traffic ratio</strong> or <strong id="asm_01_0036__b1443871107102415">Based on request content</strong>.</p>
<ul id="asm_01_0036__ul61311494163314"><li id="asm_01_0036__li1265865519290"><strong id="asm_01_0036__b179291468309">Based on traffic ratio</strong><p id="asm_01_0036__p910935618296">A specified ratio of traffic will be directed to the grayscale version. For example, 75% of the traffic is directed to the original version, and 25% is directed to the grayscale version. In actual applications, you can gradually increase the traffic ratio of the grayscale version and deliver policies to monitor the performance of the grayscale version.</p>
<div class="fignone" id="asm_01_0036__fig1550914468143"><span class="figcap"><b>Figure 1 </b>Based on traffic ratio</span><br><span><img class="eddx" id="asm_01_0036__image45091246201417" src="en-us_image_0000001210438852.png"></span></div>
<p id="asm_01_0036__p184331616162415"><strong id="asm_01_0036__b361084949102415">Traffic</strong> <strong id="asm_01_0036__b1076523187102415">ratio</strong>: You can set the traffic ratio for the original version and grayscale version. The system distributes traffic to the two versions based on the specific traffic ratio.</p>
</li></ul>
<ul id="asm_01_0036__ul21864151442"><li id="asm_01_0036__li1318621514442"><strong id="asm_01_0036__b1184715194414">Based on request content</strong><p id="asm_01_0036__p10186515104411">The grayscale version can be accessed only when the traffic meets the rules based on the cookies, custom headers, queries, operating systems, and browsers. For example, only HTTP requests whose cookies meet <strong id="asm_01_0036__b1217005551102415">User=Internal</strong> can be forwarded to the grayscale version. Other requests are still received by the original version.</p>
<div class="fignone" id="asm_01_0036__fig19101134141212"><span class="figcap"><b>Figure 2 </b>Based on request content</span><br><span><img class="eddx" id="asm_01_0036__image1610220411210" src="en-us_image_0000001210119300.png"></span></div>
<ul id="asm_01_0036__ul146803318438"><li id="asm_01_0036__li1765991217433"><strong id="asm_01_0036__b0949204010510">Cookie</strong><p id="asm_01_0036__p14135174411452"><strong id="asm_01_0036__b351285221111">Regular expression</strong>: When the cookie of a request matches the configured regular expression, the request will be distributed to the grayscale version.</p>
</li><li id="asm_01_0036__li63161151174315"><strong id="asm_01_0036__b99941448155113">Header</strong><ul id="asm_01_0036__ul17661191910713"><li id="asm_01_0036__li111518584416"><strong id="asm_01_0036__b08691434192116">Full match</strong>: Only the URL that fully matches the values you set can be accessed. For example, if <strong id="asm_01_0036__b1697833709102415">Key</strong> is set to <strong id="asm_01_0036__b2061631694102415">User</strong> and <strong id="asm_01_0036__b781961949102415">Value</strong> is set to <strong id="asm_01_0036__b38182976102415">Internal</strong>, only requests whose headers contain <strong id="asm_01_0036__b1880166255102415">User</strong> with the value <strong id="asm_01_0036__b438277587102415">Internal</strong> are responded by the service of the grayscale version.</li><li id="asm_01_0036__li1830122117716"><strong id="asm_01_0036__b1433176777102415">Regular expression</strong>: When the header of a request matches the configured regular expression, the request will be distributed to the grayscale version.<p id="asm_01_0036__p530216211679">You can customize the key and value for filtering. The value supports the full match and regular expression.</p>
</li></ul>
</li><li id="asm_01_0036__li0455205112192"><strong id="asm_01_0036__b6293190135211">Query</strong><ul id="asm_01_0036__ul122705534206"><li id="asm_01_0036__li62701453112015"><strong id="asm_01_0036__b052280152213">Full match</strong>: Only the URL that fully matches the values you set can be accessed. For example, if <strong id="asm_01_0036__b1874948701102415">Key</strong> is set to <strong id="asm_01_0036__b1903766040102415">User</strong> and <strong id="asm_01_0036__b1996971534102415">Value</strong> is set to <strong id="asm_01_0036__b2112203613102415">Internal</strong>, only requests whose queries contain <strong id="asm_01_0036__b433224998102415">User</strong> with the value <strong id="asm_01_0036__b566472174102415">Internal</strong> are responded by the service of the grayscale version.</li><li id="asm_01_0036__li127075311208"><strong id="asm_01_0036__b1062257843102415">Regular expression</strong>: When the query of a request matches the configured regular expression, the request will be distributed to the grayscale version.<p id="asm_01_0036__p112701053182010">You can customize the key and value for filtering. The value supports the full match and regular expression.</p>
</li></ul>
</li><li id="asm_01_0036__li15787154419"><strong id="asm_01_0036__b649621384102415">Allowed OS</strong>: Select OSs that can access the grayscale version, including iOS, Android, Windows, and macOS.</li><li id="asm_01_0036__li526131604411"><strong id="asm_01_0036__b2030726272102415">Allowed Browser</strong>: Select browsers that can access the grayscale version, including Chrome and Internet Explorer.</li><li id="asm_01_0036__li1630402520442"><strong id="asm_01_0036__b1968871174102415">Traffic management YAML</strong>: The rule YAML is automatically generated based on the configured parameters.</li></ul>
</li></ul>
<div class="note" id="asm_01_0036__note197321798815"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="asm_01_0036__p10999132611241">A traffic policy based on request content is valid only for the entry service that is directly accessed. If you want the traffic policy to be applied to all services, the header information of HTTP requests needs to be transferred in the service code.</p>
<p id="asm_01_0036__p3184131564415">For example, if you configured a grayscale policy based on the request content for service <strong id="asm_01_0036__b960115943102415">reviews</strong> and did not transfer the HTTP request header information in the service code, the grayscale policy will not take effect when you send requests to service <strong id="asm_01_0036__b910678144102415">productpage</strong>.</p>
<p id="asm_01_0036__p8184815194414">The reason is that when the <strong id="asm_01_0036__b13915193132120">productpage</strong> service calls the <strong id="asm_01_0036__b1592293112212">reviews</strong> service, the header information of the HTTP request you sent to <strong id="asm_01_0036__b99231931132113">productpage</strong> will be lost. As a result, the <strong id="asm_01_0036__b20926133182113">reviews</strong> service receives a request without the header information. The grayscale policy will not take effect.</p>
</div></div>
</p></li><li id="asm_01_0036__li17696734191613"><span>Click <span class="uicontrol" id="asm_01_0036__uicontrol7839138133516"><b>Deliver Policy</b></span>.</span><p><p id="asm_01_0036__p1375153681612">It takes several seconds for a grayscale policy to take effect. You can view the traffic monitoring of the service and the health monitoring of the original version and grayscale version.</p>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0034.html">Grayscale Release</a></div>
</div>
</div>

View File

@ -1,40 +0,0 @@
<a name="asm_01_0037"></a><a name="asm_01_0037"></a>
<h1 class="topictitle1">Basic Operations on a Grayscale Task</h1>
<div id="body0000001083233778"><div class="section" id="asm_01_0037__section1132195261519"><h4 class="sectiontitle">Description</h4><p id="asm_01_0037__p192151613161">Basic operations on a grayscale version are performed by modifying the configuration of the DestinationRule and VirtualService resources of Istio. After the modification is complete, wait for about 10 seconds for the new policy to take effect.</p>
</div>
<div class="section" id="asm_01_0037__section13277131491720"><h4 class="sectiontitle">Modifying the Traffic Policy of a Grayscale Version</h4><p id="asm_01_0037__p103820313582"><strong id="asm_01_0037__b6994123265817">Modifying a grayscale policy that is based on traffic ratio</strong></p>
<p id="asm_01_0037__p954314915568">For such a grayscale policy that is based on traffic ratio, you can gradually increase the traffic ratio of the grayscale version to avoid service risks caused by direct traffic switchover. To change the traffic ratio, perform the following steps:</p>
<ol id="asm_01_0037__ol22602493585"><li id="asm_01_0037__li172608490583"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0037__li1685515685910"><span>In the navigation pane, choose <strong id="asm_01_0037__b1198257152102457">Grayscale Release</strong>. Then click the target canary release task.</span></li><li id="asm_01_0037__li119651731195914"><span>On the <span class="uicontrol" id="asm_01_0037__uicontrol15603542195919"><b>Configure Traffic Policy</b></span> page, set the traffic ratio of the grayscale version.</span><p><p id="asm_01_0037__p204971340517">If the traffic ratio of the grayscale version is set to <strong id="asm_01_0037__b1049686697102457">x</strong>, the traffic ratio of the original version is automatically adjusted to <strong id="asm_01_0037__b1249862318102457">100-x</strong>.</p>
</p></li><li id="asm_01_0037__li1654913119011"><span>Click <strong id="asm_01_0037__b2088803477102457">Deliver Policy</strong>.</span></li></ol>
<p id="asm_01_0037__p229215343582"><strong id="asm_01_0037__b2085653513584">Modifying a grayscale policy that is based on request content</strong></p>
<p id="asm_01_0037__p78315545421">With such a policy, a grayscale version can be accessed only when the traffic meets the rules based on Cookies, Headers, Queries, Allowed Operating Systems, and Allowed Browsers. In real-world use cases, rules may be modified for multiple times to fully verify the performance of the grayscale version.</p>
<ol id="asm_01_0037__ol63435402427"><li id="asm_01_0037__li83431840114212"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0037__li1343134014429"><span>In the navigation pane on the left, choose <strong id="asm_01_0037__b808078738102457">Grayscale Release</strong> and click the target canary release task.</span></li><li id="asm_01_0037__li43433409426"><span>On the <span class="uicontrol" id="asm_01_0037__uicontrol221028061102457"><b>Configure Traffic Policy</b></span> page, reconfigure <strong id="asm_01_0037__b158529202102457">Cookie</strong>, <strong id="asm_01_0037__b1274928578102457">Header</strong>, <strong id="asm_01_0037__b1679842724102457">Query</strong>, <strong id="asm_01_0037__b227798411102457">Allowed OS</strong>, and <strong id="asm_01_0037__b323640813102457">Allowed Browser</strong>.</span></li><li id="asm_01_0037__li134315402422"><span>Click <strong id="asm_01_0037__b1247868421102457">Deliver Policy</strong>.</span></li></ol>
</div>
<div class="section" id="asm_01_0037__section1198719955819"><h4 class="sectiontitle">Switching the Grayscale Policy Type</h4><p id="asm_01_0037__p1938319221655">You can change the type of a grayscale policy from <span class="uicontrol" id="asm_01_0037__uicontrol196956419398"><b>based on request content</b></span> to <span class="uicontrol" id="asm_01_0037__uicontrol8517310113911"><b>based on traffic ratio</b></span> and vice versa. After this operation is complete, all configured rules become invalid and all traffic is redistributed based on the new policy.</p>
<div class="notice" id="asm_01_0037__note084791961611"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="asm_01_0037__p071154481611">Grayscale policies can be changed only for running tasks. After a grayscale version is released (that is, the new version completely takes over the traffic and the old version has been brought offline), its grayscale policy cannot be reconfigured.</p>
</div></div>
<ol id="asm_01_0037__ol1210818591352"><li id="asm_01_0037__li52621017101914"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0037__li46935210529"><span>In the navigation pane on the left, choose <strong id="asm_01_0037__b245738102102457">Grayscale Release</strong> and click the target canary release task.</span></li><li id="asm_01_0037__li196067405229"><span>On the <span class="uicontrol" id="asm_01_0037__uicontrol85896715214"><b>Configure Traffic Policy</b></span> page, change the policy type.</span></li><li id="asm_01_0037__li188191539102411"><span>Click <strong id="asm_01_0037__b1743078927102457">Deliver Policy</strong>.</span></li></ol>
</div>
<div class="section" id="asm_01_0037__section124701017142211"><h4 class="sectiontitle">Taking Over All Traffic</h4><p id="asm_01_0037__p772618508120">After you click <span class="uicontrol" id="asm_01_0037__uicontrol6726125018123"><b>Take Over All Traffic</b></span>, the original version or grayscale version takes over all traffic.</p>
<ol id="asm_01_0037__ol11726175016122"><li id="asm_01_0037__li590412592365"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0037__li167261550131217"><span>In the navigation pane on the left, choose <strong id="asm_01_0037__b2072504440102457">Grayscale Release</strong> and click the target grayscale release task.</span></li><li id="asm_01_0037__li11726450171215"><span>On the <strong id="asm_01_0037__b675106888102457">Monitor and Manage Traffic</strong> page, click <strong id="asm_01_0037__b2027459733102457">Take Over All Traffic</strong> next to the target version.</span></li><li id="asm_01_0037__li107261550141217"><span>In the displayed dialog box, click <strong id="asm_01_0037__b313926256102457">OK</strong>.</span></li></ol>
</div>
<div class="section" id="asm_01_0037__section315312842215"><h4 class="sectiontitle">Terminating a Grayscale Release Task</h4><p id="asm_01_0037__p12870125843218">After the grayscale version takes over all traffic, you can terminate the grayscale task. After the grayscale task is canceled, the original version will be brought offline, and all workloads and Istio configuration resources will be deleted.</p>
<ol id="asm_01_0037__ol758780709"><li id="asm_01_0037__li10929204883211"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0037__li142039178448"><span>In the navigation pane on the left, choose <strong id="asm_01_0037__b2104194791102457">Grayscale Release</strong> and click the target grayscale release task.</span></li><li id="asm_01_0037__li17930204863217"><span>On the <strong id="asm_01_0037__b287496591102457">Monitor and Manage Traffic</strong> page, click <strong id="asm_01_0037__b269083596102457">Take Over All Traffic</strong> next to the grayscale version.</span></li><li id="asm_01_0037__li593017482325"><span>Click <strong id="asm_01_0037__b145186320102457">Terminate Task</strong> in the lower right corner.</span></li><li id="asm_01_0037__li940153111410"><span>In the displayed dialog box, click <strong id="asm_01_0037__b707808679102457">OK</strong>.</span><p><p id="asm_01_0037__p74963681419">You can go to the <strong id="asm_01_0037__b1712159922102457">Terminated Tasks</strong> tab page to view the finished grayscale task. The <strong id="asm_01_0037__b628015301102457">Release Result</strong> is <strong id="asm_01_0037__b686986172102457">Released successfully</strong>.</p>
</p></li></ol>
</div>
<div class="section" id="asm_01_0037__section14397841183619"><h4 class="sectiontitle">Canceling a Grayscale Release Task</h4><p id="asm_01_0037__p172641546103619">After the original version takes over all traffic, you can cancel the grayscale task.</p>
<ol id="asm_01_0037__ol614993610209"><li id="asm_01_0037__li17149203618204"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0037__li9602941162010"><span>In the navigation pane on the left, choose <strong id="asm_01_0037__b758139008102457">Grayscale Release</strong> and click the target grayscale release task.</span></li><li id="asm_01_0037__li68361823123315"><span>On the <strong id="asm_01_0037__b43010898102457">Monitor and Manage Traffic</strong> page, click <strong id="asm_01_0037__b765831614102457">Take Over All Traffic</strong> next to the original version.</span></li><li id="asm_01_0037__li31089354275"><span>Click <strong id="asm_01_0037__b651501629102457">Cancel Task</strong> in the lower right corner. You can also click <span><img id="asm_01_0037__image811561310322" src="en-us_image_0000001209978068.png"></span> in the upper right corner of a task in the grayscale task list.</span></li><li id="asm_01_0037__li133111045142015"><span>In the displayed dialog box, click <strong id="asm_01_0037__b500762591102457">OK</strong>.</span><p><p id="asm_01_0037__p1445312193414">You can go to the <strong id="asm_01_0037__b1319872632102457">Terminated Tasks</strong> tab page to view the finished grayscale task. The <strong id="asm_01_0037__b1291505820102457">Release Result</strong> is <strong id="asm_01_0037__b1932649443102457">Released canceled</strong>.</p>
</p></li></ol>
</div>
<div class="section" id="asm_01_0037__section15383135483517"><h4 class="sectiontitle">Viewing Terminated Grayscale Release Tasks</h4><p id="asm_01_0037__p139585417360">You can view canceled and finished grayscale tasks on the <strong id="asm_01_0037__b1420952114102457">Terminated Tasks</strong> tab page.</p>
<ol id="asm_01_0037__ol499611672411"><li id="asm_01_0037__li599615692414"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0037__li1261451182417"><span>In the navigation pane on the left, choose <strong id="asm_01_0037__b2092000304102457">Grayscale Release</strong> and click the <strong id="asm_01_0037__b850199559102457">Terminated Tasks</strong> tab page.</span><p><p id="asm_01_0037__p8782155210475">You can view the release task name, release result, service, and release time, and delete a terminated task.</p>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0034.html">Grayscale Release</a></div>
</div>
</div>

View File

@ -1,21 +0,0 @@
<a name="asm_01_0038"></a><a name="asm_01_0038"></a>
<h1 class="topictitle1">Mesh Configuration</h1>
<div id="body0000001111911772"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="asm_01_0039.html">Overview</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0041.html">Sidecar Management</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0091.html">Istio Resource Management</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="asm_01_0123.html">Service Mesh Extension</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="en-us_topic_0000001627845328.html">User Guide</a></div>
</div>
</div>

View File

@ -1,14 +0,0 @@
<a name="asm_01_0039"></a><a name="asm_01_0039"></a>
<h1 class="topictitle1">Overview</h1>
<div id="body0000001130251799"><p id="asm_01_0039__p4238151805917">Mesh configuration provides cluster management, sidecar management, Istio resource management, and upgrade capabilities.</p>
<p id="asm_01_0039__p163921786389">The <span class="keyword" id="asm_01_0039__keyword131251951123817">mesh control plane</span> workloads inject and manage sidecars of data plane pods, deliver policies and configurations, and collect monitoring data. Sidecars work with service containers in data plane pods, and they are in charge of routing and forwarding, traffic policy configuration, and monitoring data collection.</p>
<p id="asm_01_0039__p1536713311506">The functions of each tab page in <strong id="asm_01_0039__b177799347410267">Mesh Configuration</strong> are as follows:</p>
<ul id="asm_01_0039__ul9284111135016"><li id="asm_01_0039__li15284151145016"><strong id="asm_01_0039__b10692151818228">Basic Information</strong>: You can view the mesh name, ID, status, edition, version, observability, creation time, and clusters with the mesh enabled.</li><li id="asm_01_0039__li528481114502"><strong id="asm_01_0039__b19089497110267">Sidecar Management</strong>: You can view information about all workloads injected with sidecars, perform sidecar injection, and configure sidecar resource limits. For details, see <a href="asm_01_0041.html">Sidecar Management</a>.</li><li id="asm_01_0039__li1928421195014"><strong id="asm_01_0039__b31091261810267">Istio Resource Management</strong>: You can view all Istio resources (such as VirtualService and DestinationRule), create Istio resources in YAML or JSON format, and modify existing Istio resources. For details, see <a href="asm_01_0091.html">Istio Resource Management</a>.</li><li id="asm_01_0039__li5725212101718"><strong id="asm_01_0039__b1280153963219">Upgrade</strong>: You can upgrade the version of a service mesh.</li><li id="asm_01_0039__li95496517363">Mesh extension: provides the observability configuration. For details, see <a href="asm_01_0123.html">Service Mesh Extension</a>.</li></ul>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0038.html">Mesh Configuration</a></div>
</div>
</div>

View File

@ -1,41 +0,0 @@
<a name="asm_01_0041"></a><a name="asm_01_0041"></a>
<h1 class="topictitle1">Sidecar Management</h1>
<div id="body0000001083107046"><p id="asm_01_0041__p84481631152714">On the <strong id="asm_01_0041__b712243010246">Sidecar Management</strong> page, you can view information about all workloads injected with sidecars, perform sidecar injection, and configure sidecar resource limits.</p>
<div class="section" id="asm_01_0041__section65931513505"><a name="asm_01_0041__section65931513505"></a><a name="section65931513505"></a><h4 class="sectiontitle">Injecting a Sidecar</h4><p id="asm_01_0041__p1820212632111">You can view the namespace and cluster to which the injected sidecar belongs. If no sidecar has been injected or you need to inject sidecar for more namespaces, perform the following operations:</p>
<ol id="asm_01_0041__ol13641175216560"><li id="asm_01_0041__li683575385614"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0041__li987742619292"><span>In the navigation pane, choose <strong id="asm_01_0041__b23024965310246">Mesh Configuration</strong>. Then click the <strong id="asm_01_0041__b79698741510246">Sidecar Management</strong> tab.</span></li><li id="asm_01_0041__li122863200343"><span>Click <strong id="asm_01_0041__b212025475310246">Sidecar Management</strong>, select a namespace, determine whether to restart the existing services, and click <strong id="asm_01_0041__b163426572510246">OK</strong>.</span><p><ul id="asm_01_0041__ul1213414267113"><li id="asm_01_0041__li151346264113"><strong id="asm_01_0041__b25961104110246">Namespace</strong>: Select one or more namespaces. The system labels the namespaces with <strong id="asm_01_0041__b86877081210246">istio-injection=enabled</strong>.</li><li id="asm_01_0041__li1283731219"><strong id="asm_01_0041__b176898850910246">Restart Existing Services</strong><p id="asm_01_0041__p16974516217"><span><img id="asm_01_0041__image1251935012150" src="en-us_image_0000001930216052.png"></span>: Pods of the existing services in the namespace will be restarted, which will temporarily interrupt your services. The <strong id="asm_01_0041__b35079130010246">istio-proxy</strong> sidecar is automatically injected into the pods of the existing services.</p>
<p id="asm_01_0041__p45731657222"><span><img id="asm_01_0041__image1736110311031" src="en-us_image_0000001256463368.png"></span>: The <strong id="asm_01_0041__b19208133718302">istio-proxy</strong> sidecar cannot be automatically injected into the pods of the existing services. You need to manually restart the workloads on the CCE console to inject the sidecar. Whether to restart existing services affects only existing services. If the namespaces are labeled with <strong id="asm_01_0041__b1545117533412">istio-injection=enabled</strong>, sidecars will be automatically injected into new pods.</p>
</li><li id="asm_01_0041__li975935132613"><strong id="asm_01_0041__b4935192843517">Traffic Interception Settings</strong><div class="note" id="asm_01_0041__note130182311537"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="asm_01_0041__p5301112325320">By default, sidecars intercept all inbound and outbound traffic of pods. You can modify the default traffic rules in <strong id="asm_01_0041__b15949143017359">Traffic Interception Settings</strong>.</p>
</div></div>
<p id="asm_01_0041__p10174123175619"><strong id="asm_01_0041__b97421432123511">Inbound Ports</strong>: Inbound ports separated by commas (,). You can use this field to specify the ports that will be included or excluded for inbound traffic redirection.</p>
<ul id="asm_01_0041__ul19912133010017"><li id="asm_01_0041__li891233017016"><strong id="asm_01_0041__b13234113463514">Include only specified ports</strong> means that the traffic to services in a service mesh over specified ports will be redirected to the sidecar.</li></ul>
<ul id="asm_01_0041__ul192771149401"><li id="asm_01_0041__li427774912017"><strong id="asm_01_0041__b954213352357">Exclude only specified ports</strong> means that the traffic to services in a service mesh over the ports except the specified ports will be redirected to the sidecar.</li></ul>
<p id="asm_01_0041__p1492182965613"><strong id="asm_01_0041__b1262643613359">Outbound Ports</strong>: Outbound ports separated by commas (,). You can use this field to specify the ports that will be included or excluded for outbound traffic redirection.</p>
<ul id="asm_01_0041__ul887675114113"><li id="asm_01_0041__li208771351116"><strong id="asm_01_0041__b20581938193512">Include only specified ports</strong> means that the traffic from services in a service mesh over specified ports will be redirected to the sidecar.</li></ul>
<ul id="asm_01_0041__ul91091571217"><li id="asm_01_0041__li9109125715112"><strong id="asm_01_0041__b8850163916356">Exclude only specified ports</strong> means that the traffic from services in a service mesh over the ports except the specified ports will be redirected to the sidecar.</li></ul>
<p id="asm_01_0041__p14346164816561"><strong id="asm_01_0041__b13849134010355">Outbound IP Ranges</strong>: IP address ranges separated by commas (,) in CIDR format. You can use this field to specify the IP ranges that will be excluded from redirection to the sidecar.</p>
<ul id="asm_01_0041__ul13301528313"><li id="asm_01_0041__li5311221939"><strong id="asm_01_0041__b922854213514">Include only specified IP ranges</strong> means that the traffic from specified IP ranges will be redirected to the sidecar.</li></ul>
<ul id="asm_01_0041__ul112121251130"><li id="asm_01_0041__li42121455318"><strong id="asm_01_0041__b19623164303511">Exclude only specified IP ranges</strong> means that the traffic from IP ranges except the specified IP ranges will be redirected to the sidecar.</li></ul>
</li></ul>
<div class="note" id="asm_01_0041__note1279618584133"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="asm_01_0041__ul97451116162713"><li id="asm_01_0041__li1974521615271">If the system displays a message indicating that modification of namespace injection is not enabled in the following clusters, you need to run the <strong id="asm_01_0041__b11447123395415">kubectl</strong> command to enable namespace injection. For details, see <a href="asm_faq_0036.html">How Do I Enable Namespace Injection for a Cluster?</a>.</li><li id="asm_01_0041__li12746181642719">After sidecar injection is enabled for a namespace of a cluster, sidecars are automatically injected for pods of all workloads in the namespace. If you do not want to inject sidecars for some workloads, see <a href="asm_faq_0037.html">How Do I Disable Sidecar Injection for Workloads?</a>.</li></ul>
</div></div>
</p></li></ol>
</div>
<div class="section" id="asm_01_0041__section259115115019"><h4 class="sectiontitle">Viewing Workload Details</h4><p id="asm_01_0041__p559725563016">The list displays all workloads created in the clusters managed by a mesh. You can view the workload name, cluster to which the workload belongs, service, and sidecar information of the workload, including the sidecar name, version, status, CPU usage, and memory usage. The procedure is as follows:</p>
</div>
<ol id="asm_01_0041__ol1959415165017"><li id="asm_01_0041__li98334469347"><span>In the drop-down list and search box in the upper right corner of the workload list, select a cluster and namespace, and enter the target workload name.</span></li><li id="asm_01_0041__li6382131161915"><span>Click <span><img id="asm_01_0041__image43913457208" src="en-us_image_0000001200574170.png"></span> in front of the workload to view the sidecar information of the workload.</span><p><p id="asm_01_0041__p742812107217">If the system displays a message indicating that there is no sidecar in the workload, no sidecar has been injected into the namespace to which the workload belongs. In this case, you can inject one into the namespace. For details, see <a href="#asm_01_0041__section65931513505">Injecting a Sidecar</a>.</p>
</p></li></ol>
<div class="section" id="asm_01_0041__section1260131575013"><h4 class="sectiontitle">Configuring Sidecar Resource Limits</h4><p id="asm_01_0041__p129031261127">You can configure the upper and lower limits of CPU and memory resources for sidecars (istio-proxy container). If the upper and lower resource limits are not set for a workload, a resource leak of this workload will make resources unavailable for other workloads deployed on the same node. In addition, workloads that do not have upper and lower resource limits cannot be accurately monitored.</p>
<p id="asm_01_0041__p2666114504610">The default upper and lower limits of sidecar resources are as follows:</p>
<ul id="asm_01_0041__ul1705179111210"><li id="asm_01_0041__li0705159111220">CPU (core): 0.1 to 2 (included)</li><li id="asm_01_0041__li17053919120">MEM (MiB): 128 to 1,024 (included)</li></ul>
<p id="asm_01_0041__p73903163125">To change the value, perform the following operations:</p>
<ol id="asm_01_0041__ol716113613716"><li id="asm_01_0041__li4161136476"><span>Click <strong id="asm_01_0041__b192440389810246">Set Resource Limit</strong> in the <strong id="asm_01_0041__b195764109210246">Operation</strong> column of the target workload. You can also select multiple workloads and click <strong id="asm_01_0041__b154266620810246">Set Resource Limit</strong> in the upper left corner of the workload list to configure sidecar resource limits in batches.</span><p><ul id="asm_01_0041__ul11852132105414"><li id="asm_01_0041__li25681305545">Minimum CPU: CPU request, the minimum number of CPU cores required by a container. Resources are scheduled for the container based on this value. The container can be scheduled to a node only when the total available CPU on the node is greater than or equal to the number of CPU cores applied for the container.</li><li id="asm_01_0041__li17568143045420">Maximum CPU: CPU limit, the maximum number of CPU cores required by a container.</li><li id="asm_01_0041__li155691330135411">Minimum memory: memory request, the minimum amount of memory required by a container. Resources are scheduled for the container based on this value. The container can be scheduled to this node only when the total available memory on the node is greater than or equal to the requested container memory.</li><li id="asm_01_0041__li95692304544">Maximum memory: memory limit, the maximum amount of memory required by a container. When the memory usage exceeds the specified memory limit, the pod may be restarted, which affects the normal use of the workload.</li></ul>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0038.html">Mesh Configuration</a></div>
</div>
</div>

View File

@ -1,16 +0,0 @@
<a name="asm_01_0048"></a><a name="asm_01_0048"></a>
<h1 class="topictitle1">Configuring Istio Resources Using YAML</h1>
<div id="body0000001379514653"><p id="asm_01_0048__p16819323557">You can modify all Istio resources (such as VirtualService and DestinationRule) of a service in YAML or JSON format on the <strong id="asm_01_0048__b17594115103815">Istio Resource Management</strong> page. You can also create new Istio resources.</p>
<div class="section" id="asm_01_0048__section126909124113"><h4 class="sectiontitle">Modifying an Existing Istio Resource</h4><ol id="asm_01_0048__ol64160411608"><li id="asm_01_0048__li1641617411906"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0048__li136201456709"><span>In the navigation pane, choose <strong id="asm_01_0048__b211850665843321">Mesh Configuration</strong>. Then click the <strong id="asm_01_0048__b69824789943321">Istio Resource Management</strong> tab.</span></li><li id="asm_01_0048__li99868151614"><span>In the drop-down list, select the Istio resource type (for example, Istio Resources: virtualservices) and the namespace to which the resource belongs.</span></li><li id="asm_01_0048__li12625134614345"><span>Click <strong id="asm_01_0048__b72038383043321">Edit</strong> in the <strong id="asm_01_0048__b154148889643321">Operation</strong> column. In the right pane, modify related configurations and click <strong id="asm_01_0048__b184844462043321">OK</strong>.</span><p><p id="asm_01_0048__p197224743417">The configuration file can be displayed in YAML or JSON format and can be downloaded to the local PC.</p>
</p></li></ol>
</div>
<div class="section" id="asm_01_0048__section1969114121917"><h4 class="sectiontitle">Creating an Istio Resource</h4><ol id="asm_01_0048__ol1234918337357"><li id="asm_01_0048__li33491533103510"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0048__li14349193313359"><span>In the navigation pane, choose <strong id="asm_01_0048__b198816217464">Mesh Configuration</strong>. Then click the <strong id="asm_01_0048__b488110218464">Istio Resource Management</strong> tab.</span></li><li id="asm_01_0048__li17349123316357"><span>Click <strong id="asm_01_0048__b31118013243321">Create</strong> in the upper left corner of the list.</span></li><li id="asm_01_0048__li9349233133511"><span>Edit the file in the right pane, or click <strong id="asm_01_0048__b184815411432">Import File</strong> to upload the edited YAML or JSON file.</span></li><li id="asm_01_0048__li136335783815"><span>Confirm the file content and click <strong id="asm_01_0048__b89007089143321">OK</strong>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0091.html">Istio Resource Management</a></div>
</div>
</div>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +0,0 @@
<a name="asm_01_0051"></a><a name="asm_01_0051"></a>
<h1 class="topictitle1">Viewing Traffic Monitoring</h1>
<div id="body0000001083395158"><div class="section" id="asm_01_0051__section8518326102519"><h4 class="sectiontitle">Scenario</h4><p id="asm_01_0051__p948651862318">In the traffic management window, you can view the traffic monitoring data of the last hour, including RPS, success rate, and request latency.</p>
</div>
<div class="section" id="asm_01_0051__section127451436172517"><h4 class="sectiontitle">Procedure</h4><ol id="asm_01_0051__ol20995184283915"><li id="asm_01_0051__li18456728440"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0051__li2307164162712"><span>In the navigation pane, choose <strong id="asm_01_0051__b175996716557">Service Management</strong>. In the upper right corner of the list, select the namespace that your services belong to.</span></li><li id="asm_01_0051__li14961452719"><span>Locate the target service and click <strong id="asm_01_0051__b77661216173511">Manage Traffic</strong> in the <strong id="asm_01_0051__b877220163358">Operation</strong> column. In the window that slides out from the right, view the traffic monitoring data of the last hour.</span><p><div class="fignone" id="asm_01_0051__fig13667115162916"><span class="figcap"><b>Figure 1 </b>Traffic monitoring</span><br><span><img id="asm_01_0051__image86673516296" src="en-us_image_0000001280416429.png"></span></div>
</p></li><li id="asm_01_0051__li148811724162819"><span>After real-time monitoring is enabled, data is dynamically refreshed every minute.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0085.html">Traffic Management</a></div>
</div>
</div>

View File

@ -1,14 +0,0 @@
<a name="asm_01_0052"></a><a name="asm_01_0052"></a>
<h1 class="topictitle1">Changing a Traffic Policy</h1>
<div id="body0000001083235534"><div class="section" id="asm_01_0052__section18497174482412"><h4 class="sectiontitle">Scenario</h4><p id="asm_01_0052__p126341845122418">You can change the settings of a configured traffic policy. For example, you can change the load balancing algorithm from <span class="parmvalue" id="asm_01_0052__parmvalue227718914386"><b>Round robin</b></span> to <span class="parmvalue" id="asm_01_0052__parmvalue3283179183810"><b>Random</b></span>.</p>
</div>
<div class="section" id="asm_01_0052__section2340125512411"><h4 class="sectiontitle">Procedure</h4><ol id="asm_01_0052__ol75076624518"><li id="asm_01_0052__li359213189212"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0052__li34261121123718"><span>In the navigation pane, choose <span class="uicontrol" id="asm_01_0052__uicontrol10670066152041"><b>Service Management</b></span>. Locate the service whose traffic policy needs to be modified and click <span class="uicontrol" id="asm_01_0052__uicontrol159025963452041"><b>Manage Traffic</b></span> in the <strong id="asm_01_0052__b149172189152041">Operation</strong> column. In the window that slides out from the right, modify traffic policies.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0085.html">Traffic Management</a></div>
</div>
</div>

View File

@ -1,41 +0,0 @@
<a name="asm_01_0056"></a><a name="asm_01_0056"></a>
<h1 class="topictitle1">Adding a Gateway</h1>
<div id="body0000001168400365"><p id="asm_01_0056__p1321231184215">A gateway enables unified entry, traffic management, security, and service isolation.</p>
<div class="section" id="asm_01_0056__section141144268498"><h4 class="sectiontitle">Prerequisites</h4><p id="asm_01_0056__p119641350155219">Gateways use load balancers of ELB to provide network access. Before adding a gateway, you need to create a load balancer.</p>
<p id="asm_01_0056__p113671654155016">When creating a load balancer, you need to ensure that it belongs to the same VPC as the cluster.</p>
</div>
<div class="section" id="asm_01_0056__section15169750114920"><h4 class="sectiontitle">Procedure</h4><ol id="asm_01_0056__ol4817103154612"><li id="asm_01_0056__li1433614120526"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0056__li218910061117"><span>In the navigation pane on the left, choose <strong id="asm_01_0056__b766458229102515">Gateway Management</strong> and click <strong id="asm_01_0056__b966014901102515">Add Gateway</strong>.</span></li><li id="asm_01_0056__li65921447162912"><span>Configure the following parameters.</span><p><ul id="asm_01_0056__ul1359211474297"><li id="asm_01_0056__li139001750192815"><strong id="asm_01_0056__b3657180102915">Gateway Name</strong><p id="asm_01_0056__p15441558132814">Enter a gateway name. Enter 4 to 59 characters starting with a lowercase letter and ending with a lowercase letter or digit. Only lowercase letters, digits, and hyphens (-) are allowed.</p>
</li><li id="asm_01_0056__li205096299321"><strong id="asm_01_0056__b1576717357329">Cluster</strong><p id="asm_01_0056__p1719143716324">Select the cluster to which the gateway belongs.</p>
</li><li id="asm_01_0056__li1627847173510"><strong id="asm_01_0056__b72023510139">Load Balancer</strong><ul id="asm_01_0056__ul198721433124110"><li id="asm_01_0056__li1373914385357">Gateways use shared load balancers of ELB for the access over both public and private IPv4 networks.</li></ul>
</li><li id="asm_01_0056__li137621212344"><strong id="asm_01_0056__b82802248345">Listener</strong><p id="asm_01_0056__p103982038193113">Gateways configure a listener for the load balancer, which listens to requests from the load balancer and distributes traffic.</p>
<ul id="asm_01_0056__ul1776173623113"><li id="asm_01_0056__li196722183918"><strong id="asm_01_0056__b1876120366312">External Protocol</strong><p id="asm_01_0056__p12761163618313">Select one to match the protocol type of your service. <strong id="asm_01_0056__b1196471084102515">HTTP</strong>, <strong id="asm_01_0056__b727748035102515">gRPC</strong>, <strong id="asm_01_0056__b2109712016102515">TCP</strong>, <strong id="asm_01_0056__b807938525102515">TLS</strong>, and <strong id="asm_01_0056__b1914909991102515">HTTPS</strong> are supported.</p>
</li><li id="asm_01_0056__li776153618311"><strong id="asm_01_0056__b15761136173112">External Port</strong><p id="asm_01_0056__p17761036193110">Enter the port number exposed in the Load Balancer Service address. The port number can be specified randomly.</p>
</li><li id="asm_01_0056__li10761203617318"><strong id="asm_01_0056__b2076153618317">TLS Termination</strong><p id="asm_01_0056__p894180479">If <strong id="asm_01_0056__b1792295615209">External Protocol</strong> is <strong id="asm_01_0056__b1068528152117">HTTPS</strong>, <strong id="asm_01_0056__b1655716263218">TLS Termination</strong> is enabled and cannot be disabled.</p>
<p id="asm_01_0056__p19924132318564">If <strong id="asm_01_0056__b177679371212">External Protocol</strong> is <strong id="asm_01_0056__b3767173722110">TLS</strong>, you can enable or disable <strong id="asm_01_0056__b16767173718211">TLS Termination</strong>. If you enable TLS termination, bind a certificate to support TLS-based data transmission encryption and authentication. If you disable TLS termination, encrypted TLS data will be directly forwarded. </p>
</li><li id="asm_01_0056__li57615366313"><strong id="asm_01_0056__b676114361312">Secret Certificate</strong><ul id="asm_01_0056__ul17984193594512"><li id="asm_01_0056__li1951811337458">When configuring a TLS protocol with TLS termination enabled, you need to bind a certificate to support TLS-based data transmission encryption and authentication.</li><li id="asm_01_0056__li714953811459">When configuring the HTTPS protocol, you need to bind a secret certificate.</li></ul>
</li><li id="asm_01_0056__li185755272428"><strong id="asm_01_0056__b33038550462">Earliest TLS Version Supported/Latest TLS Version Supported</strong><p id="asm_01_0056__p16437125165612">When configuring a TLS protocol with TLS termination enabled or an HTTPS protocol, you can select the earliest and latest TLS versions.</p>
</li></ul>
</li></ul>
</p></li><li id="asm_01_0056__li35552319193"><span>(Optional) Configure routing parameters.</span><p><p id="asm_01_0056__p350315261000">When the access address of a request matches the forwarding policy (which consists of a domain name and URL. If the domain name is left empty, the ELB IP address is used by default), the request is forwarded to the corresponding target Service for processing. Click <span><img id="asm_01_0056__image3642183711263" src="en-us_image_0000001209954130.png"></span>. The <strong id="asm_01_0056__b28836919618">Add Route</strong> dialog box is displayed.</p>
<ul id="asm_01_0056__ul43052021171916"><li id="asm_01_0056__li103041421111912"><strong id="asm_01_0056__b20304152120193">Domain Name</strong><p id="asm_01_0056__p1330482114196">Enter the external domain name of the service. If this parameter is left blank, the IP address of the load balancer is used by default. If you enable TLS termination, enter a domain name configured in the certificate for SNI domain name verification.</p>
</li><li id="asm_01_0056__li1230512118195"><strong id="asm_01_0056__b3304192131916">URL Matching Rule</strong><ul id="asm_01_0056__ul43041021141915"><li id="asm_01_0056__li193041021111910"><strong id="asm_01_0056__b1640956582102515">Prefix</strong>: A URL can be accessed if its prefix is the same as that you configure. For example, <strong id="asm_01_0056__b1627472063102515">/healthz/v1</strong> and <strong id="asm_01_0056__b2009910935102515">/healthz/v2</strong>.</li><li id="asm_01_0056__li2304821181912"><strong id="asm_01_0056__b167861112172215">Exact</strong>: Only the URL that fully matches the values you set can be accessed. For example, if the URL is set to <strong id="asm_01_0056__b1296786758102515">/healthz</strong>, only <strong id="asm_01_0056__b1008928963102515">/healthz</strong> can be accessed.</li></ul>
</li><li id="asm_01_0056__li1305192141912"><strong id="asm_01_0056__b193051421101911">URL</strong><p id="asm_01_0056__p123051212194">Mapping URL supported by the service, for example, <strong id="asm_01_0056__b286376356102515">/example</strong>.</p>
</li><li id="asm_01_0056__li133056214197"><strong id="asm_01_0056__b130522112199">Namespace</strong><p id="asm_01_0056__p18305421111919">Select the namespace to which the gateway belongs.</p>
</li><li id="asm_01_0056__li33051621171912"><strong id="asm_01_0056__b11305121111916">Target Service</strong><p id="asm_01_0056__p134063347264">Service of the gateway. Select a value from the drop-down list box. The target service is filtered based on the corresponding gateway protocol. For details about the filtering rules, see <a href="asm_faq_0035.html">Why Cannot I Select the Corresponding Service When Adding a Route?</a></p>
<p id="asm_01_0056__p18216183513118">The service which configuration diagnosis fails cannot be selected. You need to fix the issues first. For details, see <a href="asm_01_0060.html">Manual Fixing Items</a> or <a href="asm_01_0065.html">Auto Fixing Items</a>.</p>
</li><li id="asm_01_0056__li10305621141916"><strong id="asm_01_0056__b5305121111910">Access Port</strong><p id="asm_01_0056__p9305182112191">Only ports that match external protocols are displayed.</p>
</li><li id="asm_01_0056__li8016197318"><strong id="asm_01_0056__b1986112519313">Rewrite</strong><p id="asm_01_0056__p42700201559">(This parameter is configurable when the external protocol is HTTP.)</p>
<p id="asm_01_0056__p149531923439">Rewrite the HTTP URI and host/authority header before forwarding. Disabled by default. To enable it, configure the following parameters:</p>
<ul id="asm_01_0056__ul147951020181917"><li id="asm_01_0056__li279572091910">URI: This value is used to rewrite the URI or prefix.</li><li id="asm_01_0056__li3390152618199">Host/Authority Header: This value is used to rewrite the HTTP host/authority header.</li></ul>
</li></ul>
</p></li><li id="asm_01_0056__li19910958562"><span>Click <span class="uicontrol" id="asm_01_0056__uicontrol169158519564"><b>OK</b></span>.</span><p><p id="asm_01_0056__p688514211217">You can obtain the external network access address of the service in the <strong id="asm_01_0056__b840925467102515">Service Management</strong> page.</p>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0033.html">Gateway Management</a></div>
</div>
</div>

View File

@ -1,27 +0,0 @@
<a name="asm_01_0057"></a><a name="asm_01_0057"></a>
<h1 class="topictitle1">Adding a Route</h1>
<div id="body0000001121400726"><div class="section" id="asm_01_0057__section195155335313"><h4 class="sectiontitle">Scenario</h4><p id="asm_01_0057__p931218541531">You can add multiple routes and configure multiple forwarding policies for a created gateway.</p>
</div>
<div class="section" id="asm_01_0057__section8243022955"><h4 class="sectiontitle">Procedure</h4><ol id="asm_01_0057__ol4817103154612"><li id="asm_01_0057__li218910061117"><span>Log in to the ASM console and click the name of the target service mesh to go to its details page.</span></li><li id="asm_01_0057__li4563349450"><span>In the navigation pane on the left, choose <strong id="asm_01_0057__b1723779989102359">Gateway Management</strong>, select the target gateway, click <span class="uicontrol" id="asm_01_0057__uicontrol1443280921102359"><b>Add Route</b></span> in the <strong id="asm_01_0057__b1193311901102359">Operation</strong> column, and configure the following parameters:</span><p><ul id="asm_01_0057__ul43052021171916"><li id="asm_01_0057__li103041421111912"><strong id="asm_01_0057__b20304152120193">Domain Name</strong><p id="asm_01_0057__p1330482114196">Enter the external domain name of the service. If this parameter is left blank, the IP address of the load balancer is used by default. If you enable TLS termination, enter a domain name configured in the certificate for SNI domain name verification.</p>
</li><li id="asm_01_0057__li1230512118195"><strong id="asm_01_0057__b3304192131916">URL Matching Rule</strong><ul id="asm_01_0057__ul43041021141915"><li id="asm_01_0057__li193041021111910"><strong id="asm_01_0057__b962008790102359">Prefix</strong>: A URL can be accessed if its prefix is the same as that you configure. For example, <strong id="asm_01_0057__b518106701102359">/healthz/v1</strong> and <strong id="asm_01_0057__b1301388330102359">/healthz/v2</strong>.</li><li id="asm_01_0057__li2304821181912"><strong id="asm_01_0057__b1070295332113">Exact</strong>: Only the URL that fully matches the values you set can be accessed. For example, if the URL is set to <strong id="asm_01_0057__b1560656592102359">/healthz</strong>, only <strong id="asm_01_0057__b592325887102359">/healthz</strong> can be accessed.</li></ul>
</li><li id="asm_01_0057__li1305192141912"><strong id="asm_01_0057__b193051421101911">URL</strong><p id="asm_01_0057__p123051212194">Mapping URL supported by the service, for example, <strong id="asm_01_0057__b1278776861102359">/example</strong>.</p>
<div class="note" id="asm_01_0057__note1841442516472"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="asm_01_0057__p19415112514478">The URLs of the same gateway must be unique.</p>
</div></div>
</li><li id="asm_01_0057__li133056214197"><strong id="asm_01_0057__b130522112199">Namespace</strong><p id="asm_01_0057__p18305421111919">Select the namespace to which the gateway belongs.</p>
</li><li id="asm_01_0057__li33051621171912"><strong id="asm_01_0057__b11305121111916">Target Service</strong><p id="asm_01_0057__p134063347264">Service of the gateway. Select a value from the drop-down list box. The target service is filtered based on the corresponding gateway protocol. For details about the filtering rules, see <a href="asm_faq_0035.html">Why Cannot I Select the Corresponding Service When Adding a Route?</a>.</p>
<p id="asm_01_0057__p18216183513118">The service which configuration diagnosis fails cannot be selected. You need to fix the issues first. For details, see <a href="asm_01_0060.html">Manual Fixing Items</a> or <a href="asm_01_0065.html">Auto Fixing Items</a>.</p>
</li><li id="asm_01_0057__li10305621141916"><strong id="asm_01_0057__b5305121111910">Access Port</strong><p id="asm_01_0057__p9305182112191">Only ports that match external protocols are displayed.</p>
</li><li id="asm_01_0057__li8016197318"><strong id="asm_01_0057__b1986112519313">Rewrite</strong><p id="asm_01_0057__p42700201559">(This parameter is configurable when the external protocol is HTTP.)</p>
<p id="asm_01_0057__p149531923439">Rewrite the HTTP URI and host/authority header before forwarding. Disabled by default. To enable it, configure the following parameters:</p>
<ul id="asm_01_0057__ul147951020181917"><li id="asm_01_0057__li279572091910">URI: This value is used to rewrite the URI or prefix.</li><li id="asm_01_0057__li3390152618199">Host/Authority Header: This value is used to rewrite the HTTP host/authority header.</li></ul>
</li></ul>
</p></li><li id="asm_01_0057__li1666416119713"><span>Click <span class="uicontrol" id="asm_01_0057__uicontrol8784608473"><b>OK</b></span>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="asm_01_0033.html">Gateway Management</a></div>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More