mirror of
https://github.com/fluxcd/flagger.git
synced 2026-04-15 06:57:34 +00:00
98 lines
24 KiB
HTML
98 lines
24 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Flagger Install on EKS App Mesh | Flagger</title>
|
|
<meta name="description" content="Progressive Delivery operator for Kubernetes (Canary, A/B Testing and Blue/Green deployments)">
|
|
<link rel="icon" href="/favicon.png">
|
|
<link rel="stylesheet" href="/website.css">
|
|
<meta name="keywords" content="gitops kubernetes flagger istio linkerd appmesh contour gloo nginx">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Flagger">
|
|
<meta name="twitter:description" content="Progressive delivery Kubernetes operator (Canary, A/B Testing and Blue/Green deployments)">
|
|
<meta name="twitter:image:src" content="https://flagger.app/flagger-overview.png">
|
|
|
|
<link rel="preload" href="/assets/css/0.styles.a0ada997.css" as="style"><link rel="preload" href="/assets/js/app.9b46ae46.js" as="script"><link rel="preload" href="/assets/js/2.ba5bf77c.js" as="script"><link rel="preload" href="/assets/js/11.3af38cfe.js" as="script"><link rel="prefetch" href="/assets/js/10.bf6f38d4.js"><link rel="prefetch" href="/assets/js/12.eca4b89c.js"><link rel="prefetch" href="/assets/js/13.9104349a.js"><link rel="prefetch" href="/assets/js/14.a4f3d810.js"><link rel="prefetch" href="/assets/js/15.aada2caa.js"><link rel="prefetch" href="/assets/js/16.3012a10b.js"><link rel="prefetch" href="/assets/js/17.a98b6aa9.js"><link rel="prefetch" href="/assets/js/18.e5188926.js"><link rel="prefetch" href="/assets/js/19.bb9498f7.js"><link rel="prefetch" href="/assets/js/20.2b1bebf5.js"><link rel="prefetch" href="/assets/js/21.e1068843.js"><link rel="prefetch" href="/assets/js/22.1c5d14b9.js"><link rel="prefetch" href="/assets/js/23.b3dcc355.js"><link rel="prefetch" href="/assets/js/24.4f54d289.js"><link rel="prefetch" href="/assets/js/25.914acd1d.js"><link rel="prefetch" href="/assets/js/26.b2d4f402.js"><link rel="prefetch" href="/assets/js/27.ea9f1f9c.js"><link rel="prefetch" href="/assets/js/28.deae273d.js"><link rel="prefetch" href="/assets/js/29.ce4011f4.js"><link rel="prefetch" href="/assets/js/3.8b254d5d.js"><link rel="prefetch" href="/assets/js/30.edda19d9.js"><link rel="prefetch" href="/assets/js/31.fbfb336c.js"><link rel="prefetch" href="/assets/js/32.591c3f2b.js"><link rel="prefetch" href="/assets/js/33.c456709f.js"><link rel="prefetch" href="/assets/js/34.5a071e36.js"><link rel="prefetch" href="/assets/js/35.fc27c09e.js"><link rel="prefetch" href="/assets/js/36.144098aa.js"><link rel="prefetch" href="/assets/js/4.26a3069c.js"><link rel="prefetch" href="/assets/js/5.0c32bdf9.js"><link rel="prefetch" href="/assets/js/6.ee5ffca3.js"><link rel="prefetch" href="/assets/js/7.6bf27a87.js"><link rel="prefetch" href="/assets/js/8.8b72a8d3.js"><link rel="prefetch" href="/assets/js/9.7919fc1d.js">
|
|
<link rel="stylesheet" href="/assets/css/0.styles.a0ada997.css">
|
|
</head>
|
|
<body>
|
|
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Flagger</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://docs.flagger.app" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Docs
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/weaveworks/flagger/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Changelog
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <a href="https://github.com/weaveworks/flagger" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="https://docs.flagger.app" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Docs
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/weaveworks/flagger/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Changelog
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <a href="https://github.com/weaveworks/flagger" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/" class="sidebar-link">Home</a></li><li><section class="sidebar-group depth-0"><a href="/intro/" class="sidebar-heading clickable"><span>Introduction</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/intro/" class="sidebar-link">Get Started</a></li><li><a href="/intro/faq.html" class="sidebar-link">FAQ</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/install/flagger-install-on-kubernetes" class="sidebar-heading clickable open"><span>Install</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/install/flagger-install-on-kubernetes.html" class="sidebar-link">On Kubernetes</a></li><li><a href="/install/flagger-install-on-google-cloud.html" class="sidebar-link">On GKE Istio</a></li><li><a href="/install/flagger-install-on-eks-appmesh.html" class="active sidebar-link">On EKS App Mesh</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/install/flagger-install-on-eks-appmesh.html#app-mesh" class="sidebar-link">App Mesh</a></li><li class="sidebar-sub-header"><a href="/install/flagger-install-on-eks-appmesh.html#create-a-kubernetes-cluster" class="sidebar-link">Create a Kubernetes cluster</a></li><li class="sidebar-sub-header"><a href="/install/flagger-install-on-eks-appmesh.html#install-helm" class="sidebar-link">Install Helm</a></li><li class="sidebar-sub-header"><a href="/install/flagger-install-on-eks-appmesh.html#enable-horizontal-pod-auto-scaling" class="sidebar-link">Enable horizontal pod auto-scaling</a></li><li class="sidebar-sub-header"><a href="/install/flagger-install-on-eks-appmesh.html#install-the-app-mesh-components" class="sidebar-link">Install the App Mesh components</a></li><li class="sidebar-sub-header"><a href="/install/flagger-install-on-eks-appmesh.html#install-flagger-and-grafana" class="sidebar-link">Install Flagger and Grafana</a></li></ul></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/usage/how-it-works" class="sidebar-heading clickable"><span>Usage</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/usage/how-it-works.html" class="sidebar-link">How it works</a></li><li><a href="/usage/deployment-strategies.html" class="sidebar-link">Deployment Strategies</a></li><li><a href="/usage/metrics.html" class="sidebar-link">Metrics Analysis</a></li><li><a href="/usage/webhooks.html" class="sidebar-link">Webhooks</a></li><li><a href="/usage/alerting.html" class="sidebar-link">Alerting</a></li><li><a href="/usage/monitoring.html" class="sidebar-link">Monitoring</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/tutorials/istio-progressive-delivery" class="sidebar-heading clickable"><span>Tutorials</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/tutorials/istio-progressive-delivery.html" class="sidebar-link">Istio Canaries</a></li><li><a href="/tutorials/istio-ab-testing.html" class="sidebar-link">Istio A/B Testing</a></li><li><a href="/tutorials/linkerd-progressive-delivery.html" class="sidebar-link">Linkerd Canaries</a></li><li><a href="/tutorials/appmesh-progressive-delivery.html" class="sidebar-link">App Mesh Canaries</a></li><li><a href="/tutorials/nginx-progressive-delivery.html" class="sidebar-link">NGINX Ingress Canaries</a></li><li><a href="/tutorials/gloo-progressive-delivery.html" class="sidebar-link">Gloo Canaries</a></li><li><a href="/tutorials/contour-progressive-delivery.html" class="sidebar-link">Contour Canaries</a></li><li><a href="/tutorials/kubernetes-blue-green.html" class="sidebar-link">Kubernetes Blue/Green</a></li><li><a href="/tutorials/canary-helm-gitops.html" class="sidebar-link">Canaries with Helm charts and GitOps</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/dev/dev-guide" class="sidebar-heading clickable"><span>Dev</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/dev/dev-guide.html" class="sidebar-link">Development Guide</a></li><li><a href="/dev/release-guide.html" class="sidebar-link">Release Guide</a></li><li><a href="/dev/upgrade-guide.html" class="sidebar-link">Upgrade Guide</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="flagger-install-on-eks-app-mesh"><a href="#flagger-install-on-eks-app-mesh" aria-hidden="true" class="header-anchor">#</a> Flagger Install on EKS App Mesh</h1> <p>This guide walks you through setting up Flagger and AWS App Mesh on EKS.</p> <h2 id="app-mesh"><a href="#app-mesh" aria-hidden="true" class="header-anchor">#</a> App Mesh</h2> <p>The App Mesh integration with EKS is made out of the following components:</p> <ul><li>Kubernetes custom resources
|
|
<ul><li><code>mesh.appmesh.k8s.aws</code> defines a logical boundary for network traffic between the services</li> <li><code>virtualnode.appmesh.k8s.aws</code> defines a logical pointer to a Kubernetes workload</li> <li><code>virtualservice.appmesh.k8s.aws</code> defines the routing rules for a workload inside the mesh</li></ul></li> <li>CRD controller - keeps the custom resources in sync with the App Mesh control plane</li> <li>Admission controller - injects the Envoy sidecar and assigns Kubernetes pods to App Mesh virtual nodes</li> <li>Telemetry service - Prometheus instance that collects and stores Envoy's metrics</li></ul> <h2 id="create-a-kubernetes-cluster"><a href="#create-a-kubernetes-cluster" aria-hidden="true" class="header-anchor">#</a> Create a Kubernetes cluster</h2> <p>In order to create an EKS cluster you can use <a href="https://eksctl.io" target="_blank" rel="noopener noreferrer">eksctl<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>. Eksctl is an open source command-line utility made by Weaveworks in collaboration with Amazon.</p> <p>On MacOS you can install eksctl with Homebrew:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>brew tap weaveworks/tap
|
|
brew <span class="token function">install</span> weaveworks/tap/eksctl
|
|
</code></pre></div><p>Create an EKS cluster:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>eksctl create cluster --name<span class="token operator">=</span>appmesh <span class="token punctuation">\</span>
|
|
--region<span class="token operator">=</span>us-west-2 <span class="token punctuation">\</span>
|
|
--nodes <span class="token number">3</span> <span class="token punctuation">\</span>
|
|
--node-volume-size<span class="token operator">=</span><span class="token number">120</span> <span class="token punctuation">\</span>
|
|
--appmesh-access
|
|
</code></pre></div><p>The above command will create a two nodes cluster with App Mesh <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/MESH_IAM_user_policies.html" target="_blank" rel="noopener noreferrer">IAM policy<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> attached to the EKS node instance role.</p> <p>Verify the install with:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl get nodes
|
|
</code></pre></div><h2 id="install-helm"><a href="#install-helm" aria-hidden="true" class="header-anchor">#</a> Install Helm</h2> <p>Install the <a href="https://docs.helm.sh/using_helm/#installing-helm" target="_blank" rel="noopener noreferrer">Helm<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> command-line tool:</p> <div class="language-text extra-class"><pre class="language-text"><code>brew install kubernetes-helm
|
|
</code></pre></div><p>Create a service account and a cluster role binding for Tiller:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl -n kube-system create sa tiller
|
|
|
|
kubectl create clusterrolebinding tiller-cluster-rule <span class="token punctuation">\</span>
|
|
--clusterrole<span class="token operator">=</span>cluster-admin <span class="token punctuation">\</span>
|
|
--serviceaccount<span class="token operator">=</span>kube-system:tiller
|
|
</code></pre></div><p>Deploy Tiller in the <code>kube-system</code> namespace:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm init --service-account tiller
|
|
</code></pre></div><p>You should consider using SSL between Helm and Tiller, for more information on securing your Helm installation see <a href="https://docs.helm.sh/using_helm/#securing-your-helm-installation" target="_blank" rel="noopener noreferrer">docs.helm.sh<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p> <h2 id="enable-horizontal-pod-auto-scaling"><a href="#enable-horizontal-pod-auto-scaling" aria-hidden="true" class="header-anchor">#</a> Enable horizontal pod auto-scaling</h2> <p>Install the Horizontal Pod Autoscaler (HPA) metrics provider:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm upgrade -i metrics-server stable/metrics-server <span class="token punctuation">\</span>
|
|
--namespace kube-system <span class="token punctuation">\</span>
|
|
--set args<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">=</span>--kubelet-preferred-address-types<span class="token operator">=</span>InternalIP
|
|
</code></pre></div><p>After a minute, the metrics API should report CPU and memory usage for pods. You can very the metrics API with:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl -n kube-system <span class="token function">top</span> pods
|
|
</code></pre></div><h2 id="install-the-app-mesh-components"><a href="#install-the-app-mesh-components" aria-hidden="true" class="header-anchor">#</a> Install the App Mesh components</h2> <p>Create the <code>appmesh-system</code> namespace:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl create ns appmesh-system
|
|
</code></pre></div><p>Apply the App Mesh CRDs:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl apply -k github.com/aws/eks-charts/stable/appmesh-controller//crds
|
|
</code></pre></div><p>Add the EKS repository to Helm:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm repo <span class="token function">add</span> eks https://aws.github.io/eks-charts
|
|
</code></pre></div><p>Install the App Mesh CRD controller:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm upgrade -i appmesh-controller eks/appmesh-controller <span class="token punctuation">\</span>
|
|
--wait --namespace appmesh-system
|
|
</code></pre></div><p>Install the App Mesh admission controller and create a mesh called <code>global</code>:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm upgrade -i appmesh-inject eks/appmesh-inject <span class="token punctuation">\</span>
|
|
--wait --namespace appmesh-system <span class="token punctuation">\</span>
|
|
--set mesh.create<span class="token operator">=</span>true <span class="token punctuation">\</span>
|
|
--set mesh.name<span class="token operator">=</span>global
|
|
</code></pre></div><p>Verify that the global mesh is active:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl describe mesh
|
|
|
|
Status:
|
|
Mesh Condition:
|
|
Status: True
|
|
Type: MeshActive
|
|
</code></pre></div><p>In order to collect the App Mesh metrics that Flagger needs to run the canary analysis, you'll need to setup a Prometheus instance to scrape the Envoy sidecars.</p> <p>Install the App Mesh Prometheus:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm upgrade -i appmesh-prometheus eks/appmesh-prometheus <span class="token punctuation">\</span>
|
|
--wait --namespace appmesh-system
|
|
</code></pre></div><h2 id="install-flagger-and-grafana"><a href="#install-flagger-and-grafana" aria-hidden="true" class="header-anchor">#</a> Install Flagger and Grafana</h2> <p>Add Flagger Helm repository:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm repo <span class="token function">add</span> flagger https://flagger.app
|
|
</code></pre></div><p>Install Flagger's Canary CRD:</p> <div class="language-yaml extra-class"><pre class="language-yaml"><code>kubectl apply <span class="token punctuation">-</span>f https<span class="token punctuation">:</span>//raw.githubusercontent.com/weaveworks/flagger/master/artifacts/flagger/crd.yaml
|
|
</code></pre></div><p>Deploy Flagger in the <em><strong>appmesh-system</strong></em> namespace:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm upgrade -i flagger flagger/flagger <span class="token punctuation">\</span>
|
|
--namespace<span class="token operator">=</span>appmesh-system <span class="token punctuation">\</span>
|
|
--set crd.create<span class="token operator">=</span>false <span class="token punctuation">\</span>
|
|
--set <span class="token assign-left variable">meshProvider</span><span class="token operator">=</span>appmesh <span class="token punctuation">\</span>
|
|
--set <span class="token assign-left variable">metricsServer</span><span class="token operator">=</span>http://appmesh-prometheus:9090
|
|
</code></pre></div><p>You can enable Slack or MS Teams notifications with:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm upgrade -i flagger flagger/flagger <span class="token punctuation">\</span>
|
|
--reuse-values <span class="token punctuation">\</span>
|
|
--namespace<span class="token operator">=</span>appmesh-system <span class="token punctuation">\</span>
|
|
--set slack.url<span class="token operator">=</span>https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK <span class="token punctuation">\</span>
|
|
--set slack.channel<span class="token operator">=</span>general <span class="token punctuation">\</span>
|
|
--set slack.user<span class="token operator">=</span>flagger
|
|
</code></pre></div><p>Flagger comes with a Grafana dashboard made for monitoring the canary analysis. Deploy Grafana in the <em><strong>appmesh-system</strong></em> namespace:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>helm upgrade -i flagger-grafana flagger/grafana <span class="token punctuation">\</span>
|
|
--namespace<span class="token operator">=</span>appmesh-system <span class="token punctuation">\</span>
|
|
--set <span class="token assign-left variable">url</span><span class="token operator">=</span>http://appmesh-prometheus:9090
|
|
</code></pre></div><p>You can access Grafana using port forwarding:</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl -n appmesh-system port-forward svc/flagger-grafana <span class="token number">3000</span>:80
|
|
</code></pre></div><p>Now that you have Flagger running you can try the <a href="https://docs.flagger.app/usage/appmesh-progressive-delivery" target="_blank" rel="noopener noreferrer">App Mesh canary deployments tutorial<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
|
←
|
|
<a href="/install/flagger-install-on-google-cloud.html" class="prev">
|
|
On GKE Istio
|
|
</a></span> <span class="next"><a href="/usage/how-it-works.html">
|
|
How it works
|
|
</a>
|
|
→
|
|
</span></p></div> </main></div><div class="global-ui"></div></div>
|
|
<script src="/assets/js/app.9b46ae46.js" defer></script><script src="/assets/js/2.ba5bf77c.js" defer></script><script src="/assets/js/11.3af38cfe.js" defer></script>
|
|
</body>
|
|
</html>
|