借助Rancher持续交付,3步实现金丝雀发布!

点击上方卡片关注公众号并设为星标✨

即可及时获取K8S干货哟


从Rancher 2.5起,Rancher借助Fleet提供了大规模交付的GitOps功能,允许用户使用GitOps的方法管理其集群的状态。


金丝雀发布是一个被软件开发者广泛使用的方法,它可以用来向一部分用户发布新版本的应用程序,并根据可用性、延迟或自定义指标等指标来扩大规模,进而为更多用户提供服务。在本文中,我们将探索如何使用持续交付来为你的应用程序工作负载执行金丝雀发布。


实际的金丝雀发布将由一个名为Flagger的项目执行。Flagger作为Kubernetes operator运行。它允许用户指定一个自定义对象,该对象会通知Flagger观察一个部署并创建额外的主要部署(primary deployment)和金丝雀部署。作为本文的一部分,我们将使用Flagger与Istio作为服务网格。


简而言之,当我们创建一个部署时,Flagger会将该部署克隆到一个主部署。然后它修改与原始部署相关的服务以指向这个新的主部署。该主部署本身会被缩减到0。


Flagger使用Istio virtualservices来执行实际的金丝雀发布。当一个新版本的应用程序被部署时,Flagger将原始部署缩减到原始规格,并将金丝雀服务关联到部署。


现在,一定比例的流量被路由到这个金丝雀服务。基于预定义的指标,Flagger开始将越来越多的流量路由到这个金丝雀服务。一旦100%的流量被迁移到金丝雀服务,主部署就会以原始部署相同的规格重新创建。


接下来,将更新virtualservice以将100%的流量返回到主服务。在流量转换之后,原始部署被缩减为0,Flagger operator等待并监控后续的部署更新。


借助Flagger执行金丝雀发布


为了开始使用Flagger,我们需要执行以下操作:


  1. 设置监控和Istio

  2. 设置Flagger和flagger-loadtest

  3. 部署一个demo程序并执行金丝雀发布


1.设置监控和Istio


为了设置monitoringistio,我们将在持续交付中设置几个ClusterGroups


监控

         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet.cattle.io/v1alpha1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">ClusterGroup</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">monitoring</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-default</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">selector</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">matchLabels</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__attr" style="box-sizing: border-box;">monitoring</span>: <span class="code-snippet__string" style="box-sizing: border-box;">enable</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">Istio</span></strong></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><br style="box-sizing: border-box;"></span></strong></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet.cattle.io/v1alpha1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">ClusterGroup</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">istio</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-default</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">selector</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">matchLabels</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__attr" style="box-sizing: border-box;">istio</span>: <span class="code-snippet__string" style="box-sizing: border-box;">enabled</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">现在,我们将设置我们的</span><span style="color: rgb(230, 25, 131);font-size: 15px;box-sizing: border-box;background-color: rgb(240, 237, 246);">monitoring</span><span style="font-size: 15px;box-sizing: border-box;">和</span><span style="color: rgb(230, 25, 131);font-size: 15px;box-sizing: border-box;background-color: rgb(240, 237, 246);">istio&nbsp;</span><span style="font-size: 15px;box-sizing: border-box;">Gitrepos以指向使用这些ClusterGroups:</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">监控repo</span></strong></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><br style="box-sizing: border-box;"></span></strong></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"></span></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet.cattle.io/v1alpha1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">GitRepo</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">monitoring</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-default</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">branch</span>: <span class="code-snippet__string" style="box-sizing: border-box;">master</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">insecureSkipTLSVerify</span>: <span class="code-snippet__string" style="box-sizing: border-box;">false</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">paths</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">monitoring</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">monitoring-crd</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">repo</span>: <span class="code-snippet__string" style="box-sizing: border-box;">https://github.com/ibrokethecloud/core-bundles</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">targets</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">clusterGroup: monitoring</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><br style="box-sizing: border-box;"></span></strong></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">Istio repo</span></strong></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet.cattle.io/v1alpha1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">GitRepo</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">istio</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-default</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">branch</span>: <span class="code-snippet__string" style="box-sizing: border-box;">master</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">insecureSkipTLSVerify</span>: <span class="code-snippet__string" style="box-sizing: border-box;">false</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">paths</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">istio</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">kiali</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">repo</span>: <span class="code-snippet__string" style="box-sizing: border-box;">https://github.com/ibrokethecloud/core-bundles</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">targets</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">clusterGroup: istio</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">为了触发部署,我们将使用所需的标签为这些ClusterGroups分配一个集群:</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
       <section>
        <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
       </section>
      </section>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;">
         <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
          <img data-ratio="0.4794922" data-w="1024" src="/upload/20e00a4a65cca9660ce1c1b634db1369.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
         </section>
        </section>
       </section>
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
         <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
        </section>
       </section>
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;">
         <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
          <img data-ratio="0.2207031" data-w="1024" src="/upload/3c33083ea1cf0dba032bb7a73af462f0.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
         </section>
        </section>
       </section>
      </section>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
       <section>
        <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
       </section>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="text-align: unset;font-size: 15px;line-height: 2;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;">在几分钟之内,监控和istio应用程序应该在指定集群上安装完毕。</p>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="margin-top: 10px;margin-bottom: 10px;text-align: left;box-sizing: border-box;max-width: 100%;">
      <section style="display: inline-block;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="display: inline-block;vertical-align: top;box-sizing: border-box;max-width: 100%;">
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
            <section style="display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="text-align: unset;display: inline-block;vertical-align: middle;color: rgb(0, 117, 168);box-sizing: border-box;max-width: 100%;">
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;">2.设置Flagger和flagger-loadtest</strong></p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;box-sizing: border-box;max-width: 100%;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="width: 0px;border-left: 8px solid rgb(0, 117, 168);border-top: 5px solid transparent;border-bottom: 5px solid transparent;margin-right: 3px;margin-left: 5px;display: inline-block;vertical-align: middle;box-sizing: border-box;max-width: 100%;">
              <section>
               <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;box-sizing: border-box;max-width: 100%;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="width: 0px;border-left: 8px solid rgb(255, 255, 255);border-top: 4px solid transparent;border-bottom: 4px solid transparent;display: inline-block;vertical-align: middle;margin-right: -9px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);box-sizing: border-box;max-width: 100%;">
              <section>
               <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="width: 0px;border-left: 10px solid rgb(0, 117, 168);border-top: 6px solid transparent;border-bottom: 6px solid transparent;display: inline-block;vertical-align: middle;box-sizing: border-box;max-width: 100%;">
              <section>
               <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
    </section>
    <section style="display: block;width: auto;vertical-align: top;line-height: 2;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">作为安装Flagger的一部分,我们将安装flagger-loadtest以帮助在我们的工作负载上生成请求。</span><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">请注意:flagger-loadtest仅在本次demo中需要。在实际应用场景中,你的应用程序将会使用真实的流量。Flagger将根据来自真实流量的指标启动切换。</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">我们将设置一个<span style="color: rgb(29, 35, 41);box-sizing: border-box;">ClusterGroup</span>金丝雀,如下所示:</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"></span></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet.cattle.io/v1alpha1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">ClusterGroup</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">canary</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-default</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">selector</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">matchLabels</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__attr" style="box-sizing: border-box;">canary</span>: <span class="code-snippet__string" style="box-sizing: border-box;">enabled</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
         <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
        </section>
       </section>
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;">
         <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
          <img data-ratio="0.1181641" data-w="1024" src="/upload/fbc8609269f3027eff25410e5d5b5fac.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
         </section>
        </section>
       </section>
      </section>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
       <section>
        <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
       </section>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="display: block;width: auto;vertical-align: top;font-size: 15px;line-height: 2;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;">现在我们可以设置<span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">flagger</span> Gitrepo来使用这个<span style="color: rgb(29, 35, 41);box-sizing: border-box;">ClusterGroup</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="makefile"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">apiVersion: fleet.cattle.io/v1alpha1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">kind: GitRepo</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">metadata:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">name: flagger</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">namespace: fleet-default</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">spec:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">branch: master</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">insecureSkipTLSVerify: false</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">paths:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">- flagger</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">- flagger-loadtest</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">repo: https://github.com/ibrokethecloud/user-bundles</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">targets:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">- clusterGroup: canary</span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
         <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
        </section>
       </section>
      </section>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
       <section>
        <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
       </section>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
      <img data-ratio="0.1289063" data-w="1024" src="/upload/56eab0d920df880d4bfc48840701de5a.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
     </section>
    </section>
    <section style="text-align: unset;line-height: 2;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">如我们之前所了解的,要触发部署我们将分配一个集群到Flagger ClusterGroup</span></p>
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
    </section>
    <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
      <img data-ratio="0.3642578" data-w="1024" src="/upload/9932dc985e3dc55f8aebb29b1215c721.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
     </section>
    </section>
    <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
      <img data-ratio="0.1230469" data-w="1024" src="/upload/519906c8a2babd961c776a61abc0ee9f.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="text-align: unset;line-height: 2;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;">在几分钟之内,Flagger和flagger-loadtest helm charts将会被部署到该集群</span></p>
     <p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
    </section>
    <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
      <img data-ratio="0.1230469" data-w="1024" src="/upload/1ca3e4cf4167563443a62c2c576f470e.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section>
       <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
      </section>
     </section>
    </section>
    <section style="display: block;width: auto;vertical-align: top;font-size: 15px;line-height: 2;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;">请注意,在部署Flagger时,它将所有的标签和注释从源部署中复制到金丝雀和主部署中。持续交付将使用对象上的标签来核对和识别它们属于哪个底层的Bundle。Flagger对此进行了设置,在默认设置中,持续交付将报告不在GitRepo中的额外的主部署和金丝雀部署。</p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;">为了避免这种情况,Flagger helm chart中的<span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">includeLabelPrefix</span>设置被传递并设置为<span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">dummy</span>,以指示Flagger只包括前缀为<span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">dummy</span>的标签。这有助于我们绕过持续交付的<span style="color: rgb(29, 35, 41);box-sizing: border-box;">reconciliation logic</span>。</p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;">fleet.yaml如下所示:</p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="makefile"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">defaultNamespace: istio-system</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">helm:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">releaseName: flagger</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">repo: https://flagger.app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">chart: flagger</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">version: 1.6.2</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">values:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">crd.create: true</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">meshProvider: istio</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">metricsServer: http://rancher-monitoring-prometheus.cattle-monitoring-system:9090</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">includeLabelPrefix: dummy</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">diff:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">comparePatches:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">- apiVersion: apps/v1</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">kind: Deployment</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">name: flagger</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">namespace: istio-system</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__section" style="box-sizing: border-box;">operations:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">- {<span class="code-snippet__string" style="box-sizing: border-box;">"op"</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"remove"</span>, <span class="code-snippet__string" style="box-sizing: border-box;">"path"</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"/spec/template/spec/containers/0/resources/limits/cpu"</span>}</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">- {<span class="code-snippet__string" style="box-sizing: border-box;">"op"</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"remove"</span>, <span class="code-snippet__string" style="box-sizing: border-box;">"path"</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"/spec/template/spec/containers/0/volumeMounts"</span>}</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">- {<span class="code-snippet__string" style="box-sizing: border-box;">"op"</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"remove"</span>, <span class="code-snippet__string" style="box-sizing: border-box;">"path"</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"/spec/template/spec/volumes"</span>}</span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;">所有基础服务设置完成后,我们现在可以开始部署我们的工作负载。</p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="margin-top: 10px;margin-bottom: 10px;text-align: left;box-sizing: border-box;max-width: 100%;">
      <section style="display: inline-block;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="display: inline-block;vertical-align: top;box-sizing: border-box;max-width: 100%;">
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
            <section style="display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="text-align: unset;display: inline-block;vertical-align: middle;color: rgb(0, 117, 168);box-sizing: border-box;max-width: 100%;">
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;">3.部署Demo应用程序并进行金丝雀发布</strong></p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;box-sizing: border-box;max-width: 100%;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="width: 0px;border-left: 8px solid rgb(0, 117, 168);border-top: 5px solid transparent;border-bottom: 5px solid transparent;margin-right: 3px;margin-left: 5px;display: inline-block;vertical-align: middle;box-sizing: border-box;max-width: 100%;">
              <section>
               <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;box-sizing: border-box;max-width: 100%;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="width: 0px;border-left: 8px solid rgb(255, 255, 255);border-top: 4px solid transparent;border-bottom: 4px solid transparent;display: inline-block;vertical-align: middle;margin-right: -9px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);box-sizing: border-box;max-width: 100%;">
              <section>
               <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: middle;width: auto;max-width: 100%;box-sizing: border-box;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="width: 0px;border-left: 10px solid rgb(0, 117, 168);border-top: 6px solid transparent;border-bottom: 6px solid transparent;display: inline-block;vertical-align: middle;box-sizing: border-box;max-width: 100%;">
              <section>
               <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
    </section>
    <section style="display: block;width: auto;vertical-align: top;font-size: 15px;line-height: 2;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><span style="box-sizing: border-box;">现在我们添加</span><span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">canary-demo-app</span><span style="box-sizing: border-box;"> GitRepo到目标</span><span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">canary</span><span style="color: rgb(29, 35, 41);box-sizing: border-box;">ClusterGroup</span></span><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet.cattle.io/v1alpha1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">GitRepo</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">canary-demo-app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-default</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">branch</span>: <span class="code-snippet__string" style="box-sizing: border-box;">master</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">insecureSkipTLSVerify</span>: <span class="code-snippet__string" style="box-sizing: border-box;">false</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">paths</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">canary-demo-app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">repo</span>: <span class="code-snippet__string" style="box-sizing: border-box;">https://github.com/ibrokethecloud/user-bundles</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">targets</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">clusterGroup: canary</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><span style="box-sizing: border-box;">这将出发demo app的部署到</span><span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">canary-demo</span><span style="box-sizing: border-box;">命名空间。</span></span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="go"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">(⎈ |digitalocean:canary-demo)</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">~</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ kubectl get deployment</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">NAME                       READY   UP-TO-DATE   AVAILABLE   AGE</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app           <span class="code-snippet__number" style="box-sizing: border-box;">0</span>/<span class="code-snippet__number" style="box-sizing: border-box;">0</span>     <span class="code-snippet__number" style="box-sizing: border-box;">0</span>            <span class="code-snippet__number" style="box-sizing: border-box;">0</span>           <span class="code-snippet__number" style="box-sizing: border-box;">80s</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app-primary   <span class="code-snippet__number" style="box-sizing: border-box;">1</span>/<span class="code-snippet__number" style="box-sizing: border-box;">1</span>     <span class="code-snippet__number" style="box-sizing: border-box;">1</span>            <span class="code-snippet__number" style="box-sizing: border-box;">1</span>           <span class="code-snippet__number" style="box-sizing: border-box;">80s</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">(⎈ |digitalocean:canary-demo)</span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">控制发布行为的金丝雀对象如下:</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">flagger.app/v1beta1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">Canary</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-simple-app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">canary-demo</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">targetRef</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">apps/v1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">Deployment</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-simple-app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">service</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">port</span>: <span class="code-snippet__string" style="box-sizing: border-box;">8080</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">analysis</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">interval</span>: <span class="code-snippet__string" style="box-sizing: border-box;">1m</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">threshold</span>: <span class="code-snippet__string" style="box-sizing: border-box;">10</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">maxWeight</span>: <span class="code-snippet__string" style="box-sizing: border-box;">50</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">stepWeight</span>: <span class="code-snippet__string" style="box-sizing: border-box;">10</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">metrics</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">name: request-success-rate</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">thresholdRange</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">          <span class="code-snippet__attr" style="box-sizing: border-box;">min</span>: <span class="code-snippet__string" style="box-sizing: border-box;">99</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">interval</span>: <span class="code-snippet__string" style="box-sizing: border-box;">1m</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">name: request-duration</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">thresholdRange</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">          <span class="code-snippet__attr" style="box-sizing: border-box;">max</span>: <span class="code-snippet__string" style="box-sizing: border-box;">500</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">interval</span>: <span class="code-snippet__string" style="box-sizing: border-box;">1m</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">webhooks</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">name: load-test</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">url</span>: <span class="code-snippet__string" style="box-sizing: border-box;">http://flagger-loadtester.loadtester/</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">timeout</span>: <span class="code-snippet__string" style="box-sizing: border-box;">5s</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">          <span class="code-snippet__attr" style="box-sizing: border-box;">type</span>: <span class="code-snippet__string" style="box-sizing: border-box;">cmd</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">          <span class="code-snippet__attr" style="box-sizing: border-box;">cmd</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"hey -z 1m -q 10 -c 2 http://fleet-simple-app-canary.canary-demo:8080"</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">这里面的关键项目时webhook来进行负载测试,以产生足够的指标让Flagger能够开始切换流量。</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">我们同时能够看到金丝雀对象的状态,如下所示:</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="cs"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">(⎈ |digitalocean:canary-demo)</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">~</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ kubectl <span class="code-snippet__keyword" style="box-sizing: border-box;">get</span> canary</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">NAME               STATUS        WEIGHT   LASTTRANSITIONTIME</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app   Initialized   <span class="code-snippet__number" style="box-sizing: border-box;">0</span>        <span class="code-snippet__number" style="box-sizing: border-box;">2021</span><span class="code-snippet__number" style="box-sizing: border-box;">-03</span><span class="code-snippet__number" style="box-sizing: border-box;">-22</span>T06:<span class="code-snippet__number" style="box-sizing: border-box;">25</span>:<span class="code-snippet__number" style="box-sizing: border-box;">17</span>Z</span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><span style="box-sizing: border-box;">我们现在可以通过更新</span><span style="color: rgb(230, 25, 131);box-sizing: border-box;background-color: rgb(240, 237, 246);">canary-demo-app</span><span style="box-sizing: border-box;">的GitRepo,用新版本的镜像来触发金丝雀发布。在几分钟之后,我们应该看到源部署使用来自GitRepo的新镜像进行扩展。此外,金丝雀对象变成Progressing状态,金丝雀发布的比重发生变化。</span></span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">▶ kubectl <span class="code-snippet__keyword">get</span> deploy</span></code><code><span class="code-snippet_outer">NAME                       READY   UP-TO-DATE   AVAILABLE   AGE</span></code><code><span class="code-snippet_outer">fleet-simple-app           <span class="code-snippet__number">1</span>/<span class="code-snippet__number">1</span>     <span class="code-snippet__number">1</span>            <span class="code-snippet__number">1</span>           <span class="code-snippet__number">6</span>m5s</span></code><code><span class="code-snippet_outer">fleet-simple-app-primary   <span class="code-snippet__number">1</span>/<span class="code-snippet__number">1</span>     <span class="code-snippet__number">1</span>            <span class="code-snippet__number">1</span>           <span class="code-snippet__number">6</span>m5s</span></code><code><span class="code-snippet_outer">(⎈ |digitalocean:canary-demo)</span></code><code><span class="code-snippet_outer">~</span></code><code><span class="code-snippet_outer">▶ kubectl <span class="code-snippet__keyword">get</span> canary</span></code><code><span class="code-snippet_outer">NAME               STATUS        WEIGHT   LASTTRANSITIONTIME</span></code><code><span class="code-snippet_outer">fleet-simple-app   Progressing   <span class="code-snippet__number">0</span>        <span class="code-snippet__number">2021</span><span class="code-snippet__number">-03</span><span class="code-snippet__number">-22</span>T06:<span class="code-snippet__number">30</span>:<span class="code-snippet__number">17</span>Z</span></code><code><span class="code-snippet_outer">▶ kubectl <span class="code-snippet__keyword">get</span> canary</span></code><code><span class="code-snippet_outer">NAME               STATUS        WEIGHT   LASTTRANSITIONTIME</span></code><code><span class="code-snippet_outer">fleet-simple-app   Progressing   <span class="code-snippet__number">10</span>       <span class="code-snippet__number">2021</span><span class="code-snippet__number">-03</span><span class="code-snippet__number">-22</span>T06:<span class="code-snippet__number">31</span>:<span class="code-snippet__number">17</span>Z</span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">执行中的金丝雀还与Istio virtualservice中不断变化的比重相对应。</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="properties"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">apiVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">networking.istio.io/v1beta1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">VirtualService</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">metadata</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">creationTimestamp</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"2021-03-22T06:25:17Z"</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">generation</span>: <span class="code-snippet__string" style="box-sizing: border-box;">2</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">managedFields</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">apiVersion: networking.istio.io/v1alpha3</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">fieldsType</span>: <span class="code-snippet__string" style="box-sizing: border-box;">FieldsV1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">fieldsV1</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">metadata:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">ownerReferences:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">          <span class="code-snippet__meta" style="box-sizing: border-box;">.</span>: <span class="code-snippet__string" style="box-sizing: border-box;">{}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">          <span class="code-snippet__attr" style="box-sizing: border-box;">k</span>:<span class="code-snippet__string" style="box-sizing: border-box;">{"uid":"6ae2a7f1-6949-484b-ab48-c385e9827a11"}:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">            <span class="code-snippet__meta" style="box-sizing: border-box;">.</span>: <span class="code-snippet__string" style="box-sizing: border-box;">{}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">            <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">apiVersion: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">            <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">blockOwnerDeletion: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">            <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">controller: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">            <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">kind: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">            <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">name: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">            <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">uid: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">spec:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__meta" style="box-sizing: border-box;">.</span>: <span class="code-snippet__string" style="box-sizing: border-box;">{}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">gateways: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">hosts: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">f</span>:<span class="code-snippet__string" style="box-sizing: border-box;">http: {}</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">manager</span>: <span class="code-snippet__string" style="box-sizing: border-box;">flagger</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">operation</span>: <span class="code-snippet__string" style="box-sizing: border-box;">Update</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">time</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"2021-03-22T06:25:17Z"</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-simple-app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">namespace</span>: <span class="code-snippet__string" style="box-sizing: border-box;">canary-demo</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">ownerReferences</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">apiVersion: flagger.app/v1beta1</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">blockOwnerDeletion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">true</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">controller</span>: <span class="code-snippet__string" style="box-sizing: border-box;">true</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">kind</span>: <span class="code-snippet__string" style="box-sizing: border-box;">Canary</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">name</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-simple-app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__attr" style="box-sizing: border-box;">uid</span>: <span class="code-snippet__string" style="box-sizing: border-box;">6ae2a7f1-6949-484b-ab48-c385e9827a11</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">resourceVersion</span>: <span class="code-snippet__string" style="box-sizing: border-box;">"10783"</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">uid</span>: <span class="code-snippet__string" style="box-sizing: border-box;">b5aaaf34-7b16-4ba9-972c-b60756943da8</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__attr" style="box-sizing: border-box;">spec</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">gateways</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">mesh</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">hosts</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">fleet-simple-app</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__attr" style="box-sizing: border-box;">http</span>:<span class="code-snippet__string" style="box-sizing: border-box;"></span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">  <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">route:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">destination:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">host</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-simple-app-primary</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__attr" style="box-sizing: border-box;">weight</span>: <span class="code-snippet__string" style="box-sizing: border-box;">90</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">    <span class="code-snippet__meta" style="box-sizing: border-box;">-</span> <span class="code-snippet__string" style="box-sizing: border-box;">destination:</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">        <span class="code-snippet__attr" style="box-sizing: border-box;">host</span>: <span class="code-snippet__string" style="box-sizing: border-box;">fleet-simple-app-canary</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">      <span class="code-snippet__attr" style="box-sizing: border-box;">weight</span>: <span class="code-snippet__string" style="box-sizing: border-box;">10</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">再过一会儿,我们应该看到Flagger在推动金丝雀发布,并且主要的部署被切换到新版本。</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="cs"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ kubectl <span class="code-snippet__keyword" style="box-sizing: border-box;">get</span> canary</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">NAME               STATUS      WEIGHT   LASTTRANSITIONTIME</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app   Promoting   <span class="code-snippet__number" style="box-sizing: border-box;">0</span>        <span class="code-snippet__number" style="box-sizing: border-box;">2021</span><span class="code-snippet__number" style="box-sizing: border-box;">-03</span><span class="code-snippet__number" style="box-sizing: border-box;">-22</span>T06:<span class="code-snippet__number" style="box-sizing: border-box;">37</span>:<span class="code-snippet__number" style="box-sizing: border-box;">17</span>Z</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer"><br></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer"><br></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ kubectl <span class="code-snippet__keyword" style="box-sizing: border-box;">get</span> pods</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">NAME                                        READY   STATUS    RESTARTS   AGE</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app<span class="code-snippet__number" style="box-sizing: border-box;">-64</span>cd54dfd-tkk8v            <span class="code-snippet__number" style="box-sizing: border-box;">2</span>/<span class="code-snippet__number" style="box-sizing: border-box;">2</span>     Running   <span class="code-snippet__number" style="box-sizing: border-box;">0</span>          <span class="code-snippet__number" style="box-sizing: border-box;">9</span>m2s</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app-primary<span class="code-snippet__number" style="box-sizing: border-box;">-854</span>d4d84b5-qgfc8   <span class="code-snippet__number" style="box-sizing: border-box;">2</span>/<span class="code-snippet__number" style="box-sizing: border-box;">2</span>     Running   <span class="code-snippet__number" style="box-sizing: border-box;">0</span>          <span class="code-snippet__number" style="box-sizing: border-box;">74</span>s</span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">在最终完成部署之后,我们应该看到原来的部署被缩减:</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
          
          
          
          
          
          
          
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="cs"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ kubectl <span class="code-snippet__keyword" style="box-sizing: border-box;">get</span> canary</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">NAME               STATUS       WEIGHT   LASTTRANSITIONTIME</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app   Finalising   <span class="code-snippet__number" style="box-sizing: border-box;">0</span>        <span class="code-snippet__number" style="box-sizing: border-box;">2021</span><span class="code-snippet__number" style="box-sizing: border-box;">-03</span><span class="code-snippet__number" style="box-sizing: border-box;">-22</span>T06:<span class="code-snippet__number" style="box-sizing: border-box;">38</span>:<span class="code-snippet__number" style="box-sizing: border-box;">17</span>Z</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">(⎈ |digitalocean:canary-demo)</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">~</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ kubectl <span class="code-snippet__keyword" style="box-sizing: border-box;">get</span> pods</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">NAME                                        READY   STATUS        RESTARTS   AGE</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app<span class="code-snippet__number" style="box-sizing: border-box;">-64</span>cd54dfd-tkk8v            <span class="code-snippet__number" style="box-sizing: border-box;">2</span>/<span class="code-snippet__number" style="box-sizing: border-box;">2</span>     Terminating   <span class="code-snippet__number" style="box-sizing: border-box;">0</span>          <span class="code-snippet__number" style="box-sizing: border-box;">9</span>m53s</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app-primary<span class="code-snippet__number" style="box-sizing: border-box;">-854</span>d4d84b5-qgfc8   <span class="code-snippet__number" style="box-sizing: border-box;">2</span>/<span class="code-snippet__number" style="box-sizing: border-box;">2</span>     Running       <span class="code-snippet__number" style="box-sizing: border-box;">0</span>          <span class="code-snippet__number" style="box-sizing: border-box;">2</span>m5s</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ kubectl <span class="code-snippet__keyword" style="box-sizing: border-box;">get</span> deploy</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">NAME                       READY   UP-TO-DATE   AVAILABLE   AGE</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app           <span class="code-snippet__number" style="box-sizing: border-box;">0</span>/<span class="code-snippet__number" style="box-sizing: border-box;">0</span>     <span class="code-snippet__number" style="box-sizing: border-box;">0</span>            <span class="code-snippet__number" style="box-sizing: border-box;">0</span>           <span class="code-snippet__number" style="box-sizing: border-box;">15</span>m</span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">fleet-simple-app-primary   <span class="code-snippet__number" style="box-sizing: border-box;">1</span>/<span class="code-snippet__number" style="box-sizing: border-box;">1</span>     <span class="code-snippet__number" style="box-sizing: border-box;">1</span>            <span class="code-snippet__number" style="box-sizing: border-box;">1</span>           <span class="code-snippet__number" style="box-sizing: border-box;">15</span>m</span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">在这之后,金丝雀对象应该是成功状态:</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
     </section>
     <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
      <section style="text-align: unset;box-sizing: border-box;max-width: 100%;">
       <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section class="code-snippet__fix code-snippet__js">
         <ul class="code-snippet__line-index code-snippet__js">
          
          
          
         </ul>
         <pre class="code-snippet__js" data-lang="css"><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;">▶ <span class="code-snippet__selector-tag" style="box-sizing: border-box;">kubectl</span> <span class="code-snippet__selector-tag" style="box-sizing: border-box;">get</span> <span class="code-snippet__selector-tag" style="box-sizing: border-box;">canary</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__selector-tag" style="box-sizing: border-box;">NAME</span>               <span class="code-snippet__selector-tag" style="box-sizing: border-box;">STATUS</span>      <span class="code-snippet__selector-tag" style="box-sizing: border-box;">WEIGHT</span>   <span class="code-snippet__selector-tag" style="box-sizing: border-box;">LASTTRANSITIONTIME</span></span></code><code style="box-sizing: border-box;"><span class="code-snippet_outer" style="box-sizing: border-box;"><span class="code-snippet__selector-tag" style="box-sizing: border-box;">fleet-simple-app</span>   <span class="code-snippet__selector-tag" style="box-sizing: border-box;">Succeeded</span>   0        2021<span class="code-snippet__selector-tag" style="box-sizing: border-box;">-03-22T06</span><span class="code-snippet__selector-pseudo" style="box-sizing: border-box;">:39</span><span class="code-snippet__selector-pseudo" style="box-sizing: border-box;">:17Z</span></span></code></pre>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">大功告成!在本文中,我们展示了如何使用持续交付、利用第三方工具(如Flagger)来为我们的工作负载执行金丝雀发布。欢迎跟着本教程进行操作,如果有任何问题,也欢迎扫描文末二维码,添加小助手为好友,进入Rancher官方技术交流群与各位Rancher用户一起交流。</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><br style="box-sizing: border-box;"></span></p>
     </section>
     <section style="margin: 10px 0%;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <section style="display: inline-block;vertical-align: middle;width: 45%;max-width: 100%;box-sizing: border-box;">
       <section style="max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="display: inline-block;vertical-align: middle;width: 100%;padding: 0px 5px 0px 0px;box-sizing: border-box;">
         <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;box-sizing: border-box;">
           <section style="margin: 0.5em 0px;box-sizing: border-box;max-width: 100%;">
            <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="max-width: 100%;box-sizing: border-box;">
              <section style="border-top: 1px dashed rgb(182, 182, 182);box-sizing: border-box;max-width: 100%;">
               <section>
                <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
               </section>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
      <section style="display: inline-block;vertical-align: middle;width: 10%;max-width: 100%;box-sizing: border-box;">
       <section style="max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="display: inline-block;vertical-align: middle;width: 100%;box-sizing: border-box;">
         <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;box-sizing: border-box;">
           <section style="text-align: center;margin: 0px 0%;box-sizing: border-box;max-width: 100%;">
            <section style="display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
              <img data-ratio="0.4421488" data-w="242" src="/upload/6b7696782f8e1370e029c68f269878cb.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
      <section style="display: inline-block;vertical-align: middle;width: 45%;max-width: 100%;box-sizing: border-box;">
       <section style="max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
        <section style="display: inline-block;vertical-align: middle;width: 100%;padding: 0px 0px 0px 5px;box-sizing: border-box;">
         <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;box-sizing: border-box;">
           <section style="margin: 0.5em 0px;box-sizing: border-box;max-width: 100%;">
            <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="max-width: 100%;box-sizing: border-box;">
              <section style="border-top: 1px dashed rgb(182, 182, 182);box-sizing: border-box;max-width: 100%;">
               <section>
                <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
               </section>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
     <section style="text-align: unset;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;">推荐阅读</span></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIyMTUwMDMyOQ==&amp;mid=2247495757&amp;idx=1&amp;sn=6702e5b3df8e97260a898add834e6a1c&amp;chksm=e839768bdf4eff9df078cc1e690a52374a5cf982f7bee7f27ec3d83dd48ecbff7da9637cb785&amp;scene=21#wechat_redirect" style="box-sizing: border-box;" data-linktype="2">入门教程:5步创建K8S Job,搞定批处理</a></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIyMTUwMDMyOQ==&amp;mid=2247495867&amp;idx=1&amp;sn=79057e0223afd6ef1609a547607f11bc&amp;chksm=e839767ddf4eff6bcb0a53500c54e73ad04a8c8639a4cdd57698a96caee731143e146c1e601f&amp;scene=21#wechat_redirect" style="box-sizing: border-box;" data-linktype="2">Kubernetes网络概念初探</a></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIyMTUwMDMyOQ==&amp;mid=2247495542&amp;idx=1&amp;sn=21878e575d60d9f31ccb3dd83077ce39&amp;chksm=e83969b0df4ee0a66a7be1c1fd2cc543e6173342008cf354779658207650677c4d8b515bbf1f&amp;scene=21#wechat_redirect" style="box-sizing: border-box;" data-linktype="2">无需重新搭建集群,轻松替换证书!</a></p>
      <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><br style="box-sizing: border-box;"></span></p>
     </section>
    </section>
    <section style="margin: 10px 0%;box-sizing: border-box;max-width: 100%;" powered-by="xiumi.us">
     <section style="display: inline-block;vertical-align: middle;width: 45%;max-width: 100%;box-sizing: border-box;">
      <section style="max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="display: inline-block;vertical-align: middle;width: 100%;max-width: 100%;box-sizing: border-box;">
        <section style="display: inline;max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
         <section style="max-width: 100%;width: 100%;box-sizing: border-box;">
          <section style="display: inline-block;vertical-align: middle;width: 100%;padding: 0px 5px 0px 0px;box-sizing: border-box;">
           <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
            <section style="max-width: 100%;box-sizing: border-box;">
             <section style="margin: 0.5em 0px;box-sizing: border-box;max-width: 100%;">
              <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
               <section style="max-width: 100%;box-sizing: border-box;">
                <section style="border-top: 1px dashed rgb(182, 182, 182);box-sizing: border-box;max-width: 100%;">
                 <section>
                  <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
                 </section>
                </section>
               </section>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
     <section style="display: inline-block;vertical-align: middle;width: 10%;max-width: 100%;box-sizing: border-box;">
      <section style="max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="display: inline-block;vertical-align: middle;width: 100%;max-width: 100%;box-sizing: border-box;">
        <section style="display: inline;max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
         <section style="max-width: 100%;width: 100%;box-sizing: border-box;">
          <section style="display: inline-block;vertical-align: middle;width: 100%;box-sizing: border-box;">
           <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
            <section style="max-width: 100%;box-sizing: border-box;">
             <section style="text-align: center;margin: 0px 0%;box-sizing: border-box;max-width: 100%;">
              <section style="display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
               <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
                <img data-ratio="0.4421488" data-w="242" src="/upload/6b7696782f8e1370e029c68f269878cb.png" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="png">
               </section>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
     <section style="display: inline-block;vertical-align: middle;width: 45%;max-width: 100%;box-sizing: border-box;">
      <section style="max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="display: inline-block;vertical-align: middle;width: 100%;max-width: 100%;box-sizing: border-box;">
        <section style="display: inline;max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
         <section style="max-width: 100%;width: 100%;box-sizing: border-box;">
          <section style="display: inline-block;vertical-align: middle;width: 100%;padding: 0px 0px 0px 5px;box-sizing: border-box;">
           <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
            <section style="max-width: 100%;box-sizing: border-box;">
             <section style="margin: 0.5em 0px;box-sizing: border-box;max-width: 100%;">
              <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
               <section style="max-width: 100%;box-sizing: border-box;">
                <section style="border-top: 1px dashed rgb(182, 182, 182);box-sizing: border-box;max-width: 100%;">
                 <section>
                  <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
                 </section>
                </section>
               </section>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="margin: 10px 0% 0px;box-sizing: border-box;max-width: 100%;">
      <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="box-sizing: border-box;max-width: 100%;">
        <section style="display: inline-block;vertical-align: top;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: top;width: auto;max-width: 100%;box-sizing: border-box;">
            <section style="display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="text-align: center;display: inline-block;vertical-align: top;height: 2em;padding: 0px 0.5em;line-height: 2em;background-color: rgb(243, 243, 243);color: rgb(52, 73, 94);box-sizing: border-box;max-width: 100%;">
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;">About SUSE Rancher<br style="box-sizing: border-box;"></strong></p>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: top;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: top;width: auto;max-width: 100%;box-sizing: border-box;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="display: inline-block;vertical-align: top;border-width: 1em 0.5em;border-style: solid;border-color: transparent transparent rgb(243, 243, 243) rgb(243, 243, 243);box-sizing: border-box;max-width: 100%;">
              <section>
               <svg viewbox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
        <section style="display: inline-block;vertical-align: top;width: auto;max-width: 100%;box-sizing: border-box;">
         <section style="box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;display: inline-block;box-sizing: border-box;">
           <section style="display: inline-block;vertical-align: top;width: auto;max-width: 100%;box-sizing: border-box;">
            <section style="max-width: 100%;display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="display: inline-block;vertical-align: top;line-height: 2em;text-align: left;box-sizing: border-box;max-width: 100%;">
              <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
               <section style="max-width: 100%;box-sizing: border-box;">
                <section style="text-align: unset;margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
                 <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
                  <section style="margin: 0px;padding: 0px;box-sizing: border-box;max-width: 100%;">
                   <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
                  </section>
                 </section>
                </section>
               </section>
              </section>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="margin: 0px 0% 10px;box-sizing: border-box;max-width: 100%;">
      <section style="display: inline;max-width: 100%;width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="max-width: 100%;width: 100%;box-sizing: border-box;">
        <section style="display: inline-block;width: 100%;vertical-align: top;background-color: rgb(243, 243, 243);padding: 10px 0px;box-shadow: rgb(0, 0, 0) 0px 0px 0px;box-sizing: border-box;">
         <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
          <section style="max-width: 100%;box-sizing: border-box;">
           <section style="margin: 0px 0%;box-sizing: border-box;max-width: 100%;">
            <section style="display: inline;max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
             <section style="text-align: unset;color: rgb(52, 73, 94);padding: 0px 25px;font-size: 14px;line-height: 2;box-sizing: border-box;max-width: 100%;">
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;">Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐,被Forrester评为“2020年多云容器开发平台领导厂商”以及“2018年全球容器管理平台领导厂商”,被Gartner评为“2017年全球最酷的云基础设施供应商”。</p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;">目前Rancher在全球拥有超过三亿的核心镜像下载量,并拥有包括中国联通、中国平安、中国人寿、上汽集团、三星、施耐德电气、西门子、育碧游戏、LINE、WWK保险集团、澳电讯公司、德国铁路、厦门航空、新东方等全球著名企业在内的共40000家企业客户。</p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;">2020年12月,SUSE完成收购RancherLabs,Rancher成为了SUSE “创新无处不在(Innovate Everywhere)”企业愿景的关键组成部分。SUSE和Rancher共同为客户提供了无与伦比的自由和所向披靡的创新能力,通过混合云IT基础架构、云原生转型和IT运维解决方案,简化、现代化并加速企业数字化转型,推动创新无处不在。</p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br style="box-sizing: border-box;"></p>
              <p style="margin: 0px;padding: 0px;box-sizing: border-box;">当前,SUSE及Rancher在中国大陆及港澳台地区的业务,均由数硕软件(北京)有限公司承载。SUSE在国内拥有优秀的研发团队、技术支持团队和销售团队,将结合Rancher领先的云原生技术,为中国的企业客户提供更加及时和可信赖的技术支撑及服务保障。</p>
             </section>
            </section>
           </section>
          </section>
         </section>
        </section>
       </section>
      </section>
     </section>
    </section>
    <section style="max-width: 100%;box-sizing: border-box;" powered-by="xiumi.us">
     <section style="text-align: center;margin-top: 10px;margin-bottom: 10px;box-sizing: border-box;max-width: 100%;">
      <section style="display: inline-block;box-sizing: border-box;" powered-by="xiumi.us">
       <section style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;">
        <img data-ratio="0.7137681" data-w="828" src="/upload/ddf73a4ef1f197ef01fa14c6a4a0959d.jpg" style="vertical-align: middle;max-width: 100%;box-sizing: border-box;" data-type="jpeg">
       </section>
      </section>
     </section>
    </section>
    

已有 0 条评论

    欢迎您,新朋友,感谢参与互动!
    // 友盟