<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>SK 플랫폼 Architect</title>
    <link>https://skdt.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 17 May 2026 13:41:06 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>GH_1024</managingEditor>
    <item>
      <title>Cluster Autoscaler 비교(k8s Autoscaler vs Karpenter)</title>
      <link>https://skdt.tistory.com/15</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Cloud 의 장점은 여러 가지가 있지만 그 중 탄력성 및 유연성에 관련된 주제를 다뤄보고자 합니다. 바로 Autoscaling 입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kubernetes 환경에서 Autosclaing 은 VPA(&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;Vertical Pod Autoscaler), HPA(&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;Horizontal Pod Autoscaler) 그리고 CA(&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;Cluster Autoscaler) 로 구분해서 볼 수 있으며 본 포스트에서는 CA 솔루션을 분석하였습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;CA 는 크게 두가지 솔루션이 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;기존 쿠버네티스 공식 서브&amp;nbsp; 프로젝트 중 하나인 Autoscaler 를 이용하는 것이 첫번째 이고,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;AWS 에서 오픈소스 프로젝트로 얼마전 GA 한 Karpenter 가 두번째입니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;k8s Cluster Autoscaler&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;k8s Cluster Autoscaler (on AWS) 의 동작 로직입니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #023927;&quot;&gt;참고로 k8s Cluster Autoscaler 를 이용한 노드 오토스캐일링은 각 CSP 별로 구현 방식에 차이가 있으니 kubernetes 구성 환경에 맞춰 확인하시길 바랍니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5qVRZ/btrH5fnPpP1/d4kIUa9sseCiQFd1mXuvj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5qVRZ/btrH5fnPpP1/d4kIUa9sseCiQFd1mXuvj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5qVRZ/btrH5fnPpP1/d4kIUa9sseCiQFd1mXuvj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5qVRZ%2FbtrH5fnPpP1%2Fd4kIUa9sseCiQFd1mXuvj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;741&quot; height=&quot;387&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단히 정리하면 Node 리소스 부족으로 Pending 중인 Pod 를 감지하면 ASG(autoscaling group) 에 desired capacity 늘려서 요청하게 되고 그렇게 추가된 신규 노드에 kube-scheduler 가 Pending 중인 Pod 를 배치하게 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;워크로드가 줄어들어 불필요 노드가 발생한 경우 노드 삭제(Scale-In) 도 가능합니다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 Scan interval 이 10초이며 이때마다 삭제 가능한 노드가 있는지 확인합니다. 만약 지정된 utilization-threshold(defaul : 50%) 보다 수치가 떨어지게 되면 Autoscaler 는 Pod 재배치를 통해 노드를 비우고 삭제하게 됩니다. 참고로 기준값은 Pod 의 Request 값입니다. (실제 리소스 사용률은 관계 없음)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;주요 파라미터&amp;gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 102.907%; height: 318px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px;&quot;&gt;Parameter&lt;/td&gt;
&lt;td style=&quot;width: 64.1214%; height: 18px;&quot;&gt;Description&lt;/td&gt;
&lt;td style=&quot;width: 9.99449%; height: 18px;&quot;&gt;Default&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 38px;&quot;&gt;scan-interval&lt;/td&gt;
&lt;td style=&quot;width: 64.1214%; height: 38px;&quot;&gt;How often cluster is reevaluated for scale up or down&lt;/td&gt;
&lt;td style=&quot;width: 9.99449%; height: 38px;&quot;&gt;10초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 38px;&quot;&gt;scale-down-delay-after-add&lt;/td&gt;
&lt;td style=&quot;width: 64.1214%; height: 38px;&quot;&gt;How long after scale up that scale down evaluation resumes&lt;/td&gt;
&lt;td style=&quot;width: 9.99449%; height: 38px;&quot;&gt;10분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 38px;&quot;&gt;scale-down-unneeded-time&lt;/td&gt;
&lt;td style=&quot;width: 64.1214%; height: 38px;&quot;&gt;How long a node should be unneeded before it is eligible for scale down&lt;/td&gt;
&lt;td style=&quot;width: 9.99449%; height: 38px;&quot;&gt;10분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 36px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 36px;&quot;&gt;scale-down-utilization-threshold&lt;/td&gt;
&lt;td style=&quot;width: 64.1214%; height: 36px;&quot;&gt;Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down&lt;/td&gt;
&lt;td style=&quot;width: 9.99449%; height: 36px;&quot;&gt;0.5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 아래 조건이 있다면 Autoscaler 는 파드 재배치 및 노드 삭제를 진행하지 못합니다.&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;PodDisruptionBudget이 설정되어있을때&lt;/li&gt;
&lt;li&gt;kubesystem namespace를 가진 pod가 있을때 ( 단 디폴트로 뜨는 kube-system 의 pod 는 예외. eg) kube-proxy )&lt;/li&gt;
&lt;li&gt;pod를 다른 node로 이동할 수 없을 때 (lack of resources, non-matching node selectors or affinity, matching anti-affinity, etc)&lt;/li&gt;
&lt;li&gt;Pod 에 &quot;cluster-autoscaler.kubernetes.io/safe-to-evict&quot; : &quot;false&quot; 어노테이션이 설정 되어있는경우.&lt;/li&gt;
&lt;li&gt;Pods that are not backed by a controller object (so not created by deployment, replica set, job, stateful set etc). *&lt;/li&gt;
&lt;li&gt;로컬 스토리지를 사용하는 파드가 있는 경우&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Karpenter&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 Karpenter 입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카펜터는 스케줄링 되지 못하는 파드에 대응해 노드를 자동으로 추가해주는 AWS 의 오토스케일링 오픈소스 툴입니다. 물론 불필요한 노드를 줄이는 기능도 포함됩니다. 카펜터는 Pending 된 파드 resoure request의 합을 기반으로 적절한 인스턴스 타입을 결정하는 것이 특징입니다. re:Invent 2021 에서 Karpenter 를 공식 발표하였으며 v0.5 의 정식 버전 오픈했다(GA). 즉 프로덕션 환경에서 사용할 정도의 안정성을 지녔음을 의미하며 또한 구조상 AWS 외 다른 CSP 에서도 동작 가능합니다. (다만 현재 버전에서는 EKS 외 다른 클러스터에서는 지원이 불가)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동작 로직입니다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가용 노드가 없어 Pod 가 배치되지 못하면 Karpenter 가 해당 사실 인지&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/disjOx/btrIaPWccip/YNZkwotQ1KfNgJ4hunkzo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/disjOx/btrIaPWccip/YNZkwotQ1KfNgJ4hunkzo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/disjOx/btrIaPWccip/YNZkwotQ1KfNgJ4hunkzo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdisjOx%2FbtrIaPWccip%2FYNZkwotQ1KfNgJ4hunkzo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;637&quot; height=&quot;192&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Custom Resource 인 Provisioner 가 어떤 instance type 으로 배포할 지 (Spot 사용 여부 등) 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjjdr5/btrH6HkoxP7/HylWNaiKY4HnUpA5Z4URKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjjdr5/btrH6HkoxP7/HylWNaiKY4HnUpA5Z4URKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjjdr5/btrH6HkoxP7/HylWNaiKY4HnUpA5Z4URKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjjdr5%2FbtrH6HkoxP7%2FHylWNaiKY4HnUpA5Z4URKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;801&quot; height=&quot;198&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;노드가 배포 되면 karpenter 가 직접 해당 노드로 바인딩&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TJeo4/btrH76jTaZw/KEXIFV7sTdozp3azkdrkbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TJeo4/btrH76jTaZw/KEXIFV7sTdozp3azkdrkbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TJeo4/btrH76jTaZw/KEXIFV7sTdozp3azkdrkbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTJeo4%2FbtrH76jTaZw%2FKEXIFV7sTdozp3azkdrkbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;824&quot; height=&quot;200&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Karpenter 가 노드 Provisiong 및 Pod scheduling 에 직접 관여하면서 성능(속도)가 많이 개선되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pod pending 후 creating 까지 소요시간을 보면 아래와 같이 3배 정도 빨라진 것을 확인할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5Xsss/btrIbMEZfps/3cqQTNcF2jZBJT4TCzv8gK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5Xsss/btrIbMEZfps/3cqQTNcF2jZBJT4TCzv8gK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5Xsss/btrIbMEZfps/3cqQTNcF2jZBJT4TCzv8gK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5Xsss%2FbtrIbMEZfps%2F3cqQTNcF2jZBJT4TCzv8gK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;302&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노드 삭제(&lt;span data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;deprovisioned) 의 경우 아래와 같은 방법으로 수행됩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Provisioner Deletion : provisiner 가 삭제될 시&lt;/li&gt;
&lt;li&gt;Node empty : 노드에 daemonset 을 제외한 파드가 없을 시 ttlSecondsAfterEmpty 값에 따라 삭제&lt;/li&gt;
&lt;li&gt;Node expired : 노드가 생성된 후 업데이트 등의 목적으로 ttlSecondsUntilExpired 값에 따라 삭제&lt;/li&gt;
&lt;li&gt;manual deleted : kubectl 로 사용자가 임의 삭제&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 Scale-in 을 원하지 않는 파드(노드) 가 있다면 아래와 같은 조건으로 회피 가능합니다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Disruption budgets 가 설정된 파드가 있고 해당 노드에서 삭제할 수 없는 상황인 경우&lt;/li&gt;
&lt;li&gt;파드에 do-not-evict 어노테이션이 설정된 경우 (&lt;a href=&quot;http://karpenter.sh/do-not-evict:&quot;&gt;karpenter.sh/do-not-evict:&lt;/a&gt; true) : 해당 노드 유지&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 솔루션(k8s autoscaler) 과 신규 솔루션(Karpenter) 를 간단히 비교하면 다음과 같습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2088&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Xewyx/btrIbL7cckn/QkG9QM5Lx8UmGRQKoyHS71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Xewyx/btrIbL7cckn/QkG9QM5Lx8UmGRQKoyHS71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Xewyx/btrIbL7cckn/QkG9QM5Lx8UmGRQKoyHS71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXewyx%2FbtrIbL7cckn%2FQkG9QM5Lx8UmGRQKoyHS71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2088&quot; height=&quot;604&quot; data-origin-width=&quot;2088&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영 환경에 맞춰 솔루션을 선택하는 것은 사용자의 몫입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만, Karpenter 가 신규 프로젝트이고 계속 버전 업데이트가 되면서 기능이 추가 되는 상황을 생각하면 Autoscaler 첫 도입시 Karpenter 를 고려해볼 만도 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문의 사항은 fernweh@sk.com 로 보내주시던가 여기 댓글에 남겨주세요.&amp;nbsp;&lt;/p&gt;</description>
      <category>autoscaler</category>
      <category>autoscaling</category>
      <category>CAS</category>
      <category>cluster autoscaler</category>
      <category>karpenter</category>
      <category>오토스케일러</category>
      <category>오토스케일링</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://skdt.tistory.com/15</guid>
      <comments>https://skdt.tistory.com/15#entry15comment</comments>
      <pubDate>Mon, 25 Jul 2022 13:56:50 +0900</pubDate>
    </item>
    <item>
      <title>Kubernetes 백업 및 복구 솔루션 비교 (Velero, Kasten)</title>
      <link>https://skdt.tistory.com/13</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Kuberntes 는 다양한 환경에서 사용되고 있습니다. 보다 많은 Workload 를 수용하고, Mission Critical 서비스를 적용하는 사례가 늘고 있습니다. 그러나 백업/복구 체계가 잘 갖춰진 사이트는 그렇게 많지 않습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전부터 Legacy 환경에서는 Agent 방식을 사용해 OS,Data 영역을 백업/복구해 왔으며, IaaS 기반 가상화 환경에서는 VM 을 Image 상태로 저장하고 손쉽게 복원할 수 있습니다. 하지만 k8s 환경에서는 앞서 얘기한 두가지 방식으로는 온전히 백업/복구를 수행할 수 없습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠버네티스 환경에서는 크게 아래 항목들이 백업 대상에 포함되어야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dockerfile 또는 Container Image&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Persistent volume (storage)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;etcd (cluster DB) &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;kubernetes resource (manifest file)&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Velero&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;velero 는 vmware 에서 관리하는 Kubernetes 클러스터 오픈 소스 백업 및 DR 툴입니다(이전 &lt;span style=&quot;background-color: #ffffff; color: #61717d;&quot;&gt;Heptio Ark&lt;span&gt;)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;.&amp;nbsp;전체 클러스터 또는 개별 네임스페이스 또는 레이블의 예약된 백업을 실행할 수 있도록 합니다. 다른 툴이 etcd 에 직접 접근하여 백업을 수행하는 반면, velero 는 API 를 사용하여 리소스 상태를 저장하고 복구합니다. 이런 API-Driven 방식 tool 의 이점은 아래와 같습니다 .&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;namespace, resource type, label selector별로 선택하여 리소스를 캡쳐할 수 있으므로 백업/복구의 유연성이 높습니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;CSP 의 관리형 k8s 를 사용하는 경우 etcd 를 직접 접근할 수 없지만 API 는 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 아래와 같이 구성됩니다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;k8s 클러스터 내 설치되는 Pod 형태의 Server&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3f3e3e; background-color: #ffffff; letter-spacing: 0px;&quot;&gt;command-line client (사용자 PC)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3f3e3e; background-color: #ffffff; letter-spacing: 0px;&quot;&gt;Object Stroage (백업 파일 저장)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1550&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yK5D8/btrxTOT5euf/Sb2NOxwLepZxnhfkRKOyYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yK5D8/btrxTOT5euf/Sb2NOxwLepZxnhfkRKOyYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yK5D8/btrxTOT5euf/Sb2NOxwLepZxnhfkRKOyYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyK5D8%2FbtrxTOT5euf%2FSb2NOxwLepZxnhfkRKOyYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1550&quot; height=&quot;452&quot; data-origin-width=&quot;1550&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i&gt;The Velero client makes a call to the Kubernetes API server to create a&lt;span&gt;&amp;nbsp;&lt;/span&gt;Backup&lt;span&gt;&amp;nbsp;&lt;/span&gt;object.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;The&lt;span&gt;&amp;nbsp;&lt;/span&gt;BackupController&lt;span&gt;&amp;nbsp;&lt;/span&gt;notices the new&lt;span&gt;&amp;nbsp;&lt;/span&gt;Backup&lt;span&gt;&amp;nbsp;&lt;/span&gt;object and performs validation.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;The&lt;span&gt;&amp;nbsp;&lt;/span&gt;BackupController&lt;span&gt;&amp;nbsp;&lt;/span&gt;begins the backup process. It collects the data to back up by querying the API server for resources.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;The&lt;span&gt;&amp;nbsp;&lt;/span&gt;BackupController&lt;span&gt;&amp;nbsp;&lt;/span&gt;makes a call to the object storage service &amp;ndash; for example, AWS S3 &amp;ndash; to upload the backup file.&lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Install&amp;nbsp;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공식 velero Docs 및 다른 blog 에서도 설치과정은 쉽게 찾을 수 있기에&amp;nbsp;&lt;span&gt;본 Post 에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;상세 설치 과정은 생략합니다.&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;prerequisites&quot; data-ke-size=&quot;size20&quot;&gt;Prerequisites&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;kubernetes 클러스터가 접근 가능한 Clinet (kubectl 수행 가능)&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Install CLI&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Client 운영체제에 따라 설치 (자세한 내용은 &lt;a href=&quot;https://velero.io/docs/v1.8/basic-install/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velero.io/docs/v1.8/basic-install/&lt;/a&gt;&amp;nbsp;참조. '22년 3월 기준 최신 버전은 v1.8)&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MacOS - Homebrew&amp;nbsp;&lt;/li&gt;
&lt;li&gt;GitHub release (tar)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Windows - chocloatey&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h4 id=&quot;install-and-configure-the-server-components&quot; data-ke-size=&quot;size20&quot;&gt;Install and configure the server components&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cluster Provider 환경에 따라 설치 (자세한 내용은 &lt;a href=&quot;https://velero.io/docs/v1.8/supported-providers/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velero.io/docs/v1.8/supported-providers/&lt;/a&gt;&amp;nbsp;참조) - 아래는 AWS 기준&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Create S3 buckek ( 백업 파일 저장 용도 )&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Set permissions for Velero ( S3 접근 권한 설정 )&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Install and start Velero ( 클러스터 내 velero server 배포 )&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Use&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Case 에 따라 DR, Cluster migration, 정기/임시 백업 등 다양한 목적으로 사용할 수 있으며 아래는 전체 클러스터 백업(PV 포함), 특정 네임스페이스 복구를 테스트해 봤습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 클러스터 내 resource 확인&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1648543319030&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(⎈ |jhs-eks-work-cluster:wordpress-cwi) eks-velero  k get all -A
NAMESPACE       NAME                                             READY   STATUS      RESTARTS   AGE
eks-work        pod/appjs-pbn5q                                  1/1     Running     0          7d22h
eks-work        pod/backend-app-7dccc69568-bxpqm                 1/1     Running     0          7d7h
eks-work        pod/backend-app-7dccc69568-mdxrk                 1/1     Running     0          7d7h
eks-work        pod/batch-app-27475710-tqj7v                     0/1     Completed   0          10m
eks-work        pod/batch-app-27475715-8pc95                     0/1     Completed   0          5m21s
eks-work        pod/batch-app-27475720-trvjk                     0/1     Completed   0          21s
eks-work        pod/centos-64ff4d9b-57ld6                        1/1     Running     0          7d22h
eks-work        pod/network-test                                 1/1     Running     0          8d
eks-work        pod/nginx-pod                                    1/1     Running     0          8d
kube-system     pod/aws-node-jlnqb                               1/1     Running     0          10d
kube-system     pod/aws-node-twzkj                               1/1     Running     0          10d
kube-system     pod/coredns-6dbb778559-2lfg4                     1/1     Running     0          10d
kube-system     pod/coredns-6dbb778559-4zgpr                     1/1     Running     0          10d
kube-system     pod/kube-proxy-96pv5                             1/1     Running     0          10d
kube-system     pod/kube-proxy-mczbt                             1/1     Running     0          10d
kube-system     pod/metrics-server-64cf6869bd-j62vx              1/1     Running     0          10d
velero          pod/velero-879fff5fc-j9prd                       1/1     Running     0          4d2h
wordpress-cwi   pod/understood-zebu-mariadb-0                    1/1     Running     0          4d21h
wordpress-cwi   pod/understood-zebu-wordpress-68fbc786c4-vz65r   1/1     Running     0          4d21h

NAMESPACE       NAME                                TYPE           CLUSTER-IP       EXTERNAL-IP                                                                    PORT(S)                      AGE
default         service/kubernetes                  ClusterIP      10.100.0.1       &amp;lt;none&amp;gt;                                                                         443/TCP                      10d
eks-work        service/backend-app-service         LoadBalancer   10.100.252.166   a7fd24eb308c743f7a7a34962327bb36-1014081366.ap-northeast-2.elb.amazonaws.com   8080:30907/TCP               7d6h
kube-system     service/kube-dns                    ClusterIP      10.100.0.10      &amp;lt;none&amp;gt;                                                                         53/UDP,53/TCP                10d
kube-system     service/metrics-server              ClusterIP      10.100.245.118   &amp;lt;none&amp;gt;                                                                         443/TCP                      10d
wordpress-cwi   service/understood-zebu-mariadb     ClusterIP      10.100.111.97    &amp;lt;none&amp;gt;                                                                         3306/TCP                     4d21h
wordpress-cwi   service/understood-zebu-wordpress   LoadBalancer   10.100.233.186   a12b1077cb2b94cfb92c6b0f8e19e5c6-798956363.ap-northeast-2.elb.amazonaws.com    80:31877/TCP,443:30075/TCP   4d21h

NAMESPACE     NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
kube-system   daemonset.apps/aws-node     2         2         2       2            2           &amp;lt;none&amp;gt;          10d
kube-system   daemonset.apps/kube-proxy   2         2         2       2            2           &amp;lt;none&amp;gt;          10d

NAMESPACE       NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
eks-work        deployment.apps/backend-app                 2/2     2            2           7d7h
eks-work        deployment.apps/centos                      1/1     1            1           7d22h
kube-system     deployment.apps/coredns                     2/2     2            2           10d
kube-system     deployment.apps/metrics-server              1/1     1            1           10d
velero          deployment.apps/velero                      1/1     1            1           4d2h
wordpress-cwi   deployment.apps/understood-zebu-wordpress   1/1     1            1           4d21h

NAMESPACE       NAME                                                   DESIRED   CURRENT   READY   AGE
eks-work        replicaset.apps/appjs                                  1         1         1       7d22h
eks-work        replicaset.apps/backend-app-7dccc69568                 2         2         2       7d7h
eks-work        replicaset.apps/centos-64ff4d9b                        1         1         1       7d22h
kube-system     replicaset.apps/coredns-6dbb778559                     2         2         2       10d
kube-system     replicaset.apps/metrics-server-64cf6869bd              1         1         1       10d
velero          replicaset.apps/velero-879fff5fc                       1         1         1       4d2h
wordpress-cwi   replicaset.apps/understood-zebu-wordpress-68fbc786c4   1         1         1       4d21h

NAMESPACE       NAME                                       READY   AGE
wordpress-cwi   statefulset.apps/understood-zebu-mariadb   1/1     4d21h

NAMESPACE   NAME                      SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
eks-work    cronjob.batch/batch-app   */5 * * * *   False     0        22s             6d23h

NAMESPACE   NAME                           COMPLETIONS   DURATION   AGE
eks-work    job.batch/batch-app-27475710   1/1           10s        10m
eks-work    job.batch/batch-app-27475715   1/1           10s        5m22s
eks-work    job.batch/batch-app-27475720   1/1           10s        22s
(⎈ |jhs-eks-work-cluster:wordpress-cwi) eks-velero 
(⎈ |jhs-eks-work-cluster:wordpress-cwi) eks-velero  k get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                          STORAGECLASS   REASON   AGE
pvc-9f7733ef-2cb3-479c-ad4e-cd16cd1e94d1   8Gi        RWO            Delete           Bound    wordpress-cwi/data-understood-zebu-mariadb-0   gp2                     4d21h
pvc-f555d44a-93e1-4773-9e06-d8aef53142a3   10Gi       RWO            Delete           Bound    wordpress-cwi/understood-zebu-wordpress        gp2                     4d21h&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클러스터 전체 백업&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;552 개 item 및 2개 pv (block strage) 에 대해 백업 완료 : 8초 소요&amp;nbsp;&lt;/li&gt;
&lt;li&gt;보다 많은 workload 가 실행 중인 다른 클러스터도 수분 내에 백업 완료됨 &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1648543613233&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(⎈ |jhs-eks-work-cluster:wordpress-cwi) eks-velero  velero backup create first
Backup request &quot;first&quot; submitted successfully.
Run `velero backup describe first` or `velero backup logs first` for more details.
(⎈ |jhs-eks-work-cluster:wordpress-cwi) eks-velero  velero backup describe first
Name:         first
Namespace:    velero
Labels:       velero.io/storage-location=default
Annotations:  velero.io/source-cluster-k8s-gitversion=v1.21.5-eks-bc4871b
              velero.io/source-cluster-k8s-major-version=1
              velero.io/source-cluster-k8s-minor-version=21+

Phase:  Completed

Errors:    0
Warnings:  0

Namespaces:
  Included:  *
  Excluded:  &amp;lt;none&amp;gt;

Resources:
  Included:        *
  Excluded:        &amp;lt;none&amp;gt;
  Cluster-scoped:  auto

Label selector:  &amp;lt;none&amp;gt;

Storage Location:  default

Velero-Native Snapshot PVs:  auto

TTL:  720h0m0s

Hooks:  &amp;lt;none&amp;gt;

Backup Format Version:  1.1.0

Started:    2022-03-25 15:22:58 +0900 KST
Completed:  2022-03-25 15:23:06 +0900 KST

Expiration:  2022-04-24 15:22:58 +0900 KST

Total items to be backed up:  552
Items backed up:              552

Velero-Native Snapshots:  2 of 2 snapshots completed successfully (specify --details for more information)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;워드프레스가 설치된 wordpress-cwi namespace 삭제 ( 실수로 가정 )&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1648545593828&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;### namespace 삭제 (해당 namespace 상 모든 resource 삭제) 
(⎈ |jhs-eks-work-cluster:default) eks-velero  k delete ns wordpress-cwi
namespace &quot;wordpress-cwi&quot; deleted
(⎈ |jhs-eks-work-cluster:default) eks-velero  k get all -n wordpress-cwi
No resources found in wordpress-cwi namespace.
(⎈ |jhs-eks-work-cluster:default) eks-velero  k get pv
No resources found
(⎈ |jhs-eks-work-cluster:default) eks-velero  helm3 list -A
NAME	NAMESPACE	REVISION	UPDATED	STATUS	CHART	APP VERSION
(⎈ |jhs-eks-work-cluster:default) eks-velero 
(⎈ |jhs-eks-work-cluster:default) eks-velero 

### velero 로 해당 namespace 만 복구 ( 26개 Item 에 대해 복구 3초 소요 ) 
(⎈ |jhs-eks-work-cluster:default) eks-velero  velero restore create --from-backup first --include-namespaces wordpress-cwi
Restore request &quot;first-20220329180923&quot; submitted successfully.
Run `velero restore describe first-20220329180923` or `velero restore logs first-20220329180923` for more details.
(⎈ |jhs-eks-work-cluster:default) eks-velero 
(⎈ |jhs-eks-work-cluster:default) eks-velero  velero restore describe first-20220329180923
Name:         first-20220329180923
Namespace:    velero
Labels:       &amp;lt;none&amp;gt;
Annotations:  &amp;lt;none&amp;gt;

Phase:                       Completed
Total items to be restored:  26
Items restored:              26

Started:    2022-03-29 18:09:26 +0900 KST
Completed:  2022-03-29 18:09:29 +0900 KST

Backup:  first

Namespaces:
  Included:  wordpress-cwi
  Excluded:  &amp;lt;none&amp;gt;

Resources:
  Included:        *
  Excluded:        nodes, events, events.events.k8s.io, backups.velero.io, restores.velero.io, resticrepositories.velero.io
  Cluster-scoped:  auto

Namespace mappings:  &amp;lt;none&amp;gt;

Label selector:  &amp;lt;none&amp;gt;

Restore PVs:  auto

Preserve Service NodePorts:  auto

### Pod 기동 중 
(⎈ |jhs-eks-work-cluster:default) eks-velero  k get all -n wordpress-cwi
NAME                                             READY   STATUS              RESTARTS   AGE
pod/understood-zebu-mariadb-0                    0/1     ContainerCreating   0          20s
pod/understood-zebu-wordpress-68fbc786c4-vz65r   0/1     ContainerCreating   0          20s

NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP                                                                    PORT(S)                      AGE
service/understood-zebu-mariadb     ClusterIP      10.100.83.99    &amp;lt;none&amp;gt;                                                                         3306/TCP                     20s
service/understood-zebu-wordpress   LoadBalancer   10.100.15.218   aa74b993bd5b347c693e6e0553e0b7f1-1811961745.ap-northeast-2.elb.amazonaws.com   80:31402/TCP,443:31785/TCP   20s

NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/understood-zebu-wordpress   0/1     1            0           20s

NAME                                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/understood-zebu-wordpress-68fbc786c4   1         1         0       20s

NAME                                       READY   AGE
statefulset.apps/understood-zebu-mariadb   0/1     19s

### 모든 Pod 기동 완료 및 helm release 복구 
(⎈ |jhs-eks-work-cluster:default) eks-velero  k get all -n wordpress-cwi
NAME                                             READY   STATUS    RESTARTS   AGE
pod/understood-zebu-mariadb-0                    1/1     Running   0          73s
pod/understood-zebu-wordpress-68fbc786c4-vz65r   1/1     Running   0          73s

NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP                                                                    PORT(S)                      AGE
service/understood-zebu-mariadb     ClusterIP      10.100.83.99    &amp;lt;none&amp;gt;                                                                         3306/TCP                     73s
service/understood-zebu-wordpress   LoadBalancer   10.100.15.218   aa74b993bd5b347c693e6e0553e0b7f1-1811961745.ap-northeast-2.elb.amazonaws.com   80:31402/TCP,443:31785/TCP   73s

NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/understood-zebu-wordpress   1/1     1            1           73s

NAME                                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/understood-zebu-wordpress-68fbc786c4   1         1         1       73s

NAME                                       READY   AGE
statefulset.apps/understood-zebu-mariadb   1/1     72s
(⎈ |jhs-eks-work-cluster:default) eks-velero 
(⎈ |jhs-eks-work-cluster:default) eks-velero  helm3 list -A
NAME           	NAMESPACE    	REVISION	UPDATED                             	STATUS  	CHART           	APP VERSION
understood-zebu	wordpress-cwi	1       	2022-03-24 19:47:30.365403 +0900 KST	deployed	wordpress-13.1.4	5.9.2
(⎈ |jhs-eks-work-cluster:default) eks-velero &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CLI 상에서도 모든 Resource 가 정상적으로 기동되었으며 실제 서비스도 문제 없음을 확인할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상기 테스트에서는 namespace 단위의 백업/복구를 테스트했으나 velero 에서는 다양한 옵션의 백업/복구 기능을 지원합니다. (labelselector, TTL, Scheduling, incremental backup  등)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Kasten K10&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 veeam 의 k8s 백업/복구 솔루션인 Kasten 입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;veeam 은 veritas, Dell, commvault 등과 함께 &lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;백업/복구 영역에서 &lt;/span&gt;손꼽히는 솔루션 기업 중 하나입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;k8s 백업 솔루션인 kasten k10은 다양한 고객 및 글로벌 레퍼런스를 가지고 있는만큼 검증된 솔루션으로 볼 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용하기 위해선 유료 라이선스가 필요하지만 10 Node 내 Non-product 클러스터를 대상으로 사용할 수 있는 free license 로 세팅해보겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구조는 앞서 살펴본 velero 와 유사하지만 GUI 환경 및 편의 기능을 위한 component 가 추가되어 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1880&quot; data-origin-height=&quot;1034&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCFUuM/btrDpP2fPQM/67k7eIwLsK7RYJQWPjOi01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCFUuM/btrDpP2fPQM/67k7eIwLsK7RYJQWPjOi01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCFUuM/btrDpP2fPQM/67k7eIwLsK7RYJQWPjOi01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCFUuM%2FbtrDpP2fPQM%2F67k7eIwLsK7RYJQWPjOi01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1880&quot; height=&quot;1034&quot; data-origin-width=&quot;1880&quot; data-origin-height=&quot;1034&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Install&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;velero 와 마찬가지로 본 Post 에서는 자세한 설치과정은 생략하고 AWS 에서의 개략적인  구성에 대해서만 다룹니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2차 백업을 위한 File 또는 Object 스토리지 세팅 및 Export/Import 는 제외합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Prerequisites&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #404040;&quot;&gt;Add the Kasten Helm charts repository&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;volumeSnapshot CRD 생성 ( volumesnapshotclasses, volumesnapshotcontents, volumesnapshots )&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;snapshot-controller 설치 &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;&lt;span data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;snapshotclass 생성 (k10.kasten.io/is-snapshot-class: &quot;true&quot;&amp;nbsp; 어노테이션 추가)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;&lt;span data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;Snapshotter 생성 ( AWS CSI driver 호환 )&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Install (helm)&amp;nbsp;&lt;/h4&gt;
&lt;pre id=&quot;code_1653884997960&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;helm install k10 kasten/k10 --namespace=kasten-io \
    --set secrets.awsAccessKeyId=&quot;${AWS_ACCESS_KEY_ID}&quot; \
    --set secrets.awsSecretAccessKey=&quot;${AWS_SECRET_ACCESS_KEY}&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Use&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dashboard 에서 Backup Policy 생성 후 실행&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3204&quot; data-origin-height=&quot;2240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bm7hsi/btrDxoWocWW/53tQlYFIbOCj0k3kbsjpC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bm7hsi/btrDxoWocWW/53tQlYFIbOCj0k3kbsjpC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bm7hsi/btrDxoWocWW/53tQlYFIbOCj0k3kbsjpC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbm7hsi%2FbtrDxoWocWW%2F53tQlYFIbOCj0k3kbsjpC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3204&quot; height=&quot;2240&quot; data-origin-width=&quot;3204&quot; data-origin-height=&quot;2240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지정한 Namespace 상의 모든 Resource 백업 현황 확인&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2938&quot; data-origin-height=&quot;1194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Byowo/btrDrPOxbrU/dujSW0TYkKhpEIr9u3EAhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Byowo/btrDrPOxbrU/dujSW0TYkKhpEIr9u3EAhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Byowo/btrDrPOxbrU/dujSW0TYkKhpEIr9u3EAhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FByowo%2FbtrDrPOxbrU%2FdujSW0TYkKhpEIr9u3EAhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2938&quot; height=&quot;1194&quot; data-origin-width=&quot;2938&quot; data-origin-height=&quot;1194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;백업한 리소스 중 특정 리소스만 선택하여 별도의 namespace (wordpress-hellozcp) 상에서 복구 테스트&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;463&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kNhP7/btrDlE7Bt25/4BzkD55QjH6vsgkzILWAxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kNhP7/btrDlE7Bt25/4BzkD55QjH6vsgkzILWAxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kNhP7/btrDlE7Bt25/4BzkD55QjH6vsgkzILWAxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkNhP7%2FbtrDlE7Bt25%2F4BzkD55QjH6vsgkzILWAxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;463&quot; height=&quot;316&quot; data-origin-width=&quot;463&quot; data-origin-height=&quot;316&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1607&quot; data-origin-height=&quot;884&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FskUS/btrDy1GnsLe/Dzp9zhnORyWZnW109rCsck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FskUS/btrDy1GnsLe/Dzp9zhnORyWZnW109rCsck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FskUS/btrDy1GnsLe/Dzp9zhnORyWZnW109rCsck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFskUS%2FbtrDy1GnsLe%2FDzp9zhnORyWZnW109rCsck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1607&quot; height=&quot;884&quot; data-origin-width=&quot;1607&quot; data-origin-height=&quot;884&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;복구 완료 후 서비스 확인&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1575&quot; data-origin-height=&quot;881&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xLIDy/btrDrP8ZIxQ/yqZ97SyWKK29grC2RZPO5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xLIDy/btrDrP8ZIxQ/yqZ97SyWKK29grC2RZPO5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xLIDy/btrDrP8ZIxQ/yqZ97SyWKK29grC2RZPO5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxLIDy%2FbtrDrP8ZIxQ%2FyqZ97SyWKK29grC2RZPO5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1575&quot; height=&quot;881&quot; data-origin-width=&quot;1575&quot; data-origin-height=&quot;881&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1653891000964&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(⎈ |jhs-eks-work-cluster:wordpress) work  k get deploy,svc -n wordpress-hellozcp
NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/hellozcp   1/1     1            1           20m

NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP                                                                   PORT(S)          AGE
service/hellozcp-svc   LoadBalancer   10.100.166.46   a2685b3d652124051a0f64d5263966eb-195969067.ap-northeast-2.elb.amazonaws.com   8080:30152/TCP   20m

(⎈ |jhs-eks-work-cluster:wordpress) work  k exec -it network-test -n eks-work -- curl 10.100.166.46:8080
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;ZCP Sample Application&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;h1&amp;gt;Hello ZCP&amp;lt;/h1&amp;gt;
&amp;lt;h2&amp;gt;Update test&amp;lt;/h2&amp;gt;
&amp;lt;h2&amp;gt;Update test2&amp;lt;/h2&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;%&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Velero &amp;amp; K10 비교&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 솔루션은 모두 kubernetes 의 특징을 잘 살려 백업 및 복구가 기존 Legacy 에 비해 신속하고 간편하게 진행됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 큰 차이점이라고 한다면 라이선스 비용과 수행환경(CLI, GUI) 가 가장 큰 사항이라 생각됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몇몇 테스트 후 정리한 차이점은 다음과 같습니다.&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;velero&lt;/td&gt;
&lt;td&gt;K10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;비용&lt;/td&gt;
&lt;td&gt;무료&lt;/td&gt;
&lt;td&gt;유료 (worker node 기준)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;사용자 Interface&lt;/td&gt;
&lt;td&gt;CLI&lt;/td&gt;
&lt;td&gt;GUI, CLI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;개발 결정권&lt;/td&gt;
&lt;td&gt;커뮤니티&lt;/td&gt;
&lt;td&gt;벤더&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;설치 Resource&lt;/td&gt;
&lt;td&gt;velero deployment 1ea&lt;br /&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;(restic 사용시 restic daemonset 추가)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;16 개 deploy, 18 개 service , 6 개 persistent volume 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;저장공간&lt;/td&gt;
&lt;td&gt;Object storage&lt;/td&gt;
&lt;td&gt;File, Object storage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;편의기능&lt;/td&gt;
&lt;td&gt;백업,복구에 충실한 편&lt;/td&gt;
&lt;td&gt;백업,복구 외 다양한 솔루션과의 인터페이스 제공 (eco-system)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 솔루션 모두 백업 및 복구에 대해서는 훌륭한 성능을 보여주고 있다고 생각되며,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 솔루션을 도입할지는 비용, 사용자, 주변 환경 등을 고려해 선택해야 합니다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 포스트에서는 개략적인 내용만을 다뤘으니 혹시 사용 중 문의 사항이 있다면 연락 주시기 바랍니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>Cloud Computing/Kubernetes</category>
      <category>cluster backup</category>
      <category>K10</category>
      <category>k8s backup</category>
      <category>kasten</category>
      <category>kubernetes backup</category>
      <category>veeam</category>
      <category>Velero</category>
      <category>velero kasten 비교</category>
      <category>vmware backup</category>
      <category>백업 솔루션</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://skdt.tistory.com/13</guid>
      <comments>https://skdt.tistory.com/13#entry13comment</comments>
      <pubDate>Mon, 30 May 2022 17:56:43 +0900</pubDate>
    </item>
    <item>
      <title>Cloud Assessment Pack (Part 3) - AWS Migration HUB: 수집 데이터 확인</title>
      <link>https://skdt.tistory.com/14</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. AWS Migration HUB 개념설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS Application Discovery Service는 AWS Migration Hub 서비스에 통합 되어 있습니다. Migration HUB에는 ADS, Right Sizing, Migrate Tool 기능이 포함 되어 있습니다. 이번 섹션 에서는 ADS Console을 사용해서 Agent 관리, 서버 관리, 수집된 데이터를 확인 하는 방법에 대해 알아 보겠습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. AWS Migration Hub Console 기본&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Migration Hub Console은 크게 Servers, Applications, Data Collectors, Tools로 나눠 집니다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;AWS Console 로그인 &amp;gt; AWS Migration Hub 서비스 &amp;gt; ADS Console 포함 되어 있음&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;639&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTZX8C/btrBGgZyl52/kSFPtIr5NmENBEulCysHU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTZX8C/btrBGgZyl52/kSFPtIr5NmENBEulCysHU0/img.png&quot; data-alt=&quot;Migration Hub 메인 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTZX8C/btrBGgZyl52/kSFPtIr5NmENBEulCysHU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTZX8C%2FbtrBGgZyl52%2FkSFPtIr5NmENBEulCysHU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;639&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;639&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Migration Hub 메인 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Servers: Connector또는 Agent를 통해 수집된 서버들의 정보&lt;/li&gt;
&lt;li&gt;Applications: Migration의 그룹이 되는 Application 으로 사용자가 수작업으로 생성 필요&lt;/li&gt;
&lt;li&gt;Data Collectors: Data 수집 도구 (Connectors, Agent) 관리&lt;/li&gt;
&lt;li&gt;Tools: Discovery 할 수 있는 Tools 설명 (Import, Discovery Agent, Discovery Connector-Agentless&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. ADS 데이터 수집 도구 (Connectors, Agents)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent 또는 Connectors를 통해 등록 된 서버를 관리 합니다. 해당 화면에서 수집 되고 있는 서버들의 기본 정보 (IP, Hostname, 수집 상태, Agent Health&amp;hellip;&amp;hellip;등을 확인 가능 합니다.)&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Agents&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent로 설치된 리스트를 보여줍니다. 설치된 서버 확인 후, 데이터 수집을 시작 합니다.&lt;/p&gt;
&lt;pre class=&quot;sqf&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스 &amp;gt; Discover &amp;gt; Data Collectors &amp;gt; Agents &amp;gt; 설치된 Agent 리스트가 나옴 &amp;gt; Agent 선택 후, &amp;lsquo;Start Data Collection&amp;rsquo; 버튼을 누르면 데이터 수집 시작함&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C33uw/btrBwtzrQ2e/Q9VY8U9Yz8uzxHEnrNKkO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C33uw/btrBwtzrQ2e/Q9VY8U9Yz8uzxHEnrNKkO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C33uw/btrBwtzrQ2e/Q9VY8U9Yz8uzxHEnrNKkO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC33uw%2FbtrBwtzrQ2e%2FQ9VY8U9Yz8uzxHEnrNKkO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;225&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Health(상태) 정보&lt;br /&gt;. Healthy: 데이터 수집이 활성화되어 있지 않습니다. Agent는 정상 작동&lt;br /&gt;. Unhealthy: Agent가 오류 상태입니다. 데이터 수집 및 보고가 되지 않습니다.&lt;br /&gt;. Unknown: 한 시간 이상 연결이 수립되지 않았습니다.&lt;br /&gt;. Shutdown: Agent가 시스템 서비스나 데몬 종료 때문에 통신 되지 않습니다.&lt;br /&gt;. Running: 데이터 수집이 활성화되어 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Connectors&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Connectors로 설치된 리스트를 보여줍니다. 설치된 서버 확인 후, 데이터 수집을 시작 합니다.&lt;/p&gt;
&lt;pre class=&quot;armasm&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스 &amp;gt; Discover &amp;gt; Data Collectors &amp;gt; Connectors &amp;gt; 설치된 Agent 리스트가 나옴 &amp;gt; Agent 선택 후, &amp;lsquo;Start Data Collection&amp;rsquo; 버튼을 누르면 데이터 수집 시작함&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 수집 데이터 확인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent 또는 Connector를 통해 수집 된 서버의 데이터를 확인 합니다.&lt;br /&gt;Servers(서버) 페이지는 데이터 수집 도구에 알려진 각 서버 인스턴스에 대한 시스템 구성 및 성능 데이터를 제공합니다. 서버 정보를 보고, 필터로 서버를 정렬하고, 키 값 쌍으로 서버에 태그를 지정하고, 서버 및 시스템에 대한 세부 정보를 내보낼 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Console 통해 수집된 데이터 확인
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스 &amp;gt; Discover &amp;gt; Servers &amp;gt; Server 클릭 &amp;gt; 수집된 Inventory 정보 및 성능 데이터가 나옴&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;267&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lAIQL/btrBGfl45ib/3is6rHUOfUU6Xc8wcKm6t0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lAIQL/btrBGfl45ib/3is6rHUOfUU6Xc8wcKm6t0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lAIQL/btrBGfl45ib/3is6rHUOfUU6Xc8wcKm6t0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlAIQL%2FbtrBGfl45ib%2F3is6rHUOfUU6Xc8wcKm6t0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;267&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;267&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;553&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcdOcs/btrBtdcMfnK/QQQ6mHPerrY1oJ88CNsxjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcdOcs/btrBtdcMfnK/QQQ6mHPerrY1oJ88CNsxjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcdOcs/btrBtdcMfnK/QQQ6mHPerrY1oJ88CNsxjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcdOcs%2FbtrBtdcMfnK%2FQQQ6mHPerrY1oJ88CNsxjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;553&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;553&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수집 된 데이터 Excel로 Export 하기&amp;nbsp;&lt;/li&gt;
&lt;li class=&quot;routeros&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스 &amp;gt; Discover &amp;gt; Servers &amp;gt; Server 클릭 &amp;gt; 수집된 Inventory 정보 화면 &amp;gt; 우측 상단의 &amp;lsquo;Actions&amp;rsquo; &amp;gt; Export Server Detail &amp;gt; 하단에 Exports 진행 현황이 나옴 &amp;gt; Download를 클릭해 CSV 형태의 데이터를 다운 &amp;gt; csv파일 모음 zip 파일이 다운됨&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u8Vv0/btrBF6pjprZ/CTYoOknOeF8aKGzyL2NX4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u8Vv0/btrBF6pjprZ/CTYoOknOeF8aKGzyL2NX4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u8Vv0/btrBF6pjprZ/CTYoOknOeF8aKGzyL2NX4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu8Vv0%2FbtrBF6pjprZ%2FCTYoOknOeF8aKGzyL2NX4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;123&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Export된 데이터&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FwDv0/btrBsE2N2Fb/AOqZyDNeglfRL2qzqeOdYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FwDv0/btrBsE2N2Fb/AOqZyDNeglfRL2qzqeOdYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FwDv0/btrBsE2N2Fb/AOqZyDNeglfRL2qzqeOdYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFwDv0%2FbtrBsE2N2Fb%2FAOqZyDNeglfRL2qzqeOdYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;594&quot; height=&quot;256&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Applications Group 생성 및 서버 바인딩&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Applications Group을 생성 후 Agent 또는 Connector를 통해 수집 된 서버를 바인딩 시킵니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Application 생성
&lt;pre class=&quot;gauss&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스 &amp;gt; Discover &amp;gt; Applications &amp;gt; Create New Application&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDyLS9/btrBzUqBToz/y3ORBldZdka9H14jjYHAyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDyLS9/btrBzUqBToz/y3ORBldZdka9H14jjYHAyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDyLS9/btrBzUqBToz/y3ORBldZdka9H14jjYHAyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDyLS9%2FbtrBzUqBToz%2Fy3ORBldZdka9H14jjYHAyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;256&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Application &amp;ndash; 수집된 서버 바인딩&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스 &amp;gt; Discover &amp;gt; Applications &amp;gt; Application 선택 후 &amp;lsquo;Action&amp;rsquo; &amp;gt; &amp;lsquo;Add Servers to application 선택 &amp;gt; APP 에 서버 바인딩&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sLMZD/btrBEcX9dmo/qZMz9ltcc1YjioUc4wJUF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sLMZD/btrBEcX9dmo/qZMz9ltcc1YjioUc4wJUF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sLMZD/btrBEcX9dmo/qZMz9ltcc1YjioUc4wJUF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsLMZD%2FbtrBEcX9dmo%2FqZMz9ltcc1YjioUc4wJUF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;475&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Cloud Computing/AWS</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://skdt.tistory.com/14</guid>
      <comments>https://skdt.tistory.com/14#entry14comment</comments>
      <pubDate>Mon, 9 May 2022 14:16:55 +0900</pubDate>
    </item>
    <item>
      <title>Cloud Assessment Pack (Part 2) - AWS ADS: Agentless, Import방식 자원 수집</title>
      <link>https://skdt.tistory.com/12</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. AWS ADS: Agentless 방식 자원 수집&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agentless 방식의 검색은 AWS Discovery Connector를 사용합니다. AWS Discovery Connector는 VMware 가상 머신(VM)에 대한 정보만 수집할 수 있는 VMware 애플리케이션입니다. OVA(Open Virtualization Archive) 파일을 사용하여 Discovery Connector를 VMware vCenter Server 환경의 VM(가상 머신)으로 설치합니다.&lt;br /&gt;Discovery Connector는 운영 체제와 상관없이 VMware 메타데이터를 사용해 서버 정보를 수집하기 때문에 최초 온프레미스 인프라 평가에 필요한 시간을 최소화합니다.&lt;br /&gt;Discovery Connector에 대한 배포 및 구성을 완료한 후 Application Discovery Service 엔드포인&lt;br /&gt;트를 사용해 등록하고 구성 정보에 대한 서비스를 정기적으로(약 60분 간격) ping합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;작동 방식&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커넥터의 데이터 수집 프로세스를 시작하면, 이 어플라이언스는 VMware vCenter Server에 연결하고 특정 vCenter에서 관리하는 모든 VM 및 호스트에 대한 정보를 수집합니다. 수집된 데이터는 Secure Sockets Layer(SSL) 암호화를 사용하여 Application Discovery Service에 전송됩니다. 커넥터는 새 버전의 커넥터를 사용할 수 있을 때 자동으로 업그레이드하도록 구성되어 있습니다. 이 구성 설정은 언제든지 변경할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;수집 Data&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agentless 방식을 통해 수집되는 서버의 데이터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 필드 | 설명&lt;br /&gt;applicationConfigurationId* VM이 그룹으로 속한 마이그레이션 애플리케이션의 ID&lt;br /&gt;avgCpuUsagePct 폴링 기간의 평균 CPU 사용량(%)&lt;br /&gt;avgDiskBytesReadPerSecond 폴링 기간에 디스크에서 읽은 평균 바이트 수&lt;br /&gt;avgDiskBytesWrittenPerSecond 폴링 기간에 디스크에 쓴 평균 바이트 수&lt;br /&gt;avgDiskReadOpsPerSecond&lt;i&gt;* 초당 평균 읽기 I/O 연산 수 null&lt;br /&gt;avgDiskWriteOpsPerSecond** 초당 평균 쓰기 I/O 연산 수&lt;br /&gt;avgFreeRAM 평균적으로 사용 가능한 RAM(MB)&lt;br /&gt;avgNetworkBytesReadPerSecond 초당 평균 읽기 처리량(바이트)&lt;br /&gt;avgNetworkBytesWrittenPerSecond 초당 평균 쓰기 처리량(바이트)&lt;br /&gt;configId Application Discovery Service가 검색된 VM에 할당한 ID&lt;br /&gt;configType 검색된 리소스의 유형&lt;br /&gt;connectorId 검색 커넥터 가상 어플라이언스의 ID&lt;br /&gt;cpuType VM의 경우 vCPU, 호스트의 경우 실제 모델&lt;br /&gt;datacenterId vCenter ID&lt;br /&gt;hostId&lt;/i&gt; VM 호스트 ID&lt;br /&gt;hostName 가상 소프트웨어를 실행하는 호스트의 이름&lt;br /&gt;하이퍼바이저 하이퍼바이저 유형&lt;br /&gt;id 서버 ID&lt;br /&gt;lastModifiedTimeStamp* 데이터를 내보내기 전 마지막으로 데이터를 수집한 날짜와 시간&lt;br /&gt;macAddress VM 제조업체의 MAC&lt;br /&gt;주소 가상 소프트웨어 제조사&lt;br /&gt;maxCpuUsagePct 폴링 기간 동안 CPU 최대 사용량(%)&lt;br /&gt;maxDiskBytesReadPerSecond 폴링 기간에 디스크에서 읽은 최대 바이트 수&lt;br /&gt;maxDiskBytesWrittenPerSecond 폴링 기간에 디스크에 쓴 최대 바이트 수&lt;br /&gt;maxDiskReadOpsPerSecond&lt;i&gt;* 초당 최대 읽기 I/O 연산 수&lt;br /&gt;maxDiskWriteOpsPerSecond** 초당 최대 쓰기 I/O 연산 수&lt;br /&gt;maxNetworkBytesReadPerSecond 초당 최대 읽기 처리량(바이트)&lt;br /&gt;maxNetworkBytesWrittenPerSecond 초당 최대 쓰기 처리량(바이트)&lt;br /&gt;memoryReservation&lt;/i&gt; VM에 메모리가 초과 커밋되지 않도록 제한&lt;br /&gt;moRefId 고유한 vCenter 관리 객체 참조 ID&lt;br /&gt;name* 네트워크나 VM의 이름(사용자 지정)&lt;br /&gt;numCores CPU의 독립 처리 유닛 수&lt;br /&gt;numCpus VM의 중앙 처리 유닛 수&lt;br /&gt;numDisks&lt;i&gt;* VM의 디스크 수&lt;br /&gt;numNetworkCards** VM의 네트워크 카드 수&lt;br /&gt;osName VM의 운영 체제 이름&lt;br /&gt;osVersion VM의 운영 체제 버전&lt;br /&gt;portGroupId&lt;/i&gt; VLAN의 구성 포트 그룹 ID&lt;br /&gt;portGroupName* VLAN의 구성 포트 그룹 이름&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;사전 준비 작업&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agentless를 이용한 Discovery Connector 설치 작업 전에, 지원 하는 Hypervisor 및 사전 필요 작업 내용을 확인 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지원 Hypervisor정보 확인&lt;br /&gt;Discovery Connector는 VMware vCenter 버전 V5.5, V6, V6.5를 지원합니다&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Discovery Connector 설치&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Discovery Connector 다운로드&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;vCenter에 VMware 관리자로 로그인한 후 Discovery Connector OVA 파일을 다운로드할 디렉터리로 바꿉니다.&lt;/li&gt;
&lt;li&gt;Discovery Connector OVA를 다운로드합니다.&lt;/li&gt;
&lt;li&gt;시스템 환경의 해싱 알고리즘에 따라 MD5나 SHA256를 다운로드해서 체크섬 값이 포함된 파일을 얻습니다. 이 값을 사용하여 이전 단계에서 다운로드한 AWSDiscoveryConnector.ova 파일을 확인합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Discovery Connector 배포&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드한 Discovery Connector의 OVA 파일을 VMware 환경에 배포합니다. Discovery Connector를 배포하려면 아래 작업을 수행 합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;vCenter에 VMware 관리자로 로그인합니다.&lt;/li&gt;
&lt;li&gt;파일, OVF 템플릿 배포를 선택한 후 앞 단원에서 다운로드한 ova 파일을 선택하고 마법사를 완료합니다.&lt;/li&gt;
&lt;li&gt;[Disk Format] 페이지에서 씩 프로비전 디스크 유형 중 하나를 선택합니다. 성능과 안정성이 가장 뛰어나기 때문에 [Thick Provision Eager Zeroed]를 선택하는 것이 좋습니다. 그러나 디스크를 0으로 초기화하려면 몇 시간이 필요합니다. [Thin Provision]은 선택하지 마십시오. 이 옵션은 더 빠른 배포가 가능하지만 디스크 성능이 크게 저하됩니다. 자세한 내용은 VMware 설명서에서 지원되는 가상 디스크의 유형을 참조하십시오.&lt;/li&gt;
&lt;li&gt;vSphere 클라이언트 인벤토리 트리에서 새로 배포된 템플릿의 컨텍스트(오른쪽 클릭) 메뉴를 찾아서 열고 [Power], [Power On]을 차례대로 선택합니다.&lt;/li&gt;
&lt;li&gt;템플릿의 컨텍스트(오른쪽 클릭) 메뉴를 다시 열고 [Open Console]을 선택합니다. 콘솔에 커넥터 콘솔의 IP 주소가 표시됩니다. IP 주소를 기록합니다. 연결 설정 프로세스를 완료하는 데 필요합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;ADS 포탈 등록 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent가 서버에 정상적으로 설치가 되었다면, 자동으로 AWS의 Migraiton Hub &amp;ndash; ADS 포탈에 Agent가 등록이 됩니다. Portal에서의 Agent 등록 확인 방법은 아래와 같습니다.&lt;/p&gt;
&lt;pre class=&quot;sqf&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스  Discover  Data Collectors  Agents  설치된 Agent 리스트가 나옴&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. AWS ADS: Import 방식 자원 수집&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Migration Hub 의 Import를 사용하면 모든 소스에서 데이터를 가져올 수 있습니다. 제공된 데이터는 CSV 파일에 대해 지원되는 형식이어야 하며, 데이터에는 해당 필드에 대해 지원되는 범위가 있는 지원되는 필드만 포함되어야 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;작동방식&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 AWS에서 제공하는 엑셀 양식에 서버 정보를 입력하여, Migration Hub에 업로드 하면, 서버 정보가 자동으로 Import 됩니다.&lt;br /&gt;Migration Hub 사용 법은 다음 post에서 상세히 가이드 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;수집 Data&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 표에서 별표가 표시된 가져오기 필드는 필수 필드입니다. 가져오기 파일의 각 레코드는 서버 또는 애플리케이션을 고유하게 식별하기 위해 값을 채운 이러한 필수 필드를 한 개 이상 가져야 합니다. 그렇지 않을 경우 필수 필드가 없는 레코드를 가져올 때 실패합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가져오기 필드 이름 |설명&lt;br /&gt;ExternalId* 각 레코드를 고유하게 표시할 수 있는 사용자 정의 식별자입니다.&lt;br /&gt;Ex) ExternalId는 데이터 센터에 있는 서버의 인벤토리 ID&lt;br /&gt;SMBiosId BIOS(SMBIOS) ID&lt;br /&gt;IPAddress* 따옴표로 묶은 서버 IP 주소의 쉼표 구분 목록.&lt;br /&gt;MACAddress* 따옴표로 묶은 서버 MAC 주소의 쉼표 구분 목록.&lt;br /&gt;HostName* 서버의 호스트 이름입니다. 이 값에 정규화된 도메인 이름(FQDN)을&lt;br /&gt;사용할 것을 권장합니다.&lt;br /&gt;VMware.MoRefId* 관리되는 객체 참조 ID. VMware.VCenterId를 제공해야 합니다.&lt;br /&gt;VMware.VCenterId* 가상 머신 고유 식별자.VMware.MoRefId를 제공해야 합니다.&lt;br /&gt;CPU.NumberOfProcessors CPU 수입니다.&lt;br /&gt;CPU.NumberOfCores 물리적 코어 총수&lt;br /&gt;CPU.NumberOfLogicalCores 서버의 모든 CPU에서 동시에 실행할 수 있는 총 스레드 수입니다.&lt;br /&gt;일부 CPU는 단일 CPU 코어에서 동시에 실행할 수 있는 여러 스레드를 지원합니다. 이 경우 이 숫자는 물리적(또는 가상) 코어의 수보다 더 많습니다.&lt;br /&gt;OS.Name 운영 체제 이름.&lt;br /&gt;OS.Version 운영 체제 버전.&lt;br /&gt;VMware.VMName 가상 머신의 이름.&lt;br /&gt;RAM.TotalSizeInMB 서버에서 사용 가능한 총 RAM(MB)&lt;br /&gt;RAM.UsedSizeInMB.Avg 서버에서 사용된 평균 RAM 양 (MB)&lt;br /&gt;RAM.UsedSizeInMB.Max 서버에서 사용 가능한 최대 RAM양(MB)&lt;br /&gt;CPU.UsagePct.Avg 검색 도구가 데이터를 수집할 때 의 평균 CPU 사용률.&lt;br /&gt;CPU.UsagePct.Max 검색 도구가 데이터를 수집할 때의 최대 CPU 사용률.&lt;br /&gt;DiskReadsPerSecondInKB.Avg 초당 평균 디스크 읽기 수(KB).&lt;br /&gt;DiskWritesPerSecondInKB.Avg 초당 평균 디스크 쓰기 수(KB).&lt;br /&gt;DiskReadsPerSecondInKB.Max 초당 최대 디스크 읽기 수(KB).&lt;br /&gt;DiskWritesPerSecondInKB.Max 초당 최대 디스크 쓰기 수(KB).&lt;br /&gt;DiskReadsOpsPerSecond.Avg 초당 평균 디스크 I/O 연산 수.&lt;br /&gt;DiskWritesOpsPerSecond.Avg 초당 평균 디스크 쓰기 연산 수&lt;br /&gt;DiskReadsOpsPerSecond.Max 초당 최대 디스크 읽기 작업 수.&lt;br /&gt;DiskWritesOpsPerSecond.Max 초당 최대 디스크 쓰기 작업 수.&lt;br /&gt;NetworkReadsPerSecondInKB.Avg 초당 평균 네트워크 읽기 작업 수(KB)&lt;br /&gt;NetworkWritesPerSecondInKB.Avg 초당 평균 네트워크 쓰기 작업 수(KB)&lt;br /&gt;NetworkReadsPerSecondInKB.Max 초당 최대 네트워크 읽기 작업 수(KB)&lt;br /&gt;NetworkWritesPerSecondInKB.Max 초당 최대 네트워크 쓰기 작업 수(KB)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 AWS AWS ADS(Application Discovery Service)의 Agentless, Import 수집방식에 대해서 알아봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 Post에서는 수집된 자원을 확인하고 관리할 수 잇는, Migration HUB에 대해서 업데이트 하겠습니다.&lt;/p&gt;</description>
      <category>Cloud Computing/AWS</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://skdt.tistory.com/12</guid>
      <comments>https://skdt.tistory.com/12#entry12comment</comments>
      <pubDate>Mon, 7 Mar 2022 10:17:27 +0900</pubDate>
    </item>
    <item>
      <title>Docker Desktop 유료화 및 대응방안</title>
      <link>https://skdt.tistory.com/9</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Docker Desktop 이란?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Windows와 OSX(Mac)에서 별도의 복잡한 환경 설정없이 간편하게 설치만으로 Docker 및 Kubernetes를 사용할 수 있게 해주는 GUI 관리 툴 입니다.&lt;/li&gt;
&lt;li&gt;Docker 자체를 구동해주는 &lt;i&gt;docker-engine&lt;/i&gt;이나 관리 명령어를 제공하는 &lt;i&gt;docker cli&lt;/i&gt; 가 같이 설치 되기는 하지만, 해당 라이선스 정책과는 별개 입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mEPGJ/btrswUd8edT/2GCcwF6Kas3CRLfqHOP9Ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mEPGJ/btrswUd8edT/2GCcwF6Kas3CRLfqHOP9Ak/img.png&quot; data-alt=&quot;출처: https://www.docker.com/products/docker-desktop&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mEPGJ/btrswUd8edT/2GCcwF6Kas3CRLfqHOP9Ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmEPGJ%2FbtrswUd8edT%2F2GCcwF6Kas3CRLfqHOP9Ak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;380&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처: https://www.docker.com/products/docker-desktop&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Docker Desktop 유료화&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;유료 플랜 적용 기준&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;무료사용이가능했던 Docker Desktop이 아래 기준을 벗어나면 이제 유료 플랜을 구독해야합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개인 사용자&lt;/li&gt;
&lt;li&gt;회사에서 사용하는 경우
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;250인 이하의 회사&lt;/li&gt;
&lt;li&gt;매출 $1000만 달러 미만의 회사&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2022년 2월 1일부터 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;구독 모델&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자별 월간 또는 연간 플랜으로 구독할수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구독 모델별 세부 기능 및 비용은 &lt;a href=&quot;https://www.docker.com/pricing&quot;&gt;https://www.docker.com/pricing&lt;/a&gt;&amp;nbsp;에서 확인 가능합니다.&lt;/li&gt;
&lt;li&gt;docker hub 유료 포함되므로, 좀더 docker hub를 편하게 쓰실 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1263&quot; data-origin-height=&quot;453&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX2dqZ/btrstJYvnl5/brSwYvwvMJixt04DpztxhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX2dqZ/btrstJYvnl5/brSwYvwvMJixt04DpztxhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX2dqZ/btrstJYvnl5/brSwYvwvMJixt04DpztxhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX2dqZ%2FbtrstJYvnl5%2FbrSwYvwvMJixt04DpztxhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1263&quot; height=&quot;453&quot; data-origin-width=&quot;1263&quot; data-origin-height=&quot;453&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Docker Desktop 대체 방안&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상기 유료 플랜 구독 비용에 부담이 없으면, 그대로 구독해서 쓰는게 가장 편한 방법입니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Docker나 Kubernetes를 쓰기 위해서 Docker Desktop이 꼭 필요한지 생각보면 그건 아닙니다. &lt;br /&gt;사실 Container Runtime과 CLI를 설치해주고 관리를 좀 더 편하게 해주는 툴일 뿐이고, 다른  방법들도 있기 때문입니다. &lt;br /&gt;물론 Docker Desktop이 가장 잘 만들어지고 대중화된 툴이기 때문에, 다른 툴을 쓸때 조금 더 불편하긴 합니다.&lt;/li&gt;
&lt;li&gt;Docker Engine 이나, Docker CLI는 유료화 대상이 아니기 때문에 Docker Desktop을 삭제하고 Docker Engine 과 Docker CLI를 설치하면 됩니다. 그리고 PC에 Kubernetes가 필요하다면 Minikube, K3s, MicroK8s 등을 설치해서 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Docker Engine은 Linux위에서 구동&lt;/b&gt; 되므로 Linux를 일단 띄워야 하므로 Hypervisor가 필요하게 됩니다.&lt;br /&gt;로 Windows는 WSL2 를 이용하고, Mac은 VirtualBox 또는 QEMU를 이용하고 Lima나 minikube를 이용해서 Linux를 띄웁니다.&lt;/li&gt;
&lt;li&gt;이러한 과정을 한번에 해준것이 Docker Desktop 이였고, SUSE에 인수된 Rancher에서도 대응되는 무료 툴을 발표했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 참조링크의 여러가지 툴을 테스트 해 본 결과 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Rancher Desktop&lt;/b&gt;&lt;/span&gt;을 사용하는 방법이 제일 간단하고 활용성도  높았습니다.&lt;br /&gt;&lt;a href=&quot;https://rancherdesktop.io/&quot;&gt;https://rancherdesktop.io/&lt;/a&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Rancher Desktop 소개&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;라이센스는 Apache2.0이고, Electron 기반으로 만들어져 있습니다.&lt;/li&gt;
&lt;li&gt;OSX에서는 가상화로 Lima/QEMU 를 사용하고, Windows 10에서는 WSL2를 사용합니다.&lt;/li&gt;
&lt;li&gt;경량화된 Kubernetes인 &lt;b&gt;k3s&lt;/b&gt;를 설치합니다. PC에서 테스트/개발용으로 쓰기에는 가벼워서 더 좋은 것 같습니다.&lt;/li&gt;
&lt;li&gt;업데이트도 지원하며, 간단한 GUI도 역시 제공하며, Kuberenetes를 쉽게 끄고 켤수 있고, K8s Context 변경도 GUI로 지원 합니다.&lt;/li&gt;
&lt;li&gt;Container Runtime으로 &lt;b&gt;dockerd와 containerd 둘 다 선택가능&lt;/b&gt;합니다. 이를 위한 CLI로 &lt;b&gt;docker&lt;/b&gt;와&amp;nbsp;&lt;b&gt;nerdctl&lt;/b&gt;를 지원합니다.&lt;/li&gt;
&lt;li&gt;실제 구성 아키텍처는 아래와 같으며, 결국  아래에 별도 설명할 매뉴얼 구성방식과 유사합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;644&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5B2mH/btrspJE9jr1/lE7mRa7Guf0kDm2tOuBB20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5B2mH/btrspJE9jr1/lE7mRa7Guf0kDm2tOuBB20/img.png&quot; data-alt=&quot;Rancher Desktop 아키텍처&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5B2mH/btrspJE9jr1/lE7mRa7Guf0kDm2tOuBB20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5B2mH%2FbtrspJE9jr1%2FlE7mRa7Guf0kDm2tOuBB20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1366&quot; height=&quot;644&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;644&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Rancher Desktop 아키텍처&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dv8APF/btrsyFmXQ17/a1Higgs2yZpRk95d0S23sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dv8APF/btrsyFmXQ17/a1Higgs2yZpRk95d0S23sK/img.png&quot; data-alt=&quot;Rancehr Desktop 설정 화면 : Runtime 선택과 스펙 변경을 쉽게 할수 있다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dv8APF/btrsyFmXQ17/a1Higgs2yZpRk95d0S23sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdv8APF%2FbtrsyFmXQ17%2Fa1Higgs2yZpRk95d0S23sK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;942&quot; height=&quot;600&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Rancehr Desktop 설정 화면 : Runtime 선택과 스펙 변경을 쉽게 할수 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Rancher Desktop 설치 방법 및 주의점&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 Docker Desktop을 삭제 해야 합니다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;https://rancherdesktop.io/&quot;&gt;https://rancherdesktop.io/&lt;/a&gt; 에서 &lt;/b&gt;환경별(Windows, Mac(Intel,ARM), Linux)&lt;b&gt; 설치 파일을 받아서 실행, 설치하면 끝입니다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;설치시 Container Engine(Runtime)을 선택해야 하는데, &lt;b&gt;containerd&lt;/b&gt;를 쓰면 &lt;b&gt;neredctl&lt;/b&gt;로 container를 다루어야 합니다. &lt;br /&gt;기존 처럼 &lt;b&gt;docker cli&lt;/b&gt;를 쓸려면 &lt;b&gt;dockerd(movy)&lt;/b&gt;를 선택해야 합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;kubernetes 아키텍처상 바람직한 지향점은 containerd가 맞지만, 현재는 docker-desktop 대체용의 호환성을 목표로 하므로 dockerd를 선택하도록 합니다. 설정 메뉴를 통해 언제든지 변경 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;324&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgCEt9/btrsrUzqXCx/VymDLO2QM1GzjSll7G9WI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgCEt9/btrsrUzqXCx/VymDLO2QM1GzjSll7G9WI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgCEt9/btrsrUzqXCx/VymDLO2QM1GzjSll7G9WI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgCEt9%2FbtrsrUzqXCx%2FVymDLO2QM1GzjSll7G9WI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;324&quot; height=&quot;357&quot; data-origin-width=&quot;324&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Mac의 경우 기본 커맨드의 링크를 걸기 위해 권한을 요청하는 아래 팝업이 뜨고, 허용해주기 위해 시스템 비밀번호를 입력해 주어야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;536&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/etC5OP/btrsrmbVLQh/47nL6jDZjiWHUnPgWhemk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/etC5OP/btrsrmbVLQh/47nL6jDZjiWHUnPgWhemk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/etC5OP/btrsrmbVLQh/47nL6jDZjiWHUnPgWhemk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FetC5OP%2FbtrsrmbVLQh%2F47nL6jDZjiWHUnPgWhemk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;269&quot; height=&quot;321&quot; data-origin-width=&quot;536&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1862&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TdJ5T/btrsH8DbaNz/5IL0m4NMev4jhc8QSkxYj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TdJ5T/btrsH8DbaNz/5IL0m4NMev4jhc8QSkxYj1/img.png&quot; data-alt=&quot;Supporting Uiilities에서 (삭제된) 기본 docker 커맨드를 기본 패스에 링크 걸수 있습니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TdJ5T/btrsH8DbaNz/5IL0m4NMev4jhc8QSkxYj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTdJ5T%2FbtrsH8DbaNz%2F5IL0m4NMev4jhc8QSkxYj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1862&quot; height=&quot;732&quot; data-origin-width=&quot;1862&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Supporting Uiilities에서 (삭제된) 기본 docker 커맨드를 기본 패스에 링크 걸수 있습니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설치가 완료가 되면 K3s가 떠있으며, 아래 처럼 관련 container 및 Kubernetes Object들을 확인할 수 있습니다.&lt;br /&gt;특이한 점은 ingress로 Traefik을 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1663&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcajQE/btrsxE20ky8/Kk7klE2l7kPDLYcagPDGI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcajQE/btrsxE20ky8/Kk7klE2l7kPDLYcagPDGI1/img.png&quot; data-alt=&quot;docker 커맨드로 노드의 container를 확인 할수 있다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcajQE/btrsxE20ky8/Kk7klE2l7kPDLYcagPDGI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcajQE%2FbtrsxE20ky8%2FKk7klE2l7kPDLYcagPDGI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1663&quot; height=&quot;222&quot; data-origin-width=&quot;1663&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker 커맨드로 노드의 container를 확인 할수 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2276&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvkk8J/btrsxD4ag6B/pCzxcWNRO5wH406kXqykYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvkk8J/btrsxD4ag6B/pCzxcWNRO5wH406kXqykYK/img.png&quot; data-alt=&quot;kubectl 커맨드로 node의 상세 내용 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvkk8J/btrsxD4ag6B/pCzxcWNRO5wH406kXqykYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbvkk8J%2FbtrsxD4ag6B%2FpCzxcWNRO5wH406kXqykYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2276&quot; height=&quot;106&quot; data-origin-width=&quot;2276&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;kubectl 커맨드로 node의 상세 내용 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1203&quot; data-origin-height=&quot;579&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b51YA8/btrsrP5EG0G/CtXvy6RCjXYDioiuBWtqv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b51YA8/btrsrP5EG0G/CtXvy6RCjXYDioiuBWtqv1/img.png&quot; data-alt=&quot;kubectl 커맨드로 k3s의 기본 object 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b51YA8/btrsrP5EG0G/CtXvy6RCjXYDioiuBWtqv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb51YA8%2FbtrsrP5EG0G%2FCtXvy6RCjXYDioiuBWtqv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1203&quot; height=&quot;579&quot; data-origin-width=&quot;1203&quot; data-origin-height=&quot;579&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;kubectl 커맨드로 k3s의 기본 object 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;매뉴얼 구성 가이드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매뉴얼로 VM위에 Ubuntu를 설치 한 후 Docker Engine을 설치하고 Host와 연결을 설정하는 방법입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Rancher Desktop를 쓰지 않고, 직접 Docker 환경을 구성 하고 싶을 때 사용 할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Windows&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 Docker Desktop 삭제&lt;/b&gt; : 시작 &amp;rarr; 설정 &amp;rarr; 앱 &amp;rarr; Docker Desktop&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WSL2 설치&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시작 버튼 우클릭 &amp;rarr; &lt;span style=&quot;color: #ee2323;&quot;&gt;Windows PowerShell(관리자) 실행&lt;/span&gt; &amp;rarr; 실행 된 커맨드 창에 &lt;span style=&quot;color: #ee2323;&quot;&gt;wsl --install&lt;/span&gt;&amp;nbsp;입력 후 엔터 &amp;rarr; 리부팅(다시 시작)후 로그인 하면 나머지 설치됨 &amp;rarr; ID/PW 설정&lt;/li&gt;
&lt;li&gt;또는 &lt;a href=&quot;https://aka.ms/wslstore&quot;&gt;https://aka.ms/wslstore&lt;/a&gt; 접속 &amp;rarr; MS Store 열기 &amp;rarr; Ubuntu 선택 &amp;rarr; 설치&lt;/li&gt;
&lt;li&gt;WSL2의 상세 설치 가이드는 아래 링크를 참고 합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/ko-kr/windows/wsl/install&quot;&gt;https://docs.microsoft.com/ko-kr/windows/wsl/install&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Docker 설치&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ubuntu를 설치 했기 때문에 사실 상 Ubuntu에 Docker를 설치하는 것과 거의 동일합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ubuntu에 Docker Engine 설치 : &lt;a href=&quot;https://docs.docker.com/engine/install/ubuntu/&quot;&gt;https://docs.docker.com/engine/install/ubuntu/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;스크립트 설치: Ubuntu를 열고 아래 커맨드 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1643964943797&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 스크립트에 설치 시작전 대기시간 20초가 있어 기다린다. Docker Desktop 권유는 무시.
curl -fsSL https://get.docker.com | sudo bash

# Windows용 docker client와 tcp로 통신하기 위한 설정
cat &amp;lt;&amp;lt;'EOF' | sudo tee /etc/docker/daemon.json
{
  &quot;features&quot;: { 
    &quot;buildkit&quot;: true 
  }, 
  &quot;hosts&quot;: [&quot;tcp://127.0.0.1:2375&quot;, 
  &quot;unix:///var/run/docker.sock&quot;]
}
EOF

# 자동 실행 설정
## Win 10 인 경우 : 셸시작시 자동 실행 설정 (WSL에서는 서비스 자동 실행 기능이 없음)
cat &amp;lt;&amp;lt;'EOF'&amp;gt;&amp;gt;~/.profile
wsl.exe -u root -e sh -c &quot;service docker status || service docker start&quot;
EOF

## Win 11 인 경우 : 부팅시 자동 실행 설정
cat &amp;lt;&amp;lt;'EOF' | sudo tee -a /etc/wsl.conf
[boot]
command=&quot;service docker start&quot;
EOF


sudo service docker start
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

# Test
docker run --rm -i  hello-world
docker run --rm -it alpine ping -c5 google.com&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Windows에서 Docker 환경 설정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ubuntu 셸안에서 계속 써도 되겠지만 Windows 에서 CLI를 실행 후 WSL2로 실행된 Docker-Engine에 연결할려면 다음과 같이 수행 합니다.&lt;/li&gt;
&lt;li&gt;아래 경로에서 CLI 파일을 받고 압축을 푼후 &lt;span style=&quot;color: #ee2323;&quot;&gt;docker.exe&lt;/span&gt; 를 PATH가 잡혀있는 곳으로 복사한다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://download.docker.com/win/static/stable/x86_64/docker-20.10.9.zip&quot;&gt;https://download.docker.com/win/static/stable/x86_64/docker-20.10.9.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이후 &lt;b&gt;파워셸&lt;/b&gt;에서 아래 커맨드를 실행해서 docker context를 변경 합니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1643964989627&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker.exe context create wsl
docker.exe context update wsl --description &quot;WSL&quot; --docker &quot;host=tcp://127.0.0.1:2375&quot;
docker.exe context use wsl

# Test
docker run --rm -i  hello-world&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고 링크&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://velog.io/@loganjeon/Docker-Desktop-유료화와-대응방법&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Docker-Desktop-유료화와-대응방법&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.wslhub.com/%EC%9C%A0%EB%A3%8C%EB%A1%9C-%EC%A0%84%ED%99%98%EB%90%98%EB%8A%94-%EB%8F%84%EC%BB%A4-%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1-%EB%8C%80%EC%95%88-%EC%B0%BE%EA%B8%B0-%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%82%AC%EC%9A%A9%EC%9E%90-74f1a261eb32&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;유료로 전환되는 도커 데스크톱 대안 찾기&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.bsk.im/2021/09/07/macos-docker-without-docker-feat-minikube-ko/&quot;&gt;Mac에서 Docker Desktop 사용하지 않고 Docker 사용하기 (feat. minikube)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://itnext.io/utilizing-docker-cli-without-docker-desktop-4933f3473d5e&quot;&gt;Utilizing Docker CLI without Docker Desktop&lt;/a&gt;&lt;a href=&quot;https://github.com/lima-vm/lima#lima-linux-virtual-machines-on-macos-in-most-cases&quot;&gt;Lima: Linux virtual machines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jybaek.tistory.com/934&quot;&gt;Docker Desktop 대탈출, multipass로 갑니다&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marcusnoble.co.uk/2021-09-01-migrating-from-docker-to-podman/&quot;&gt;Migrating from Docker to Podman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/44346109/how-to-easily-install-and-uninstall-docker-on-macos/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;OSX에서 Docker Desktop 삭제하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Cloud Computing/Kubernetes</category>
      <category>Docker</category>
      <category>docker desktop</category>
      <category>k3s</category>
      <category>Rancher Desktop</category>
      <author>뭉기</author>
      <guid isPermaLink="true">https://skdt.tistory.com/9</guid>
      <comments>https://skdt.tistory.com/9#entry9comment</comments>
      <pubDate>Fri, 4 Feb 2022 18:00:02 +0900</pubDate>
    </item>
    <item>
      <title>Cloud Assessment Pack (Part 1) - 소개 및 AWS ADS</title>
      <link>https://skdt.tistory.com/8</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목적&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cloud로의 마이그레이션을 생각하고 있는 고객을 위한, AS-IS 인프라 분석, 비용, 마이그레이션 우선순위, CSP 선정 등 빠른 분석이 필요합니다. 이런 작업을 수작업으로 할 경우에 많은 시간과 Resource가 들기 때문에, CSP의 서비스 및 Tool을 최대한 활용하여 자동화 하고 표준화 하는 작업이 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문서에서는 Cloud Assessment(평가)를 위한, CSP 서비스의 기술 검증 및 방법론의 표준화 작업 Cloud Quick Assessment Pack를 통해 To-Be Cloud로의 Insight 확보를 쉽게 할 수 있는 방법에 대해 설명 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 Tool에 대해서 사용 방법 및 활용 가이드를 제공하도록 하겠습니다. 아래 Tool들은 AWS 중심으로 되어있지만, Assessment 단계에서는 다른 CSP에 동일하게 적용하여 사용 가능 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cloud Assessment Pack 시리즈를 통해서 서버의 Data를 수집하는 방법, 수집 된 Data의 정보 및 활용하는 방법에 대해서 설명 하도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Cloud Assessment Pack 시리즈&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bolGIg/btrrR6HwGxp/7x3zoLY3ke2kXcpz6wtbx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bolGIg/btrrR6HwGxp/7x3zoLY3ke2kXcpz6wtbx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bolGIg/btrrR6HwGxp/7x3zoLY3ke2kXcpz6wtbx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbolGIg%2FbtrrR6HwGxp%2F7x3zoLY3ke2kXcpz6wtbx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1137&quot; height=&quot;446&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1 ADS Introduction&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1.1 ADS 개념&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS에서는 자동 Discovery Tool인 ADS(Application Discovery Service)를 사용하여, On-Premise 서버의 정보를 수집하는 서비스를 제공 하고 있습니다.&lt;br /&gt;ADS서비스에서는 ADS는 Agent 기반 및Agentless 기반(VMware만 지원)의 Data 수집 방법을 제공 합니다. Data는 서버 사양 정보, 성능 데이터 및 실행 중인 프로세스 세부 정보 수집 네트워크 연결 정보 등 입니다.&lt;br /&gt;수집된 데이터를 이용하여 AWS클라우드로의 마이그레이션을 계획할 수 있습니다. ADS는 AWS Migration Hub에 통합되기 때문에 단일 콘솔에 마이그레이션 상태 정보를 집계하여 마이그레이션 프로세스를 간소화 할 수 있습니다. Migration Hub 콘솔에서 검색한 서버를 확인하고 이를 애플리케이션으로 그룹화한 다음, 각 Application의 마이그레이션 상태를 확인 할 수 있습니다.&lt;br /&gt;ADS를 통해 수집된 데이터는 Excel, Right Sizing, MPA(Migration Portfolio Assessment, TCO), Amazon Athena(쿼리 분석), Amazon Quick Sight (시각화)을 통해서 추가 분석 할 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ADS 데이터 수집 과정&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;249&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HEzfm/btrrVY9zKQe/FRBUj4IGBElr9rR4NyMJV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HEzfm/btrrVY9zKQe/FRBUj4IGBElr9rR4NyMJV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HEzfm/btrrVY9zKQe/FRBUj4IGBElr9rR4NyMJV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHEzfm%2FbtrrVY9zKQe%2FFRBUj4IGBElr9rR4NyMJV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;249&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;249&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[출처] &lt;a href=&quot;https://www.slideshare.net/AmazonWebServices/save-money-and-migrate-faster-with-rapid-discovery-and-analysis-ent331-aws-reinvent-2018?from_action=save&quot;&gt;https://www.slideshare.net/AmazonWebServices/save-money-and-migrate-faster-with-rapid-discovery-and-analysis-ent331-aws-reinvent-2018?from_action=save&lt;/a&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1.2 Discovery Tool 비교&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS에서 SaaS 형식으로 제공하는 ADS 와 Third Party로 제공하는 TSO Logic 및 Risc Networks를 비교 설명 합니다. TSO Logic은 AWS에 의해서 인수 되었으며, AWS Portal에 SaaS 로 포함될 예정에 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqbU2f/btrrW1Y3Tbh/m6qlWjLUDDlKWr2lbcSnZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqbU2f/btrrW1Y3Tbh/m6qlWjLUDDlKWr2lbcSnZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqbU2f/btrrW1Y3Tbh/m6qlWjLUDDlKWr2lbcSnZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqbU2f%2FbtrrW1Y3Tbh%2Fm6qlWjLUDDlKWr2lbcSnZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1151&quot; height=&quot;481&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;481&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* AWS의 ADS는 VMware에 대해서만 Agentless 방식의 커넥터 제공&lt;br /&gt;** Agent 방식만 제공&lt;br /&gt;*** 수집 데이터 저장을 위한 S3비용 일부 발생, 툴 사용을 무료&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1.3 자원 수집 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ADS 자원 수집 방법은 아래와 같이 다양하게 지원하며, 이 글에서는 아래 방식에 대한 방법을 모두 소개 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Agent 방식&lt;/li&gt;
&lt;li&gt;Agentless 방식&lt;/li&gt;
&lt;li&gt;서버 Import 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2 ADS Agent 방식 자원 수집&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS Discovery Agent는 검색 및 마이그레이션을 위해 대상으로 지정된 On-premise 서버 및 VM에 설치하는AWS 소프트웨어입니다. 에이전트는 시스템 구성, 시스템 성능, 실행 중인 프로세스 및 시스템 간 네트워크 연결에 대한 세부 정보 등을 캡처합니다. 에이전트는 대부분의 Linux와 Windows 운영 체제를 지원하며, 물리적 온프레미스 서버, Amazon EC2 인스턴스, 가상 머신에 배포할 수 있습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.1 작동 방식&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등록 후에는 구성 정보를 얻기 위해 15분 간격으로 서비스를 ping합니다. 에이전트에 데이터 수집을 시작하 라는 명령을 보내면, 에이전트는 위치한 호스트나 VM(가상 머신)에 대한 데이터를 수집하기 시작합니다.&lt;br /&gt;수집된 데이터에는 시스템 사양, 성능 데이터, 네트워크 연결, 프로세스 데이터가 포함됩니다. 이 정보를 사용하여 IT 자산과 네트워크 종속성을 매핑할 수 있습니다. AWS에서 서버를 실행할 때의 비용을 결정하고 마이그레이션에 대한 계획을 수립하는 데 도움이 되는 데이터 포인트입니다.&lt;br /&gt;Discovery Agent는 TLS(전송 계층 보안) 암호화를 사용해 Application Discovery Service로 안전하게 데이터를 전송합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.2 수집 Data&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent를 통해 수집되는 서버의 데이터&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.3 사전 준비 작업&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent 설치 작업 전에, 지원 하는 OS리스트 및 사전 필요 작업 내용을 확인 합니다. 아래 사전 준비 작업을 진행 후 Agent 설치 작업을 진행해야 오류가 나는 것을 방지 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지원 OS 정보 확인&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Linux&lt;br /&gt;Amazon Linux 2012.03, 2015.03&lt;br /&gt;Amazon Linux 2(2018년 9월 25일 업데이트 이후)&lt;br /&gt;Ubuntu 12.04, 14.04, 16.04&lt;br /&gt;Red Hat Enterprise Linux 5.11, 6.9, 7.3&lt;br /&gt;CentOS 5.11, 6.9, 7.3&lt;br /&gt;SUSE 11 SP4, 12 SP2&lt;/li&gt;
&lt;li&gt;Windows&lt;br /&gt;Windows Server 2003 R2 SP2&lt;br /&gt;Windows Server 2008 R1 SP2, 2008 R2 SP1&lt;br /&gt;Windows Server 2012 R1, 2012 R2&lt;br /&gt;Windows Server 2016&lt;br /&gt;Windows Server 2019&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방화벽 오픈&lt;br /&gt;Agent가 설치될 서버에서 수집 서버로 데이터를 암호화 해서 보내기 위해, 443 Port Outbound Open 작업을 해줘야 합니다. 서버의 OS 방화벽 및 데이터 센터내의 방화벽 장비에서 작업을 해줘야 합니다. Inbound는 별도 작업을 해줄 필요가 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS Access Key ID 및 Secret Access Key 정보 확인&lt;br /&gt;AWS 계정의 Access Key ID와 Secret Access Key 정보를 AWS에서 포탈에서 확인을 합니다. 해당 정보는 Agent를 서버에 설치할 때 사용 됩니다.&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;-    AWS Portal(https://console.aws.amazon.com/) 로그인 &amp;gt; Service 검색: IAM &amp;gt; 사용자명 검색 &amp;gt; &amp;lsquo;액세스 키 만들기&amp;rsquo; 선택 &amp;gt; 생성된 Access Key ID 및 Secret Access Key 정보를 별도로 저장 (CSV 파일로 다운 로드도 가능) &lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.4 Linux Agent 설치&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테스트 서버 OS 정보 : Centos 7.7&lt;/li&gt;
&lt;li&gt;Agent 설치 파일 다운로드&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent가 설치될 서버에 접속해서, 아래 명령어를 실행 합니다.&lt;/p&gt;
&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;# sudo curl -o ./aws-discovery-agent.tar.gz https://s3-us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/linux/latest/aws-discovery-agent.tar.gz
# sudo tar -xzf aws-discovery-agent.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent 설치&lt;/p&gt;
&lt;pre class=&quot;lsl&quot;&gt;&lt;code&gt;# sudo bash install -r Your_Home_Region -k &amp;lt;aws key id&amp;gt; -s &amp;lt;aws key secret&amp;gt; # sudo bash install -r us-west-2 -k AKIxxxxxx -s QFtcE8xxxxxxx`&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 확인 및 Agent 관리&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1157&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lUAkw/btrrU5ufYmI/QdBvGwGqlr37amczcnXg2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lUAkw/btrrU5ufYmI/QdBvGwGqlr37amczcnXg2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lUAkw/btrrU5ufYmI/QdBvGwGqlr37amczcnXg2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlUAkw%2FbtrrU5ufYmI%2FQdBvGwGqlr37amczcnXg2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1157&quot; height=&quot;375&quot; data-origin-width=&quot;1157&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ADS 포탈 등록 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent가 서버에 정상적으로 설치가 되었다면, 자동으로 AWS의 Migraiton Hub &amp;ndash; ADS 포탈에 Agent가 등록이 됩니다. Portal에서의 Agent 등록 확인 방법은 아래와 같습니다.&lt;/p&gt;
&lt;pre class=&quot;sqf&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스 &amp;gt; Discover &amp;gt; Data Collectors &amp;gt; Agents &amp;gt; 설치된 Agent 리스트가 나옴&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent 문제 확인&lt;br /&gt;Agent 관련 문제가 생길 경우, 로그 파일 또는 Config 파일을 확인해서 트러블 슈팅을 진행 합니다. 아래의 위치에서 ADS Agent의 로그 및 Config 파일을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그파일 위치&lt;/p&gt;
&lt;pre class=&quot;awk&quot;&gt;&lt;code&gt;/var/log/aws/discovery/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Config 파일 위치&lt;/p&gt;
&lt;pre class=&quot;awk&quot;&gt;&lt;code&gt;/var/opt/aws/discovery/&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2.5 Windows Agent 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent 설치&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테스트 서버 OS 정보: Windows 2012&lt;/li&gt;
&lt;li&gt;사전 설치 필요 파일: Microsoft Visual C++ Redistributable for VS2015 x86&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;vim&quot;&gt;&lt;code&gt;Microsoft Download Center (https://www.microsoft.com/en-us/download/details.aspx?id=48145) 로 이동해 다운로드를 선택하면 다운로드 섹션 페이지로 이동합니다. 이 페이지에서 설치할 머신의 아키텍처와 상관 없이 vc_redist.x86.exe (&quot;x64&quot; 버전을 선택하지 않음)만 선택합니다. 그런 다음 다음을 선택합니다. 그러면 즉시 다운로드가 시작됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Agent 설치 파일 다운로드&lt;br /&gt;Agent가 설치될 서버에 접속해서, Agent 설치 파일을 다운로드 받습니다. 다운로드 받은 파일을 더블클릭해서 설치하면, 설치 오류가 나며, 다음단계에서 설치 명령어를 실행해야 정상적으로 설치가 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;awk&quot;&gt;&lt;code&gt;Agent 파일 위치: https://s3-us-west-2.amazonaws.com/aws-discovery-agent.us-west-2/windows/latest/AWSDiscoveryAgentInstaller.msi&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Agent 설치&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;stylus&quot;&gt;&lt;code&gt;&amp;gt; msiexec.exe /i AWSDiscoveryAgentInstaller.msi REGION=&quot;us-west-2&quot; KEY_ID=&quot;&amp;lt;AWS key ID&amp;gt;&quot; KEY_SECRET=&quot;&amp;lt;AWS key secret&amp;gt;&quot; /q

&amp;gt; msiexec.exe /i AWSDiscoveryAgentInstaller.msi REGION=&quot;us-west-2&quot; KEY_ID=&quot;AKxxxxxxxx&quot; KEY_SECRET=&quot;QFtcE8qUxxxxxxxxxxxxxxxx&quot; /q&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설치확인&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Windows Server Manager Services 콘솔을 통해 AWS Discovery Agent 실행(Running) 확인&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ADS 포탈 등록 확인&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent가 서버에 정상적으로 설치가 되었다면, 자동으로 AWS의 Migraiton Hub &amp;ndash; ADS 포탈에 Agent가 등록이 됩니다. Portal에서의 Agent 등록 확인 방법은 아래와 같습니다&lt;/p&gt;
&lt;pre class=&quot;sqf&quot;&gt;&lt;code&gt;AWS Migration Hub 서비스  Discover  Data Collectors  Agents  설치된 Agent 리스트가 나옴&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Agent 문제 확인&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Agent 관련 문제가 생길 경우, 로그 파일 또는 Config 파일을 확인해서 트러블 슈팅을 진행 합니다. 아래의 위치에서 ADS Agent의 로그 및 Config 파일을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그파일 위치&lt;/p&gt;
&lt;pre class=&quot;taggerscript&quot;&gt;&lt;code&gt;C:\\ProgramData\\AWS\\AWS Discovery\\Logs&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Config 파일 위치&lt;/p&gt;
&lt;pre class=&quot;taggerscript&quot;&gt;&lt;code&gt;C:\\ProgramData\\AWS\\AWS Discovery\\config&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 AWS 마이그레이션 Quick Assessment Pack 및 AWS ADS(Application Discovery Service)의 Agent 수집방식에 대해서 알아봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 Post에서는 ADS 자원 수집 방법중에 하나인 Agentless 방식과 Import 자원 수집 방식에 대해서 업데이트 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;감사합니다. :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 참고자료&lt;br /&gt;- &lt;a href=&quot;https://aws.amazon.com/ko/application-discovery/&quot;&gt;https://aws.amazon.com/ko/application-discovery/&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;https://docs.aws.amazon.com/application-discovery&quot;&gt;https://docs.aws.amazon.com/application-discovery&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;https://docs.aws.amazon.com/migrationhub/&quot;&gt;https://docs.aws.amazon.com/migrationhub/&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;https://mpa-proserve.amazonaws.com/&quot;&gt;https://mpa-proserve.amazonaws.com/&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/quicksight/latest/user/amazon-quicksight-user.pdf&quot;&gt;https://docs.aws.amazon.com/ko_kr/quicksight/latest/user/amazon-quicksight-user.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://www.slideshare.net/AmazonWebServices/save-money-and-migrate-faster-with-rapid-discovery-and-analysis-ent331-aws-reinvent-2018?from_action=save&quot;&gt;https://www.slideshare.net/AmazonWebServices/save-money-and-migrate-faster-with-rapid-discovery-and-analysis-ent331-aws-reinvent-2018?from_action=save&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Save Money and Migrate Faster with Rapid Discovery and Analysis (ENT3&amp;hellip;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;In this session, learn how to use AWS Application Discovery Service and AWS Migration Hub to quickly discover your existing infrastructure, calculate the cost &amp;hellip;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://www.slideshare.net%5D(https://www.slideshare.net/AmazonWebServices/save-money-and-migrate-faster-with-rapid-discovery-and-analysis-ent331-aws-reinvent-2018?from_action=save)&quot;&gt;www.slideshare.net](https://www.slideshare.net/AmazonWebServices/save-money-and-migrate-faster-with-rapid-discovery-and-analysis-ent331-aws-reinvent-2018?from_action=save)&lt;/a&gt;&lt;/p&gt;</description>
      <category>Cloud Computing/AWS</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://skdt.tistory.com/8</guid>
      <comments>https://skdt.tistory.com/8#entry8comment</comments>
      <pubDate>Fri, 28 Jan 2022 10:05:33 +0900</pubDate>
    </item>
    <item>
      <title>EKS Anywhere (3/3) - EKS Connector를 통한 Cluster 통합 조회</title>
      <link>https://skdt.tistory.com/7</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;지난 포스트에서는 AWS EKS Anywhere Local Cluster를 배포하는 방법에 대하여 소개하였습니다. 이번 포스트에서는 배포된 Local Cluster 뿐 아니라 GKE, Kubeadm으로 배포된 Cluster를 EKS Connector를 이용하여 AWS Console에서 통합 조회하는 방법에 대하여 설명합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;(테스트는 플랫폼 Architect 그룹에서 제공하는 Private Cloud인 DigitalX에서 수행하였습니다.)&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;EKS Connector를 통한 AWS Console 연결 과정&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EKS Connector를 통해 Kubernetes Cluster를 등록할 때는 크게 다음의 과정을 거칩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Console에서 Amazon EKS &amp;rarr; 클러스터 &amp;rarr; 클러스터 추가 &amp;rarr; 등록 선택&lt;/li&gt;
&lt;li&gt;클러스터 이름과 공급자정보 선택&lt;/li&gt;
&lt;li&gt;연결 구성에서 AmazonEKSconnectorAgentRole 선택&lt;/li&gt;
&lt;li&gt;클러스터 등록&lt;/li&gt;
&lt;li&gt;생성 된 Yaml 파일을 사용해 등록하려는 Kubernetes Cluster에서 리소스 생성&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 연결 구성에서 AmazonEKSconnectorAgentRole이 없을 경우 아래의 AmazonEKSconnectorAgentRole 생성을 먼저 수행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;AmazonEKSconnectorAgentRole 생성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Role 생성을 위한 파일(eks-connector-agent-trust-policy.json, eks-connector-agent-policy.json) 생성 후 AWS CLI를 통해 IAM과 정책을 생성합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;eks-connector-agent-trust-policy.json&lt;/p&gt;
&lt;pre id=&quot;code_1642487389875&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;SSMAccess&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Principal&quot;: {
                &quot;Service&quot;: [
                    &quot;ssm.amazonaws.com&quot;
                ]
            },
            &quot;Action&quot;: &quot;sts:AssumeRole&quot;
        }
    ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;eks-connector-agent-policy.json&lt;/p&gt;
&lt;pre id=&quot;code_1642487441770&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;SsmControlChannel&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: [
                &quot;ssmmessages:CreateControlChannel&quot;
            ],
            &quot;Resource&quot;: &quot;arn:aws:eks:*:*:cluster/*&quot;
        },
        {
            &quot;Sid&quot;: &quot;ssmDataplaneOperations&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: [
                &quot;ssmmessages:CreateDataChannel&quot;,
                &quot;ssmmessages:OpenDataChannel&quot;,
                &quot;ssmmessages:OpenControlChannel&quot;
            ],
            &quot;Resource&quot;: &quot;*&quot;
        }
    ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;역할 생성(AWS CLI)&lt;/h3&gt;
&lt;pre id=&quot;code_1642487470679&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws iam create-role \
     --role-name AmazonEKSConnectorAgentRole \
     --assume-role-policy-document file://eks-connector-agent-trust-policy.json&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정책 생성(AWS CLI)&lt;/h3&gt;
&lt;pre id=&quot;code_1642487494840&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws iam put-role-policy \
     --role-name AmazonEKSConnectorAgentRole \
     --policy-name AmazonEKSConnectorAgentPolicy \
     --policy-document file://eks-connector-agent-policy.json&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;권한 수정(AWS Console)&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IAM &amp;rarr; 역할 &amp;rarr; AmazonEKSConnectorAgentRole 선택&lt;/li&gt;
&lt;li&gt;권한 &amp;rarr; 정책 연결 &amp;rarr; AmazonEKSClusterPolicy 정책 연결&lt;/li&gt;
&lt;li&gt;신뢰관계 &amp;rarr; 신뢰관계 편집 후 하단 정책 포함&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1642487574285&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;Version&quot;: &quot;2012-10-17&quot;,
  &quot;Statement&quot;: [
    {
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Principal&quot;: {
        &quot;Service&quot;: &quot;eks.amazonaws.com&quot;
      },
      &quot;Action&quot;: &quot;sts:AssumeRole&quot;
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;Local Cluster에 Yaml 배포&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Console의 클러스터 등록 후 생성된 Yaml 파일 배포&lt;/h3&gt;
&lt;pre id=&quot;code_1642487723028&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl apply -f ${Cluster_Name}.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Cluster Role binding Yaml 템플릿 다운로드&lt;/h3&gt;
&lt;pre id=&quot;code_1642487744446&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl -o eks-connector-clusterrole.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector-console-roles/eks-connector-clusterrole.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 파일의 %IAM_ARN% 부분을 실제 사용자의 ARN으로 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해당 파일 수정 후 YAML 파일 배포&lt;/h3&gt;
&lt;pre id=&quot;code_1642487803748&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl apply -f eks-connector-clusterrole.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;IAM 사용자와 Cluster 연결 Yaml 템플릿 다운로드&lt;/h3&gt;
&lt;pre id=&quot;code_1642487838086&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl -o eks-connector-console-dashboard-full-access-group.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector-console-roles/eks-connector-console-dashboard-full-access-group.yaml

# 상기 템플릿은 전체 네임스페이스에 대한 권한을 주는 것으로, 
# 특정 네임스페이스에 대한 권한만 줄 경우 아래의 템플릿을 활용

# curl -o eks-connector-console-dashboard-restricted-access-group.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector-console-roles/eks-connector-console-dashboard-restricted-access-group.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 파일의&lt;span&gt;&amp;nbsp;&lt;/span&gt;%IAM_ARN%&lt;span&gt;&amp;nbsp;&lt;/span&gt;부분을 실제 사용자의 ARN으로 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해당 파일 수정 후 YAML 파일 배포&lt;/h3&gt;
&lt;pre id=&quot;code_1642487915809&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl apply -f eks-connector-console-dashboard-full-access-group.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;EKS Connector 연결 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;EKS Anywhere로 배포한 Cluster&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;console_anywhere.png&quot; data-origin-width=&quot;2610&quot; data-origin-height=&quot;752&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lMLgn/btrq4p8iZfX/gw9geYcYEPg6yv6mocKcY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lMLgn/btrq4p8iZfX/gw9geYcYEPg6yv6mocKcY0/img.png&quot; data-alt=&quot;AWS Console에 등록된 Cluster의 Node 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lMLgn/btrq4p8iZfX/gw9geYcYEPg6yv6mocKcY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlMLgn%2Fbtrq4p8iZfX%2Fgw9geYcYEPg6yv6mocKcY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2610&quot; height=&quot;752&quot; data-filename=&quot;console_anywhere.png&quot; data-origin-width=&quot;2610&quot; data-origin-height=&quot;752&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;AWS Console에 등록된 Cluster의 Node 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;cluster_anywhere.png&quot; data-origin-width=&quot;1334&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcMohq/btrq6uOwYS6/oQhTyc2j9sRKyRis2ADOrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcMohq/btrq6uOwYS6/oQhTyc2j9sRKyRis2ADOrK/img.png&quot; data-alt=&quot;Cluster의 Node 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcMohq/btrq6uOwYS6/oQhTyc2j9sRKyRis2ADOrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcMohq%2Fbtrq6uOwYS6%2FoQhTyc2j9sRKyRis2ADOrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1334&quot; height=&quot;144&quot; data-filename=&quot;cluster_anywhere.png&quot; data-origin-width=&quot;1334&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Cluster의 Node 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;미리 배포된 GKE Cluster&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;AWSconsole(gcp).png&quot; data-origin-width=&quot;2632&quot; data-origin-height=&quot;918&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTMV5O/btrq4w68ys1/NpyNfYIgdCotLGSk9NAqHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTMV5O/btrq4w68ys1/NpyNfYIgdCotLGSk9NAqHK/img.png&quot; data-alt=&quot;AWS Console에 등록된 GKE Cluster의 Node 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTMV5O/btrq4w68ys1/NpyNfYIgdCotLGSk9NAqHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTMV5O%2Fbtrq4w68ys1%2FNpyNfYIgdCotLGSk9NAqHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2632&quot; height=&quot;918&quot; data-filename=&quot;AWSconsole(gcp).png&quot; data-origin-width=&quot;2632&quot; data-origin-height=&quot;918&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;AWS Console에 등록된 GKE Cluster의 Node 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;GCPconsole.png&quot; data-origin-width=&quot;2788&quot; data-origin-height=&quot;1120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sXdYY/btrq6PETIxi/1T23w5Z35PPFfRwBnblxx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sXdYY/btrq6PETIxi/1T23w5Z35PPFfRwBnblxx1/img.png&quot; data-alt=&quot;GCP Console에서 확인한 GKE Cluster의 Node 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sXdYY/btrq6PETIxi/1T23w5Z35PPFfRwBnblxx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXdYY%2Fbtrq6PETIxi%2F1T23w5Z35PPFfRwBnblxx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2788&quot; height=&quot;1120&quot; data-filename=&quot;GCPconsole.png&quot; data-origin-width=&quot;2788&quot; data-origin-height=&quot;1120&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GCP Console에서 확인한 GKE Cluster의 Node 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Kubeadm으로 배포한 Cluster&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;console(kubeadm).png&quot; data-origin-width=&quot;2582&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCk3pN/btrq2jUG2jr/w9ZdKs1j5slcchBlCLW7g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCk3pN/btrq2jUG2jr/w9ZdKs1j5slcchBlCLW7g1/img.png&quot; data-alt=&quot;AWS Console에 등록된 Kubeadm으로 생성한 Cluster의 Node 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCk3pN/btrq2jUG2jr/w9ZdKs1j5slcchBlCLW7g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCk3pN%2Fbtrq2jUG2jr%2Fw9ZdKs1j5slcchBlCLW7g1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2582&quot; height=&quot;886&quot; data-filename=&quot;console(kubeadm).png&quot; data-origin-width=&quot;2582&quot; data-origin-height=&quot;886&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;AWS Console에 등록된 Kubeadm으로 생성한 Cluster의 Node 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;kubeadm_node.png&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PoIfS/btrq4pUIl6S/yQZdgiuyZ1TWuVsSvKoTZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PoIfS/btrq4pUIl6S/yQZdgiuyZ1TWuVsSvKoTZ0/img.png&quot; data-alt=&quot;Kubeadm Master에서 확인한 Cluster의 Node 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PoIfS/btrq4pUIl6S/yQZdgiuyZ1TWuVsSvKoTZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPoIfS%2Fbtrq4pUIl6S%2FyQZdgiuyZ1TWuVsSvKoTZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;930&quot; height=&quot;212&quot; data-filename=&quot;kubeadm_node.png&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Kubeadm Master에서 확인한 Cluster의 Node 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 다양한 Kubernetes 환경을 EKS Connector를 통해 AWS Console에서 통합 조회가 가능하였습니다. 아직은 통합 조회에 그치는 수준이지만 향후 좀 더 다양한 기능을 AWS Console을 통해 수행할 수 있다면 통합관리 측면에서 EKS Connector를 사용하는 점이 확실히 매력적이지 않을까 생각해봅니다.&lt;/p&gt;</description>
      <category>Cloud Computing/AWS</category>
      <author>GH_1024</author>
      <guid isPermaLink="true">https://skdt.tistory.com/7</guid>
      <comments>https://skdt.tistory.com/7#entry7comment</comments>
      <pubDate>Tue, 18 Jan 2022 15:51:30 +0900</pubDate>
    </item>
    <item>
      <title>EKS Anywhere (2/3) - EKS Anywhere Local Cluster 설치</title>
      <link>https://skdt.tistory.com/6</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;지난 포스트에서는 AWS EKS Anywhere에 대해 간략하게 소개하였습니다. 이번 포스트에서는 개발 및 테스트의 목적으로 단일 VM위에 EKS Anywhere Local Cluster를 배포하는 방법에 대하여 설명합니다. &lt;i&gt;(테스트는 플랫폼 Architect 그룹에서 제공하는 Private Cloud인 DigitalX에서 수행하였습니다.)&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;사전 VM 준비&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Local Cluster 배포를 위한 VM 사양&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;도커 20.xx&lt;/li&gt;
&lt;li&gt;우분투(20.04.2 LTS)&lt;/li&gt;
&lt;li&gt;4 CPU 코어&lt;/li&gt;
&lt;li&gt;16GB 메모리&lt;/li&gt;
&lt;li&gt;30GB의 디스크 여유 공간&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 사양에 맞게 VM을 생성하고 이후 Docker, eksctl, EKS Anywhere, kubectl 순으로 설치를 진행하였습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;EKS Anywhere 설치 과정&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;Docker 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1642408380907&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io
#오류 발생시 아래 처럼 특정 버전을 지정
#sudo apt-get install docker-ce=5:20.10.11~3-0~ubuntu-focal docker-ce-cli=5:20.10.11~3-0~ubuntu-focal containerd.io&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;EKSCTL 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1642408543754&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#eksctl Download
curl --silent --location &quot;https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz&quot; | tar xz -C /tmp

#move to /usr/local/bin
sudo mv /tmp/eksctl /usr/local/bin

#check eksctl version
eksctl version

#eks-anywhere plugin install
export EKSA_RELEASE=&quot;0.6.0&quot; OS=&quot;$(uname -s | tr A-Z a-z)&quot; RELEASE_NUMBER=2
curl &quot;https://anywhere-assets.eks.amazonaws.com/releases/eks-a/${RELEASE_NUMBER}/artifacts/eks-a/v${EKSA_RELEASE}/${OS}/eksctl-anywhere-v${EKSA_RELEASE}-${OS}-amd64.tar.gz&quot; \
    --silent --location \
    | tar xz ./eksctl-anywhere
sudo mv ./eksctl-anywhere /usr/local/bin/

#check eksctl anywhere version
eksctl anywhere version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;EKS Anywhere 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1642408863719&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#생성될 Cluster Name 지정
CLUSTER_NAME=digitalx-cluster

#Cluster 배포 yaml 생성
eksctl anywhere generate clusterconfig $CLUSTER_NAME \
   --provider docker &amp;gt; $CLUSTER_NAME.yaml

#Cluster 생성
eksctl anywhere create cluster -f $CLUSTER_NAME.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Kubectl 설치 및 Cluster 정보 등록&lt;/h3&gt;
&lt;pre id=&quot;code_1642408979751&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#kubectl 설치
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

echo &quot;deb http://apt.kubernetes.io/ kubernetes-xenial main&quot; | tee /etc/apt/sources.list.d/kubernetes.list

apt-get update -y
apt-get install kubeadm kubectl -y

#kubeconfig 설정
export KUBECONFIG=${PWD}/${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;설치 확인&lt;/h3&gt;
&lt;pre id=&quot;code_1642409129082&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl get ns&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Y6ym4/btrqY9RH2ir/xFykurZlczv35dWUOOf6wK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Y6ym4/btrqY9RH2ir/xFykurZlczv35dWUOOf6wK/img.png&quot; data-alt=&quot;EKS Anywhere로 설치한 Cluster의 Namespace 상태&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Y6ym4/btrqY9RH2ir/xFykurZlczv35dWUOOf6wK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY6ym4%2FbtrqY9RH2ir%2FxFykurZlczv35dWUOOf6wK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;794&quot; height=&quot;516&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;EKS Anywhere로 설치한 Cluster의 Namespace 상태&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;배포 테스트&lt;/h3&gt;
&lt;pre id=&quot;code_1642409264543&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 테스트 Pod 배포
kubectl apply -f &quot;https://anywhere.eks.amazonaws.com/manifests/hello-eks-a.yaml&quot;

# 테스트를 위한 Port-forwarding
kubectl port-forward deploy/hello-eks-a 8000:80&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xDOeU/btrqQdVrRxy/WKjdGVxjlUVBLupQIzZt70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xDOeU/btrqQdVrRxy/WKjdGVxjlUVBLupQIzZt70/img.png&quot; data-alt=&quot;배포된 테스트 Pod&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xDOeU/btrqQdVrRxy/WKjdGVxjlUVBLupQIzZt70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxDOeU%2FbtrqQdVrRxy%2FWKjdGVxjlUVBLupQIzZt70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;908&quot; height=&quot;100&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;배포된 테스트 Pod&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;852&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsix7c/btrqXxkXFD3/3NOByuUp6Ga2aQ6HHkOGNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsix7c/btrqXxkXFD3/3NOByuUp6Ga2aQ6HHkOGNK/img.png&quot; data-alt=&quot;배포된 테스트 Pod Curl 테스트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsix7c/btrqXxkXFD3/3NOByuUp6Ga2aQ6HHkOGNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbsix7c%2FbtrqXxkXFD3%2F3NOByuUp6Ga2aQ6HHkOGNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1098&quot; height=&quot;852&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;852&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;배포된 테스트 Pod Curl 테스트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EKS Anywhere Local Cluster 배포는 CLI 몇 줄로 편리하게 배포가 가능했습니다. 아쉽게도 현재 테스트 목적으로는 단일 VM에 Local Cluster를 배포하는 것이 한계이지만 AWS는 22년에 EKS Anywhere가 베어메탈에 설치 가능하도록 지원할 계획이 있기 때문에 향후에는 다수의 Worknode를 기반으로 테스트 및 운영 환경 구축이 가능해질 것으로 생각됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;다음 포스트에서는 EKS Connector를 사용하여 이번 포스트에서 배포된 Local Cluster와 GKE, Kubeadm으로 배포된 Cluster를 AWS Console에서 통합 조회하는 방법에 대하여 알아보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Cloud Computing/AWS</category>
      <author>GH_1024</author>
      <guid isPermaLink="true">https://skdt.tistory.com/6</guid>
      <comments>https://skdt.tistory.com/6#entry6comment</comments>
      <pubDate>Mon, 17 Jan 2022 17:46:06 +0900</pubDate>
    </item>
    <item>
      <title>EKS Anywhere (1/3) - EKS Anywhere 소개</title>
      <link>https://skdt.tistory.com/5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;작년 말, AWS에서는 고객의 데이터 센터에 직접 Amazon Elastic Kubernetes Service(Amazon EKS)를 배포할 수 있는 배포 옵션인 Amazon Elastic Kubernetes Anywhere를 발표했습니다. 이에 EKS Anywhere Local Cluster를 구성하고 다른 배포 옵션을 통해 배포된 Kubernetes를 EKS Connector를 통해 AWS Console에 등록하는 방법에 대해 테스트해 보았습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;EKS Anywhere 란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon EKS Anywhere는 2021년 출시된 Amazon EKS의 새로운 배포 옵션입니다. 기존의 EKS가 AWS의 자원을 활용하여 서비스 되었다면, EKS Anywhere는 고객이 관리형 인프라에서 Kubernetes 클러스터를 생성 및 운영하도록 지원합니다. 글을 쓰고 있는 2022년 1월 기준으로 EKS Anywhere는 운영 용도로는 VMware vSphere를 사용한 온프레미스 환경만을 지원하고 있지만 2022년 중에 베어메탈 지원을 포함될 것이라고 합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;운영 용도가 아닌 테스트, 개발 용도로는 단일 VM에 Local Cluster를 구성할 수 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon EKS Anywhere는 Amzon EKS를 구동하는 동일한 Kubernetes 배포인 Amazon EKS Distro를 기반으로 클러스터를 생성합니다. 또한 3rd party 소프트웨어 통합을 포함해 모든 Amazon EKS Anywhere 구성 요소를 AWS가 지원하기 때문에 고객은 지원 비용을 줄이고 중복된 오픈 소스 및 3rd party 도구의 유지 관리 부담을 줄일 수 있습니다. 또한 eksctl 등을 통해 Amazon EKS와 Amazon EKS Anywhere 양 쪽 모두 일관된 운영 도구를 제공하며 EKS Connector를 통해 EKS 콘솔에서 Amazon EKS와 고객의 인프라 자원에서 실행되는 Amazon EKS Anywhere를 함께 확인할 수 있습니다.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qmv5V/btrqGcVtUoH/4gKlWyDuvSbensLIT1RUE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qmv5V/btrqGcVtUoH/4gKlWyDuvSbensLIT1RUE0/img.png&quot; data-alt=&quot;이미지 출처 : AWS(https://aws.amazon.com/ko/eks/eks-anywhere/)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qmv5V/btrqGcVtUoH/4gKlWyDuvSbensLIT1RUE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQmv5V%2FbtrqGcVtUoH%2F4gKlWyDuvSbensLIT1RUE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;399&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;399&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이미지 출처 : AWS(https://aws.amazon.com/ko/eks/eks-anywhere/)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;EKS Distro는 Amazon EKS에서 배포한 것과 동일한 Kubernetes 배포판 버전으로서, 사용자는 이를 사용하여 원하는 어디서든 자신의 Kubernetes 클러스터를 수동으로 생성할 수 있습니다. EKS Distro는 Amazon EKS에서 사용하는 오픈 소스 Kubernetes의 설치 가능한 빌드 및 코드를 제공합니다. 여기에는 종속성 및 AWS에서 관리하는 패치 등이 포함됩니다.&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;AWS에서 제공하는 Kuberntes 배포 옵션&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS에서 제공하는 Kuberentes 배포 옵션은 AWS에서 관리하는 자원에 Kubernetes Cluster를 배포하는 Amazon EKS, EKS on Outpost와 고객의 인프라에 배포하는 EKS Anywhere, EKS Distro가 있습니다. 또한 각 배포 옵션들은 제어 영역의 위치, 지원 여부 등 다양한 옵션을 제공하므로 구성하려는 시스템의 요건에 맞추어 적합한 배포 옵션을 선택하여 Kubernetes Cluster를 구성 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 162px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Amazon EKS&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;EKS on Outpost&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;EKS Anywhere&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;EKS Distro&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;하드웨어&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;AWS 관리&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;고객 관리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;배포 유형&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;Amazon EC2, &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;AWS Fargate&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;EC2 on Outposts&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;고객 인프라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;제어 영역 관리&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;AWS 관리&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;고객 관리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;제어 영역 위치&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;AWS 클라우드&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60%; height: 18px; text-align: center;&quot; colspan=&quot;3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;고객 측 온프레미스 또는 데이터 센터&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;클러스터 업데이트&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;제어 영역 및 데이터 영역의 관리형 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;현재 위치 업데이트 프로세스&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;CLI(데이터 영역의 경우 Flux 지원 롤링 업데이트, &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;제어 영역의 경우 수동 업데이트)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;네트워킹 및 보안&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;Amazon VPC 컨테이너 네트워크 인터페이스(CNI), 여타 호환되는 서드 파티 CNI 플러그인&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;Cilium CNI&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;서드 파티 CNI 플러그인&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;콘솔 지원&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;Amazon EKS 콘솔&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;EKS 콘솔, &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;EKS Connector 사용&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;셀프서비스&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;지원&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 18px; text-align: center;&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;AWS Support&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;EKS Anywhere 지원 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;구독&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 18px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;셀프서비스&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;표 출처 : AWS 블로그 (&lt;a href=&quot;https://aws.amazon.com/ko/blogs/korea/amazon-eks-anywhere-now-generally-available-to-create-and-manage-kubernetes-clusters-on-premises/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://aws.amazon.com/ko/blogs/korea/amazon-eks-anywhere-now-generally-available-to-create-and-manage-kubernetes-clusters-on-premises/&lt;/a&gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;EKS Anywhere의 장점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EKS Anywhere는 Kuberentes Cluster를 구성함에 있어서의 편의성과 안전성, 그리고 향후 운영 시의 지원 등의 부분에서 다른 Kuberntes 배포 옵션에 비해 장점을 가집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Kuberntes Cluser 관리의 편의성 제공&lt;/b&gt;&lt;br /&gt;EKS Anywhere는 CLI를 통해 클러스터 관리 자동화 도구를 제공하며 Kubernetes Cluster의 생성과 관리/운영을 간소화하여 제공합니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;오픈소스 사용에 따른 불안전성 제거&lt;/b&gt;&lt;br /&gt;EKS Anywhere는 EKS Distro 기반으로 구축되고, 지속적인 업데이트를 포함하는 오픈 소스 소프트웨어를 제공합니다. 따라서 자체 관리형 Kubernetes Cluster 배포 옵션에 비해 신뢰할 수 있는 Kubernetes Cluster를 구축할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Kuberntes 운영 지원&lt;/b&gt;&lt;br /&gt;EKS Anywhere 지원 구독을 통해 EKS Anywhere 사용 중 발생하는 이슈들을 기술 지원받을 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Kuberntes Cluster 통합 조회&lt;/b&gt;&lt;br /&gt;EKS Anywhere를 통해 배포된 Kuberentes Cluster 뿐 아니라 AKS, GKE와 같은 타사 Kubernetes Cluster와 Kubeadm, Kubespray 등을 통해 배포된 자체 관리형 Kubernetes Cluster까지 EKS Connector를 사용하여 AWS Console에서 통합 조회할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 장점들을 기반으로 EKS Anywhere는 Private Cloud 위에 Kuberentes Cluster를 구축하는 경우나, 데이터의 문제로 인하여 Public 환경의 사용이 어려운 경우 매력적인 배포 옵션으로 선택될 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 포스트에서는 EKS Anywhere의 Local Cluster 구성에 대하여 알아보겠습니다.&lt;/p&gt;</description>
      <category>Cloud Computing/AWS</category>
      <author>GH_1024</author>
      <guid isPermaLink="true">https://skdt.tistory.com/5</guid>
      <comments>https://skdt.tistory.com/5#entry5comment</comments>
      <pubDate>Mon, 17 Jan 2022 17:09:17 +0900</pubDate>
    </item>
  </channel>
</rss>