<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>&amp;quot;Software Defined&amp;quot; to Everything</title>
    <link>https://sdndev-en.tistory.com/</link>
    <description>In 2012, I was so fascinated with Software Defined Networking. Now I see many interesting things with the concept of &amp;quot;Software Defined&amp;quot; to everything.</description>
    <language>ko</language>
    <pubDate>Thu, 5 Mar 2026 19:47:29 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>IanY.</managingEditor>
    <image>
      <title>&amp;quot;Software Defined&amp;quot; to Everything</title>
      <url>https://tistory1.daumcdn.net/tistory/6963239/attach/b13d41c043c94fa19cbaf0a9a635a764</url>
      <link>https://sdndev-en.tistory.com</link>
    </image>
    <item>
      <title>How to build kubectl binary with custom version string</title>
      <link>https://sdndev-en.tistory.com/21</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;When operating Kubernetes, the&amp;nbsp;&lt;i&gt;kubectl&amp;nbsp;&lt;/i&gt;version&amp;nbsp;must&amp;nbsp;be&amp;nbsp;compatible&amp;nbsp;with&amp;nbsp;the&amp;nbsp;Kubernetes&amp;nbsp;cluster&amp;nbsp;version.&amp;nbsp;This&amp;nbsp;is&amp;nbsp;documented&amp;nbsp;in&amp;nbsp;both&amp;nbsp;the&amp;nbsp;Kubernetes&amp;nbsp;official&amp;nbsp;documentation&amp;nbsp;under&amp;nbsp;Version&amp;nbsp;Skew&amp;nbsp;Policy&amp;nbsp;and&amp;nbsp;explicitly&amp;nbsp;mentioned&amp;nbsp;in&amp;nbsp;the&amp;nbsp;Amazon&amp;nbsp;EKS&amp;nbsp;documentation.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote id=&quot;kubectl&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;kubectl&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;kubectl&lt;span&gt;&amp;nbsp;&lt;/span&gt;is supported within one minor version (older or newer) of&lt;span&gt;&amp;nbsp;&lt;/span&gt;kube-apiserver.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Example:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;kube-apiserver&lt;span&gt;&amp;nbsp;&lt;/span&gt;is at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.32&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;kubectl&lt;span&gt;&amp;nbsp;&lt;/span&gt;is supported at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.33&lt;/b&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.32&lt;/b&gt;, and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.31&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;Note:&lt;/h4&gt;
If version skew exists between&lt;span&gt;&amp;nbsp;&lt;/span&gt;kube-apiserver&lt;span&gt;&amp;nbsp;&lt;/span&gt;instances in an HA cluster, this narrows the supported&lt;span&gt;&amp;nbsp;&lt;/span&gt;kubectl&lt;span&gt;&amp;nbsp;&lt;/span&gt;versions.&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #222222; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Example:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;kube-apiserver&lt;span&gt;&amp;nbsp;&lt;/span&gt;instances are at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.32&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.31&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;kubectl&lt;span&gt;&amp;nbsp;&lt;/span&gt;is supported at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.32&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;1.31&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(other versions would be more than one minor version skewed from one of the&lt;span&gt;&amp;nbsp;&lt;/span&gt;kube-apiserver&lt;span&gt;&amp;nbsp;&lt;/span&gt;components)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://kubernetes.io/releases/version-skew-policy/#kubectl&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://kubernetes.io/releases/version-skew-policy/#kubectl&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1738979527953&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Version Skew Policy&quot; data-og-description=&quot;The maximum version skew supported between various Kubernetes components.&quot; data-og-host=&quot;kubernetes.io&quot; data-og-source-url=&quot;https://kubernetes.io/releases/version-skew-policy/#kubectl&quot; data-og-url=&quot;https://kubernetes.io/releases/version-skew-policy/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ccXQMi/hyYcd0UMv3/xLIvgWifsxLJwbXL91GeHK/img.png?width=1727&amp;amp;height=373&amp;amp;face=0_0_1727_373&quot;&gt;&lt;a href=&quot;https://kubernetes.io/releases/version-skew-policy/#kubectl&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kubernetes.io/releases/version-skew-policy/#kubectl&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ccXQMi/hyYcd0UMv3/xLIvgWifsxLJwbXL91GeHK/img.png?width=1727&amp;amp;height=373&amp;amp;face=0_0_1727_373');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Version Skew Policy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The maximum version skew supported between various Kubernetes components.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kubernetes.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;You&amp;nbsp;must&amp;nbsp;use&amp;nbsp;a&amp;nbsp;kubectl&amp;nbsp;version&amp;nbsp;that&amp;nbsp;is&amp;nbsp;within&amp;nbsp;one&amp;nbsp;minor&amp;nbsp;version&amp;nbsp;difference&amp;nbsp;of&amp;nbsp;your&amp;nbsp;Amazon&amp;nbsp;EKS&amp;nbsp;cluster&amp;nbsp;control&amp;nbsp;plane.&amp;nbsp;For&amp;nbsp;example,&amp;nbsp;a&amp;nbsp;1.31&amp;nbsp;kubectl&amp;nbsp;client&amp;nbsp;works&amp;nbsp;with&amp;nbsp;Kubernetes&amp;nbsp;1.30,&amp;nbsp;1.31,&amp;nbsp;and&amp;nbsp;1.32&amp;nbsp;clusters.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html#kubectl-install-update&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html#kubectl-install-update&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1738979606194&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Set up kubectl and eksctl - Amazon EKS&quot; data-og-description=&quot;You must use a kubectl version that is within one minor version difference of your Amazon EKS cluster control plane. For example, a 1.31 kubectl client works with Kubernetes 1.30, 1.31, and 1.32 clusters.&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html#kubectl-install-update&quot; data-og-url=&quot;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html#kubectl-install-update&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html#kubectl-install-update&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html#kubectl-install-update&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Set up kubectl and eksctl - Amazon EKS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;You must use a kubectl version that is within one minor version difference of your Amazon EKS cluster control plane. For example, a 1.31 kubectl client works with Kubernetes 1.30, 1.31, and 1.32 clusters.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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&gt;When&amp;nbsp;using&amp;nbsp;Amazon&amp;nbsp;EKS&amp;nbsp;clusters,&amp;nbsp;you&amp;nbsp;might&amp;nbsp;notice&amp;nbsp;version&amp;nbsp;strings&amp;nbsp;like&amp;nbsp;v1.29.0-eks-5e0fdde&amp;nbsp;when&amp;nbsp;running&amp;nbsp;kubectl&amp;nbsp;commands&amp;nbsp;(Reference:&amp;nbsp;&lt;a href=&quot;https://aws.amazon.com/blogs/tech/how-to-upgrade-amazon-eks-worker-nodes-with-karpenter-drift/).&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aws.amazon.com/blogs/tech/how-to-upgrade-amazon-eks-worker-nodes-with-karpenter-drift/).&lt;/a&gt;&amp;nbsp;According&amp;nbsp;to&amp;nbsp;the&amp;nbsp;Amazon&amp;nbsp;EKS&amp;nbsp;User&amp;nbsp;Guide&amp;nbsp;-&amp;nbsp;kubectl&amp;nbsp;and&amp;nbsp;eksctl&amp;nbsp;setup&amp;nbsp;documentation,&amp;nbsp;this&amp;nbsp;binary&amp;nbsp;is&amp;nbsp;identical&amp;nbsp;to&amp;nbsp;the&amp;nbsp;upstream&amp;nbsp;community&amp;nbsp;version.&amp;nbsp;While&amp;nbsp;using&amp;nbsp;the&amp;nbsp;same&amp;nbsp;binary,&amp;nbsp;version&amp;nbsp;strings&amp;nbsp;might&amp;nbsp;be&amp;nbsp;customized&amp;nbsp;for&amp;nbsp;various&amp;nbsp;reasons,&amp;nbsp;such&amp;nbsp;as&amp;nbsp;cloud&amp;nbsp;providers&amp;nbsp;building&amp;nbsp;binaries&amp;nbsp;directly&amp;nbsp;to&amp;nbsp;establish&amp;nbsp;trust,&amp;nbsp;or&amp;nbsp;for&amp;nbsp;internal&amp;nbsp;version&amp;nbsp;management&amp;nbsp;purposes&amp;nbsp;(e.g.,&amp;nbsp;distinguishing&amp;nbsp;specific&amp;nbsp;environment&amp;nbsp;builds&amp;nbsp;-&amp;nbsp;v1.32.0-internal,&amp;nbsp;test&amp;nbsp;environment&amp;nbsp;-&amp;nbsp;v1.32.0-test,&amp;nbsp;development&amp;nbsp;stages&amp;nbsp;-&amp;nbsp;v1.29.0-dev).&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;Let's&amp;nbsp;customize&amp;nbsp;the&amp;nbsp;version&amp;nbsp;string&amp;nbsp;using&amp;nbsp;the&amp;nbsp;Kubernetes&amp;nbsp;source&amp;nbsp;directly. &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Go&amp;nbsp;development&amp;nbsp;environment&lt;/b&gt;:&amp;nbsp;Follow&amp;nbsp;the&amp;nbsp;minimum&amp;nbsp;requirements&amp;nbsp;at&amp;nbsp;&lt;a href=&quot;https://go.dev/wiki/MinimumRequirements&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://go.dev/wiki/MinimumRequirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Git&lt;/b&gt;:&amp;nbsp;If&amp;nbsp;git&amp;nbsp;command&amp;nbsp;is&amp;nbsp;already&amp;nbsp;available,&amp;nbsp;no&amp;nbsp;additional&amp;nbsp;setup&amp;nbsp;is&amp;nbsp;needed.&amp;nbsp;If&amp;nbsp;not,&amp;nbsp;refer&amp;nbsp;to&amp;nbsp;&lt;a href=&quot;https://git-scm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://git-scm.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Make&amp;nbsp;tool&lt;/b&gt;:&amp;nbsp;A&amp;nbsp;historical&amp;nbsp;tool&amp;nbsp;(Reference:&amp;nbsp;&lt;a href=&quot;https://www.gnu.org/software/make/manual/make.html)&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.gnu.org/software/make/manual/make.html)&lt;/a&gt;&amp;nbsp;that&amp;nbsp;builds&amp;nbsp;binaries&amp;nbsp;using&amp;nbsp;the&amp;nbsp;Makefile&amp;nbsp;in&amp;nbsp;source&amp;nbsp;code&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;Build Procedure&lt;/h3&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;1.&lt;span&gt; Clone &lt;/span&gt;&lt;/span&gt;source code&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Clone&amp;nbsp;the&amp;nbsp;Kubernetes&amp;nbsp;GitHub&amp;nbsp;repository&amp;nbsp;and&amp;nbsp;navigate&amp;nbsp;to&amp;nbsp;the&amp;nbsp;directory: &lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;$ git clone &lt;a href=&quot;https://github.com/kubernetes/kubernetes&quot;&gt;https://github.com/kubernetes/kubernetes&lt;/a&gt;&lt;br /&gt;$ cd kubernetes&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Check existing version tags&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Use&amp;nbsp;the&amp;nbsp;following&amp;nbsp;command&amp;nbsp;to&amp;nbsp;view&amp;nbsp;a&amp;nbsp;list&amp;nbsp;of&amp;nbsp;Kubernetes&amp;nbsp;versions&amp;nbsp;from&amp;nbsp;latest&amp;nbsp;to&amp;nbsp;oldest&amp;nbsp;releases.&amp;nbsp;When&amp;nbsp;you&amp;nbsp;see&amp;nbsp;a&amp;nbsp;colon&amp;nbsp;(:)&amp;nbsp;at&amp;nbsp;the&amp;nbsp;beginning,&amp;nbsp;you&amp;nbsp;can&amp;nbsp;press&amp;nbsp;spacebar&amp;nbsp;to&amp;nbsp;see&amp;nbsp;more&amp;nbsp;entries&amp;nbsp;and&amp;nbsp;press&amp;nbsp;'q'&amp;nbsp;to&amp;nbsp;exit:&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;$ git tag --sort=-taggerdate&lt;/blockquote&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;640&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVQHUd/btsMbywu3VH/zTMuLMsOfjOda9WW9nymy0/tfile.dat&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVQHUd/btsMbywu3VH/zTMuLMsOfjOda9WW9nymy0/tfile.dat&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVQHUd/btsMbywu3VH/zTMuLMsOfjOda9WW9nymy0/tfile.dat&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVQHUd%2FbtsMbywu3VH%2FzTMuLMsOfjOda9WW9nymy0%2Ftfile.dat&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;640&quot; height=&quot;537&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;537&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Select and checkout version&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: oklch(0.99 0.004 106.471); color: oklch(0.304 0.04 213.681); text-align: start;&quot;&gt;Store the desired version tag in a local environment variable and use the &quot;git checkout&quot; command to switch to that version's source code. Here, we use an environment variable named TAG to store the value and use it in $TAG format to checkout the corresponding version:&lt;/span&gt;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;$ TAG=v1.31.2 # Must use a version that exists in the git tag list&lt;br /&gt;&lt;br /&gt;$ git checkout $TAG&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;4.&lt;span&gt; Set custom tag&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;The&amp;nbsp;Kubernetes&amp;nbsp;build&amp;nbsp;process&amp;nbsp;is&amp;nbsp;configured&amp;nbsp;to&amp;nbsp;primarily&amp;nbsp;use&amp;nbsp;existing&amp;nbsp;tags&amp;nbsp;stored&amp;nbsp;in&amp;nbsp;the&amp;nbsp;Git&amp;nbsp;repository.&amp;nbsp;Rather&amp;nbsp;than&amp;nbsp;modifying&amp;nbsp;this&amp;nbsp;approach,&amp;nbsp;let's&amp;nbsp;remove&amp;nbsp;the&amp;nbsp;existing&amp;nbsp;tags&amp;nbsp;and&amp;nbsp;apply&amp;nbsp;a&amp;nbsp;custom&amp;nbsp;tag&amp;nbsp;to&amp;nbsp;the&amp;nbsp;currently&amp;nbsp;checked-out&amp;nbsp;source.&amp;nbsp;Note&amp;nbsp;that&amp;nbsp;we&amp;nbsp;can't&amp;nbsp;use&amp;nbsp;arbitrary&amp;nbsp;strings;&amp;nbsp;we&amp;nbsp;must&amp;nbsp;follow&amp;nbsp;the&amp;nbsp;&quot;v{SEMVER}-{CUSTOM}&quot;&amp;nbsp;format.&amp;nbsp;SEMVER&amp;nbsp;refers&amp;nbsp;to&amp;nbsp;the&amp;nbsp;version&amp;nbsp;numbering&amp;nbsp;described&amp;nbsp;at&amp;nbsp;&lt;a href=&quot;https://semver.org/,&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://semver.org/,&lt;/a&gt;&amp;nbsp;and&amp;nbsp;the&amp;nbsp;{CUSTOM}&amp;nbsp;portion&amp;nbsp;can&amp;nbsp;be&amp;nbsp;set&amp;nbsp;with&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;string&amp;nbsp;according&amp;nbsp;to&amp;nbsp;our&amp;nbsp;purposes:&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;# Remove existing tags &lt;br /&gt;git tag | xargs git tag -d &lt;br /&gt;&lt;br /&gt;# Disable fetching remote tags &lt;br /&gt;git config --local fetch.tags false &lt;br /&gt;&lt;br /&gt;# Create new custom tag &lt;br /&gt;git tag $TAG-aewstest&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Verify tag&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Use&amp;nbsp;the&amp;nbsp;following&amp;nbsp;command&amp;nbsp;to&amp;nbsp;verify&amp;nbsp;that&amp;nbsp;the&amp;nbsp;tag&amp;nbsp;was&amp;nbsp;properly&amp;nbsp;applied:&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;$ git describe --tags --match='v*'&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXJqTs/btsMcyCfd0q/Fukxqx20MFPSyPlhJQv8C0/tfile.dat&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXJqTs/btsMcyCfd0q/Fukxqx20MFPSyPlhJQv8C0/tfile.dat&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXJqTs/btsMcyCfd0q/Fukxqx20MFPSyPlhJQv8C0/tfile.dat&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXJqTs%2FbtsMcyCfd0q%2FFukxqx20MFPSyPlhJQv8C0%2Ftfile.dat&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;673&quot; height=&quot;148&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;6. Build kubectl&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Now&amp;nbsp;let's&amp;nbsp;use&amp;nbsp;the&amp;nbsp;make&amp;nbsp;command&amp;nbsp;to&amp;nbsp;build.&amp;nbsp;Run&amp;nbsp;the&amp;nbsp;following&amp;nbsp;command: &lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;$ make all WHAT=cmd/kubectl GOFLAGS=-v&lt;/blockquote&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;711&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nZrS3/btsMcA7SDwH/7gkc0fmkXir2DX9jR8SLDK/tfile.dat&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nZrS3/btsMcA7SDwH/7gkc0fmkXir2DX9jR8SLDK/tfile.dat&quot; data-alt=&quot;(kubectl build - start)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nZrS3/btsMcA7SDwH/7gkc0fmkXir2DX9jR8SLDK/tfile.dat&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnZrS3%2FbtsMcA7SDwH%2F7gkc0fmkXir2DX9jR8SLDK%2Ftfile.dat&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;711&quot; height=&quot;330&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(kubectl build - start)&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-origin-width=&quot;720&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oaQWO/btsMbDxuY5H/chKkSYHWM3gviJcnKIJXEK/tfile.dat&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oaQWO/btsMbDxuY5H/chKkSYHWM3gviJcnKIJXEK/tfile.dat&quot; data-alt=&quot;(kubectl build - end!)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oaQWO/btsMbDxuY5H/chKkSYHWM3gviJcnKIJXEK/tfile.dat&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoaQWO%2FbtsMbDxuY5H%2FchKkSYHWM3gviJcnKIJXEK%2Ftfile.dat&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;720&quot; height=&quot;618&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;618&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(kubectl build - end!)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;7.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Verify build result&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;The built binary is created in the _output folder. Let's run the kubectl binary:&lt;/span&gt;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;$ _output/bin/kubectl version&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dogcc2/btsMbDdcpwf/Tk7Ka6fdaBu1jsnyS0WNx1/tfile.dat&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dogcc2/btsMbDdcpwf/Tk7Ka6fdaBu1jsnyS0WNx1/tfile.dat&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dogcc2/btsMbDdcpwf/Tk7Ka6fdaBu1jsnyS0WNx1/tfile.dat&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdogcc2%2FbtsMbDdcpwf%2FTk7Ka6fdaBu1jsnyS0WNx1%2Ftfile.dat&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;712&quot; height=&quot;105&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;Important Notes&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: oklch(0.99 0.004 106.471); color: oklch(0.304 0.04 213.681); text-align: start;&quot;&gt;As mentioned above, kubectl version must be within one minor version difference of the cluster version. When using in test environments, ensure thorough validation, and for production environments, it's recommended to use the officially distributed kubectl binary.&lt;/span&gt;&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;Install Tools - kubectl:&lt;a href=&quot;https://kubernetes.io/docs/tasks/tools/#kubectl&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://kubernetes.io/docs/tasks/tools/#kubectl&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1738980085879&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Install Tools&quot; data-og-description=&quot;Set up Kubernetes tools on your computer.&quot; data-og-host=&quot;kubernetes.io&quot; data-og-source-url=&quot;https://kubernetes.io/docs/tasks/tools/#kubectl&quot; data-og-url=&quot;https://kubernetes.io/docs/tasks/tools/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/joNu0/hyYb9Yvxng/0eKm10RVsjVUmATojnnJgK/img.png?width=1727&amp;amp;height=373&amp;amp;face=0_0_1727_373&quot;&gt;&lt;a href=&quot;https://kubernetes.io/docs/tasks/tools/#kubectl&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kubernetes.io/docs/tasks/tools/#kubectl&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/joNu0/hyYb9Yvxng/0eKm10RVsjVUmATojnnJgK/img.png?width=1727&amp;amp;height=373&amp;amp;face=0_0_1727_373');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Install Tools&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Set up Kubernetes tools on your computer.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kubernetes.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Amazon EKS - Set&amp;nbsp;up&amp;nbsp;kubectl&amp;nbsp;and&amp;nbsp;eksctl:&lt;span&gt; &lt;a href=&quot;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.aws.amazon.com/en_us/eks/latest/userguide/install-kubectl.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;While this custom-built &lt;i&gt;kubectl&lt;/i&gt; can have desired version strings and potentially be useful in CI/CD for cluster management through version checking, it's recommended to use official releases in production environments and limit custom builds to testing or development environments.&lt;/p&gt;</description>
      <category>Kubernetes</category>
      <category>custom tag</category>
      <category>Kubectl</category>
      <category>Kubernetes</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/21</guid>
      <comments>https://sdndev-en.tistory.com/21#entry21comment</comments>
      <pubDate>Sat, 8 Feb 2025 11:02:27 +0900</pubDate>
    </item>
    <item>
      <title>Managing and Upgrading AWS CLI with winget on Windows</title>
      <link>https://sdndev-en.tistory.com/20</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;For those who have been using Windows for a long time, adding and removing programs through the Control Panel might be familiar. The &quot;&lt;b&gt;Add or Remove Programs&lt;/b&gt;&quot; feature was renamed to &quot;&lt;b&gt;Programs and Features&lt;/b&gt;,&quot; allowing users to view, modify, and remove installed software.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. Checking AWS CLI Version&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;In Windows 11, you can search for &quot;AWS&quot; in the &quot;Programs and Features&quot; menu to see the installed version of AWS CLI, which is 2.15.9.0 in this example.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EPYGo/btsHTSrekSO/2OVkKT0hDWbU79tAKW6O9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EPYGo/btsHTSrekSO/2OVkKT0hDWbU79tAKW6O9k/img.png&quot; data-alt=&quot;(Searching with &amp;quot;AWS&amp;quot; keyword on my Windows 11 computer)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EPYGo/btsHTSrekSO/2OVkKT0hDWbU79tAKW6O9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEPYGo%2FbtsHTSrekSO%2F2OVkKT0hDWbU79tAKW6O9k%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;779&quot; height=&quot;421&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(Searching with &quot;AWS&quot; keyword on my Windows 11 computer)&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;AWS CLI is a command-line tool that lets you manage AWS services. By running aws configure, you can easily set up your Access Key ID, Secret Access Key, and your target region name to control your AWS services. Initially, you might have downloaded and installed AWS CLI directly from the &lt;a href=&quot;https://aws.amazon.com/cli/&quot;&gt;official website&lt;/a&gt;. However, checking for updates and upgrading to the latest version can be tedious. This is where winget comes in handy for managing AWS CLI upgrades.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Introduction to winget&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;winget is a package manager for Windows 10 and later, allowing you to install, upgrade, and remove software easily. You can automate software management using CLI commands. To install winget, search for &quot;App Installer&quot; in the Microsoft Store or visit &lt;a href=&quot;https://apps.microsoft.com/detail/9nblggh4nns1?rtc=1&amp;amp;hl=en-us#activetab=pivot:overviewtab&quot;&gt;this link&lt;/a&gt; and click the &quot;Install&quot; button.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1734&quot; data-origin-height=&quot;912&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2XwsG/btsHR0R9itU/kPQdlIvwMxTcdb3NiPBJb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2XwsG/btsHR0R9itU/kPQdlIvwMxTcdb3NiPBJb1/img.png&quot; data-alt=&quot;Installing &amp;quot;App Installer&amp;quot; for winget using Microsoft Store&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2XwsG/btsHR0R9itU/kPQdlIvwMxTcdb3NiPBJb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2XwsG%2FbtsHR0R9itU%2FkPQdlIvwMxTcdb3NiPBJb1%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;1734&quot; height=&quot;912&quot; data-origin-width=&quot;1734&quot; data-origin-height=&quot;912&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Installing &quot;App Installer&quot; for winget using Microsoft Store&lt;/figcaption&gt;
&lt;/figure&gt;
&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;2. Basic winget Commands&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Using winget is similar to using apt on Ubuntu. If you're familiar with the sudo apt update &amp;amp;&amp;amp; sudo apt upgrade commands, you'll find winget's update and upgrade commands straightforward. Note that update is an alias for upgrade. For detailed help, visit &lt;a href=&quot;https://aka.ms/winget-command-help&quot;&gt;this link&lt;/a&gt; or refer to the &lt;a href=&quot;https://blog.naver.com/hakunamata2/223366445380&quot;&gt;blog post (in Korean)&lt;/a&gt;&amp;nbsp;by Microsoft MVP Soonman Kwon.&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;1919&quot; data-origin-height=&quot;844&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/epS7UK/btsHSfnUyNg/18q5QEE6wzmEWjABfLlkp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/epS7UK/btsHSfnUyNg/18q5QEE6wzmEWjABfLlkp0/img.png&quot; data-alt=&quot;winget vs. apt (looks quite similar, doesn't it?)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/epS7UK/btsHSfnUyNg/18q5QEE6wzmEWjABfLlkp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FepS7UK%2FbtsHSfnUyNg%2F18q5QEE6wzmEWjABfLlkp0%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;1919&quot; height=&quot;844&quot; data-origin-width=&quot;1919&quot; data-origin-height=&quot;844&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;winget vs. apt (looks quite similar, doesn't it?)&lt;/figcaption&gt;
&lt;/figure&gt;
&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;3. Installing AWS CLI&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;While the official AWS documentation provides instructions for downloading and installing the MSI installer, you can also use winget for a hassle-free installation. Visit &lt;a href=&quot;https://winget.run/pkg/Amazon/AWSCLI&quot;&gt;winget.run&lt;/a&gt; for the AWS CLI installation command. Note that the site may not always have the latest version information.&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;794&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SizLz/btsHS0XPXbb/ZJc7Dg7L9wdg6nd1x4flAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SizLz/btsHS0XPXbb/ZJc7Dg7L9wdg6nd1x4flAK/img.png&quot; data-alt=&quot;How to install AWS CLI from https://winget.run/pkg/Amazon/AWSCLI (Note: this this may not be the latest version on the website).&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SizLz/btsHS0XPXbb/ZJc7Dg7L9wdg6nd1x4flAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSizLz%2FbtsHS0XPXbb%2FZJc7Dg7L9wdg6nd1x4flAK%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;794&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;794&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;How to install AWS CLI from https://winget.run/pkg/Amazon/AWSCLI (Note: this this may not be the latest version on the website).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Upgrading and Managing AWS CLI with winget&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;If AWS CLI is already installed, you can upgrade to the latest version with the following command:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1717953005002&quot; class=&quot;cmake&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;&amp;gt; winget install Amazon.AWSCLI&lt;/code&gt;&lt;/pre&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;To check the installed version of AWS CLI, run:&lt;/p&gt;
&lt;pre id=&quot;code_1717953072155&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; aws --version
aws-cli/2.15.9 Python/3.11.6 Windows/10 exe/AMD64 prompt/off&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;You can also check the installed version and the latest available version using PowerShell:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1717953163103&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; winget list | Select-String -Pattern AWS

Freedom Scientific JAWS 2024            FreedomScientific.JAWS.2024              2024.2310.70.400     2024.240??winget
Freedom Scientific JAWS Training Table??{AE1E7553-752E-4D04-9695-EE1FB83C54AE}   25.0.2005.0
AWS Command Line Interface v2           Amazon.AWSCLI                            2.15.9.0             2.16.4    winget&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;To update to the latest version, execute:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1717953180440&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; winget upgrade Amazon.AWSCLI&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;To uninstall AWS CLI, use:&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;pre id=&quot;code_1717953205838&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; winget uninstall Amazon.AWSCLI&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Upgrading Multiple Packages with winget&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;winget allows you to upgrade multiple packages at once. To upgrade all software, use:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1717953222309&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;winget upgrade --all​&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;or below to upgrade a specific package:&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1717953261510&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;winget upgrade [package_name]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Using winget to install, upgrade, and remove AWS CLI is straightforward. Keeping your software up to date ensures you have the latest features and security patches. Regularly check for upgrades using winget to manage AWS CLI and other installed software efficiently.&lt;/p&gt;</description>
      <category>Etc. (Software &amp;amp; Life)</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/20</guid>
      <comments>https://sdndev-en.tistory.com/20#entry20comment</comments>
      <pubDate>Mon, 10 Jun 2024 02:14:50 +0900</pubDate>
    </item>
    <item>
      <title>[AEWS] Study Week 1 - Amazon EKS Installation &amp;amp; Basic Usage</title>
      <link>https://sdndev-en.tistory.com/12</link>
      <description>&lt;blockquote style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;This post contains the information while participating in the &lt;b&gt;AEWS&lt;/b&gt; (&lt;b&gt;A&lt;/b&gt;mazon &lt;b&gt;E&lt;/b&gt;KS &lt;b&gt;W&lt;/b&gt;orkshop &lt;b&gt;S&lt;/b&gt;tudy) study by CloudNet@.&lt;/blockquote&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. Amazon EKS Introduction&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;According&amp;nbsp;to&amp;nbsp;the&amp;nbsp;official&amp;nbsp;Amazon&amp;nbsp;EKS&amp;nbsp;User&amp;nbsp;Guide&amp;nbsp;(&lt;a href=&quot;https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;link&lt;/a&gt;),&amp;nbsp;Amazon&amp;nbsp;Web&amp;nbsp;Services&amp;nbsp;(AWS)&amp;nbsp;describes&amp;nbsp;it&amp;nbsp;as&amp;nbsp;a&amp;nbsp;managed&amp;nbsp;service&amp;nbsp;that&amp;nbsp;eliminates&amp;nbsp;the&amp;nbsp;need&amp;nbsp;to&amp;nbsp;install,&amp;nbsp;operate,&amp;nbsp;and&amp;nbsp;maintain&amp;nbsp;a&amp;nbsp;Kubernetes&amp;nbsp;control&amp;nbsp;plane.&amp;nbsp;There&amp;nbsp;is&amp;nbsp;a&amp;nbsp;diagram&amp;nbsp;of&amp;nbsp;the&amp;nbsp;control&amp;nbsp;plane&amp;nbsp;in&amp;nbsp;the&amp;nbsp;open-source&amp;nbsp;Kubernetes&amp;nbsp;documentation&amp;nbsp;(&lt;a href=&quot;https://kubernetes.io/docs/concepts/architecture/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;link&lt;/a&gt;) that explains the architecture of a Kubernetes cluster.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1052&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3H6Et/btsFGVjzDz5/74yEhVhyKdHi5ry9GLdSok/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3H6Et/btsFGVjzDz5/74yEhVhyKdHi5ry9GLdSok/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3H6Et/btsFGVjzDz5/74yEhVhyKdHi5ry9GLdSok/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3H6Et%2FbtsFGVjzDz5%2F74yEhVhyKdHi5ry9GLdSok%2Fimg.jpg&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;1052&quot; height=&quot;662&quot; data-origin-width=&quot;1052&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;In&amp;nbsp;the&amp;nbsp;image&amp;nbsp;regarding&amp;nbsp;the&amp;nbsp;control&amp;nbsp;plane,&amp;nbsp;there&amp;nbsp;are&amp;nbsp;five&amp;nbsp;components:&amp;nbsp;&lt;b&gt;cloud-controller-manager,&amp;nbsp;etcd,&amp;nbsp;kube-api-server,&amp;nbsp;scheduler,&amp;nbsp;and&amp;nbsp;Controller&amp;nbsp;Manager&lt;/b&gt;.&amp;nbsp;Instead&amp;nbsp;of&amp;nbsp;installing&amp;nbsp;and&amp;nbsp;managing&amp;nbsp;these&amp;nbsp;components&amp;nbsp;directly,&amp;nbsp;by&amp;nbsp;creating&amp;nbsp;a&amp;nbsp;managed&amp;nbsp;service&amp;nbsp;like&amp;nbsp;Amazon&amp;nbsp;EKS,&amp;nbsp;one&amp;nbsp;can&amp;nbsp;utilize&amp;nbsp;Kubernetes&amp;nbsp;nodes.&amp;nbsp;For&amp;nbsp;more&amp;nbsp;detailed&amp;nbsp;information,&amp;nbsp;refer&amp;nbsp;to&amp;nbsp;the&amp;nbsp;EKS&amp;nbsp;workshop&amp;nbsp;description&amp;nbsp;(&lt;a href=&quot;https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR/10-intro/200-eks&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;link&lt;/a&gt;). &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;The open-source Kubernetes can be checked for newly updated versions through the link &lt;a href=&quot;https://github.com/kubernetes/kubernetes/releases,&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/kubernetes/kubernetes/releases,&lt;/a&gt; where detailed explanations of the version numbers are also available at &lt;a href=&quot;https://kubernetes.io/releases/version-skew-policy/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;x.y.z&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| x: major version, y: minor version, z: patch version&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. EKS Workshop environment and EC2 bastion VM configuration&lt;/h3&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-15&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;b12dbb45-6345-430b-95a2-d3746ecc692b&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;For this study, we prepared our AWS accounts in advance following the &quot;&lt;a href=&quot;https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/en-US/20-preq/100-account&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Start with an AWS Account&lt;/a&gt;&quot; section in the EKS workshop. For setting up the practical environment, tasks ranged from setting up AWS Cloud9, installing kubectl, to installing eksctl. Thanks to the AWS CloudFormation prepared by our study leader, Mr. Kasida, we were able to participate in the study comfortably. Based on March 2024, the time of conducting this study, we chose version &lt;b&gt;v1.28&lt;/b&gt; for EKS, which supports add-ons and is among the most compatible and validated versions with numerous applications within the K8s ecosystem. To understand the AWS environment we are working within during the study, we referenced &lt;a href=&quot;https://aws.amazon.com/architecture/icons/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;AWS architecture icons&lt;/a&gt; and schematically represented it as follows..&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;805&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnaFxQ/btsFF8p9Gfg/Fuac2yZOoIBtMmWL8ew3q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnaFxQ/btsFF8p9Gfg/Fuac2yZOoIBtMmWL8ew3q1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnaFxQ/btsFF8p9Gfg/Fuac2yZOoIBtMmWL8ew3q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnaFxQ%2FbtsFF8p9Gfg%2FFuac2yZOoIBtMmWL8ew3q1%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;1022&quot; height=&quot;805&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;805&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-17&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;149918a3-cc9f-491a-b03b-6ff8822de871&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;After downloading the CloudFormation template as described below, we tried executing it using the AWS CLI (&lt;a href=&quot;https://aws.amazon.com/cli/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;link&lt;/a&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1710011784144&quot; class=&quot;elixir&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;$ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/myeks-1week.yaml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10373  100 10373    0     0   180k      0 --:--:-- --:--:-- --:--:--  180k
$ aws cloudformation deploy --template-file myeks-1week.yaml --stack-name myeks --parameter-overrides KeyName=kp-ian SgIngressSshCidr=$(curl -s ipinfo.io/ip)/32 --region ap-northeast-2

Waiting for changeset to be created..
Waiting for stack create/update to complete
Successfully created/updated stack - myeks&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-19&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;7e26004a-be37-4d30-ae8b-4fcf8c023f2c&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;After executing the following command, you can find out the IP address, and by using this IP address to run SSH, you can access the Shell and proceed with the subsequent tasks. The SSH ID and Password to connect can be found in the above CloudFormation template file, so please refer to it.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1710011784144&quot; class=&quot;jboss-cli&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;aws cloudformation describe-stacks --stack-name myeks --query 'Stacks[*].Outputs[*].OutputValue' --output text&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-19&quot;&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;7e26004a-be37-4d30-ae8b-4fcf8c023f2c&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; letter-spacing: 0px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;Once you've accessed the working EC2 instance, it's necessary to configure IAM user credentials. For the convenience of the practice, enter the credentials of an IAM User with administrator privileges.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1710011784145&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[root@myeks-host ~]# aws ec2 describe-instances

Unable to locate credentials. You can configure credentials by running &quot;aws configure&quot;.
[root@myeks-host ~]# aws configure
AWS Access Key ID [None]: AKI..........
AWS Secret Access Key [None]: FQ.......................
Default region name [None]: ap-northeast-2
Default output format [None]: json
[root@myeks-host ~]# aws ec2 describe-instances
{
    &quot;Reservations&quot;: [
        {
            &quot;Groups&quot;: [],
            &quot;Instances&quot;: [
                {
                    &quot;AmiLaunchIndex&quot;: 0,
                    &quot;ImageId&quot;: &quot;ami-025cebb6913219d99&quot;,...........&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. Cluster creation using eksctl&lt;/h3&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-23&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;f57e565d-3219-41de-b8d4-65f9e089630c&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;In the EKS workshop content (&lt;a href=&quot;https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/en-US/50-eks-cluster/100-launch-cluster&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;link&lt;/a&gt;), clusters are created using the eksctl command with yaml files. However, it's also possible to pass basic options directly to the eksctl command in the appropriate parameter format, and this method was explored in the study. The necessary option values were stored and utilized as environment variables.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;3.1. Environment variables&lt;/h4&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-25&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;3466dc3c-b02b-4951-80a0-8d3f998e0aea&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;The $AWS_DEFAULT_REGION and $CLUSTER_NAME environment variables are already prepared on the working (bastion) EC2 instance. We checked these and then went ahead to set up the remaining environment variables.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1710011784146&quot; class=&quot;routeros&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;[root@myeks-host ~]# echo $AWS_DEFAULT_REGION
ap-northeast-2
[root@myeks-host ~]# echo $CLUSTER_NAME
myeks
[root@myeks-host ~]# export VPCID=$(aws ec2 describe-vpcs --filters &quot;Name=tag:Name,Values=$CLUSTER_NAME-VPC&quot; | jq -r .Vpcs[].VpcId)
[root@myeks-host ~]# echo &quot;export VPCID=$VPCID&quot; &amp;gt;&amp;gt; /etc/profile
[root@myeks-host ~]# export PubSubnet1=$(aws ec2 describe-subnets --filters Name=tag:Name,Values=&quot;$CLUSTER_NAME-PublicSubnet1&quot; --query &quot;Subnets[0].[SubnetId]&quot; --output text)
rt PubSubnet2=$(aws ec2 describe-subnets --filters Name=tag:Name,Values=&quot;$CLUSTER_NAME-PublicSubnet2&quot; --query &quot;Subnets[0].[SubnetId]&quot; --output text)
echo &quot;export PubSubnet1=$PubSubnet1&quot; &amp;gt;&amp;gt; /etc/profile
echo &quot;export PubSubnet2=$PubSubnet2&quot; &amp;gt;&amp;gt; /etc/profile
[root@myeks-host ~]# export PubSubnet2=$(aws ec2 describe-subnets --filters Name=tag:Name,Values=&quot;$CLUSTER_NAME-PublicSubnet2&quot; --query &quot;Subnets[0].[SubnetId]&quot; --output text)
[root@myeks-host ~]# echo &quot;export PubSubnet1=$PubSubnet1&quot; &amp;gt;&amp;gt; /etc/profile
[root@myeks-host ~]# echo &quot;export PubSubnet2=$PubSubnet2&quot; &amp;gt;&amp;gt; /etc/profile
[root@myeks-host ~]# echo $VPCID
vpc-06019251cc08c519b
[root@myeks-host ~]# echo $PubSubnet1,$PubSubnet2
subnet-09c63523c434bcaec,subnet-0244ef5fa73c2f986&lt;/code&gt;&lt;/pre&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;3.2. EKS cluster creation&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;Once the preparation is complete, you can execute the following command to proceed.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710011784147&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;eksctl create cluster --name $CLUSTER_NAME --region=$AWS_DEFAULT_REGION --nodegroup-name=$CLUSTER_NAME-nodegroup --node-type=t3.medium \
--node-volume-size=30 --vpc-public-subnets &quot;$PubSubnet1,$PubSubnet2&quot; --version 1.28 --ssh-access --external-dns-access --verbose 4​&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-29&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;317c7beb-d0b5-4978-9022-c9b6d27d7291&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;It will take about 15-20 minutes, so let's wait for a bit. In the meantime, opening another terminal and executing the following command will help check whether the cluster has been created.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1710011784148&quot; class=&quot;sqf&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;while true; do aws ec2 describe-instances --query &quot;Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,PrivateIPAdd:PrivateIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}&quot; --filters Name=instance-state-name,Values=running --output text ; echo &quot;------------------------------&quot; ; sleep 1; done&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot; data-testid=&quot;conversation-turn-31&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;db71e0e0-c60c-4ce4-89cb-4763d09ba870&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Once the cluster creation is complete, the terminal status will change as follows.&lt;/p&gt;
&lt;img style=&quot;text-align: center; caret-color: transparent; color: #333333; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/nmPHr/btsFD6tlusM/a71TiuFD6vI8cqd875xlLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5BZsN%2FbtsFF5GWx1O%2Fr7t70sSNgKAFa9IjrSs1VK%2Fimg.png&quot; data-origin-height=&quot;663&quot; data-origin-width=&quot;1114&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;You can also check the deployed EKS details in the AWS console (if the console hasn't refreshed, try clicking the refresh button).&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;613&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doQht9/btsFDBUE7G2/Sa3kTWu7Mc9SYQgtQOcf8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doQht9/btsFDBUE7G2/Sa3kTWu7Mc9SYQgtQOcf8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doQht9/btsFDBUE7G2/Sa3kTWu7Mc9SYQgtQOcf8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoQht9%2FbtsFDBUE7G2%2FSa3kTWu7Mc9SYQgtQOcf8K%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;613&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;613&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;1280&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/emy6bj/btsFE1ynvsx/k7WYDYlADyM6okoNO8pa2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/emy6bj/btsFE1ynvsx/k7WYDYlADyM6okoNO8pa2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/emy6bj/btsFE1ynvsx/k7WYDYlADyM6okoNO8pa2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Femy6bj%2FbtsFE1ynvsx%2Fk7WYDYlADyM6okoNO8pa2k%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;222&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;222&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;1280&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJJxBM/btsFHnNFP0t/dA8iMCkMv3Db28yPbNvuk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJJxBM/btsFHnNFP0t/dA8iMCkMv3Db28yPbNvuk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJJxBM/btsFHnNFP0t/dA8iMCkMv3Db28yPbNvuk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJJxBM%2FbtsFHnNFP0t%2FdA8iMCkMv3Db28yPbNvuk0%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;304&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;After the EKS cluster creation is complete, you can execute various commands on the EKS cluster using the kubectl command. During the study, we tried various things and confirmed many aspects, but I intend to document just one of those in the blog.&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4. Check the created EKS cluster - endpoint access (Public -&amp;gt; Public and private)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;To check the information of the EKS cluster, you can use the command &quot;kubectl cluster-info&quot;.&lt;/p&gt;
&lt;pre id=&quot;code_1710011784150&quot; class=&quot;angelscript&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;(awesian@myeks:N/A) [root@myeks-host ~]# eksctl get nodegroup --cluster $CLUSTER_NAME --name $CLUSTER_NAME-nodegroup
CLUSTER NODEGROUP       STATUS  CREATED                 MIN SIZE        MAX SIZE        DESIRED CAPACITY        INSTANCE TYPE   IMAGE ID        ASG NAME              TYPE
myeks   myeks-nodegroup ACTIVE  2024-03-09T18:02:34Z    2               2               2                       t3.medium       AL2_x86_64      eks-myeks-nodegroup-eac71230-bb27-1b00-6c14-e2c96dfc5646       managed
(awesian@myeks:N/A) [root@myeks-host ~]# kubectl cluster-info
Kubernetes control plane is running at https://088CD22A78682CF5F017CFEE329E3C1A.gr7.ap-northeast-2.eks.amazonaws.com
CoreDNS is running at https://088CD22A78682CF5F017CFEE329E3C1A.gr7.ap-northeast-2.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Additionally, the &quot;eksctl get cluster&quot; command can also be used to check the information. One notable point was that the created endpoint was public. Being public means that the endpoint is accessible over the network. To proceed with actions like creating Pods through this endpoint, additional authentication is required. However, for simple tasks like version checking, access to the created EKS cluster was possible without any separate authentication when the endpoint is public.&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;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wdbdx/btsFF5Ut0E4/9I9IGiZXMSK6zCJeKUyndk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wdbdx/btsFF5Ut0E4/9I9IGiZXMSK6zCJeKUyndk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wdbdx/btsFF5Ut0E4/9I9IGiZXMSK6zCJeKUyndk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwdbdx%2FbtsFF5Ut0E4%2F9I9IGiZXMSK6zCJeKUyndk%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;555&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Even when checked from the console, the API server endpoint access is listed as &quot;Public&quot;.&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;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mFdhJ/btsFHpSeVIO/fgk278XHjK7qIY0Vtwwyt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mFdhJ/btsFHpSeVIO/fgk278XHjK7qIY0Vtwwyt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mFdhJ/btsFHpSeVIO/fgk278XHjK7qIY0Vtwwyt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmFdhJ%2FbtsFHpSeVIO%2Ffgk278XHjK7qIY0Vtwwyt0%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;630&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Let's change the API server endpoint access to &quot;Public and Private&quot;. To detect changes, we can use a total of three terminals. Two of these terminals will be used for monitoring purposes.&lt;/p&gt;
&lt;pre id=&quot;code_1710011784151&quot; class=&quot;bash&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# Terminal A - for monitoring
APIDNS=$(aws eks describe-cluster --name $CLUSTER_NAME | jq -r .cluster.endpoint | cut -d '/' -f 3)
dig +short $APIDNS
while true; do dig +short $APIDNS ; echo &quot;------------------------------&quot; ; date; sleep 1; done

# Terminal B - for another monitoring
N1=$(kubectl get node --label-columns=topology.kubernetes.io/zone --selector=topology.kubernetes.io/zone=ap-northeast-2a -o jsonpath={.items[0].status.addresses[0].address})
N2=$(kubectl get node --label-columns=topology.kubernetes.io/zone --selector=topology.kubernetes.io/zone=ap-northeast-2c -o jsonpath={.items[0].status.addresses[0].address})
while true; do ssh ec2-user@$N1 sudo ss -tnp | egrep 'kubelet|kube-proxy' ; echo ; ssh ec2-user@$N2 sudo ss -tnp | egrep 'kubelet|kube-proxy' ; echo &quot;------------------------------&quot; ; date; sleep 1; done

# Terminal C - Public(with only one IP address)+Private. It will take 8-10 minutes.
aws eks update-cluster-config --region $AWS_DEFAULT_REGION --name $CLUSTER_NAME --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs=&quot;$(curl -s ipinfo.io/ip)/32&quot;,endpointPrivateAccess=true&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;1280&quot; data-origin-height=&quot;773&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cF0vpB/btsFGKoN8kC/oflMOkWU7Zt1CgloGVAr81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cF0vpB/btsFGKoN8kC/oflMOkWU7Zt1CgloGVAr81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cF0vpB/btsFGKoN8kC/oflMOkWU7Zt1CgloGVAr81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF0vpB%2FbtsFGKoN8kC%2FoflMOkWU7Zt1CgloGVAr81%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;773&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;773&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;After&amp;nbsp;waiting,&amp;nbsp;you&amp;nbsp;can&amp;nbsp;observe&amp;nbsp;in&amp;nbsp;Terminal&amp;nbsp;A&amp;nbsp;that&amp;nbsp;the&amp;nbsp;section&amp;nbsp;previously&amp;nbsp;displaying&amp;nbsp;2&amp;nbsp;public&amp;nbsp;IPs&amp;nbsp;has&amp;nbsp;suddenly&amp;nbsp;changed&amp;nbsp;to&amp;nbsp;internal&amp;nbsp;network&amp;nbsp;subnets.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WiVRy/btsFEjfq4lk/4kZRhXBYY3toNGDpKfhwq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvEsCl%2FbtsFENgdR1x%2FrWhxbhkQTWOU02CE3GfMjk%2Fimg.png&quot; data-origin-height=&quot;368&quot; data-origin-width=&quot;1280&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;The&amp;nbsp;lack&amp;nbsp;of&amp;nbsp;change&amp;nbsp;on&amp;nbsp;the&amp;nbsp;right&amp;nbsp;side&amp;nbsp;may&amp;nbsp;be&amp;nbsp;because,&amp;nbsp;with&amp;nbsp;both&amp;nbsp;Public&amp;nbsp;and&amp;nbsp;Private&amp;nbsp;options&amp;nbsp;activated,&amp;nbsp;there's&amp;nbsp;no&amp;nbsp;need&amp;nbsp;to&amp;nbsp;terminate&amp;nbsp;existing&amp;nbsp;network&amp;nbsp;connections&amp;nbsp;that&amp;nbsp;kube-proxy&amp;nbsp;and&amp;nbsp;kubelet&amp;nbsp;have&amp;nbsp;already&amp;nbsp;established. &lt;br /&gt;&lt;br /&gt;After&amp;nbsp;the&amp;nbsp;change,&amp;nbsp;executing&amp;nbsp;&quot;kubectl&quot;&amp;nbsp;commands&amp;nbsp;may&amp;nbsp;not&amp;nbsp;work.&amp;nbsp;Attempting&amp;nbsp;to&amp;nbsp;run&amp;nbsp;it&amp;nbsp;could&amp;nbsp;result&amp;nbsp;in&amp;nbsp;an&amp;nbsp;error&amp;nbsp;message,&amp;nbsp;indicating&amp;nbsp;that&amp;nbsp;the&amp;nbsp;visible&amp;nbsp;IP&amp;nbsp;address&amp;nbsp;is&amp;nbsp;not&amp;nbsp;a&amp;nbsp;Public&amp;nbsp;IP.&amp;nbsp;This&amp;nbsp;implies&amp;nbsp;that,&amp;nbsp;with&amp;nbsp;the&amp;nbsp;cluster&amp;nbsp;settings&amp;nbsp;altered,&amp;nbsp;the&amp;nbsp;Endpoint&amp;nbsp;now&amp;nbsp;returns&amp;nbsp;a&amp;nbsp;Private&amp;nbsp;IP.&lt;/p&gt;
&lt;pre id=&quot;code_1710011784153&quot; class=&quot;angelscript&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;(awesian@myeks:N/A) [root@myeks-host ~]# kubectl get node -v=6
I0310 03:44:52.743735   18383 loader.go:395] Config loaded from file:  /root/.kube/config
I0310 03:45:23.611890   18383 round_trippers.go:553] GET https://088CD22A78682CF5F017CFEE329E3C1A.gr7.ap-northeast-2.eks.amazonaws.com/api/v1/nodes?limit=500  in 30861 milliseconds
I0310 03:45:23.612005   18383 helpers.go:264] Connection error: Get https://088CD22A78682CF5F017CFEE329E3C1A.gr7.ap-northeast-2.eks.amazonaws.com/api/v1/nodes?limit=500: dial tcp 192.168.1.51:443: i/o timeout
Unable to connect to the server: dial tcp 192.168.1.51:443: i/o timeout
(awesian@myeks:N/A) [root@myeks-host ~]# kubectl cluster-info

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Unable to connect to the server: dial tcp 192.168.2.122:443: i/o timeout&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Connection&amp;nbsp;timeout&amp;nbsp;implies&amp;nbsp;that&amp;nbsp;you&amp;nbsp;need&amp;nbsp;to&amp;nbsp;make&amp;nbsp;additional&amp;nbsp;settings&amp;nbsp;in&amp;nbsp;the&amp;nbsp;EKS&amp;nbsp;Control&amp;nbsp;plane&amp;nbsp;security&amp;nbsp;group&amp;nbsp;to&amp;nbsp;enable&amp;nbsp;access&amp;nbsp;to&amp;nbsp;the&amp;nbsp;subnet.&amp;nbsp;Using&amp;nbsp;the&amp;nbsp;following&amp;nbsp;command,&amp;nbsp;an&amp;nbsp;additional&amp;nbsp;rule&amp;nbsp;was&amp;nbsp;set&amp;nbsp;in&amp;nbsp;the&amp;nbsp;node&amp;nbsp;security&amp;nbsp;group&amp;nbsp;to&amp;nbsp;allow&amp;nbsp;access&amp;nbsp;to&amp;nbsp;the&amp;nbsp;node&amp;nbsp;(pod)&amp;nbsp;from&amp;nbsp;myeks-host.&lt;/p&gt;
&lt;pre id=&quot;code_1710011784153&quot; class=&quot;bash&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# EKS ControlPlane Security Group ID
aws ec2 describe-security-groups --filters Name=group-name,Values=*ControlPlaneSecurityGroup* --query &quot;SecurityGroups[*].[GroupId]&quot; --output text
CPSGID=$(aws ec2 describe-security-groups --filters Name=group-name,Values=*ControlPlaneSecurityGroup* --query &quot;SecurityGroups[*].[GroupId]&quot; --output text)
echo $CPSGID

# Add a rule to enable connection from myeks-host to nodes (pods) in the security group
aws ec2 authorize-security-group-ingress --group-id $CPSGID --protocol '-1' --cidr 192.168.1.100/32&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;1280&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9L1bS/btsFGJi7tlU/Sk7DQbGrNZZ5kmURPhFIE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9L1bS/btsFGJi7tlU/Sk7DQbGrNZZ5kmURPhFIE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9L1bS/btsFGJi7tlU/Sk7DQbGrNZZ5kmURPhFIE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9L1bS%2FbtsFGJi7tlU%2FSk7DQbGrNZZ5kmURPhFIE0%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;489&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Also, let's change the settings for kubelet and kube-proxy to connect to private IP addresses. Run the following command:&lt;/p&gt;
&lt;pre id=&quot;code_1710011784154&quot; class=&quot;bash&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# kube-proxy rollout
kubectl rollout restart ds/kube-proxy -n kube-system

# Kubelet is applied by running systemctl restart kubelet on individual nodes. The $N1 and $N2 environment variables must be set.
for i in $N1 $N2; do echo &quot;&amp;gt;&amp;gt; node $i &amp;lt;&amp;lt;&quot;; ssh ec2-user@$i sudo systemctl restart kubelet; echo; done&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;After&amp;nbsp;running&amp;nbsp;the&amp;nbsp;first&amp;nbsp;command&amp;nbsp;above,&amp;nbsp;you&amp;nbsp;can&amp;nbsp;see&amp;nbsp;that&amp;nbsp;the&amp;nbsp;connection&amp;nbsp;to&amp;nbsp;kube-proxy&amp;nbsp;is&amp;nbsp;made&amp;nbsp;with&amp;nbsp;a&amp;nbsp;private&amp;nbsp;IP.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; 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;556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beTivY/btsFDAalTwO/wJzd4Nk4xEgGDuJTi85Br0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beTivY/btsFDAalTwO/wJzd4Nk4xEgGDuJTi85Br0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beTivY/btsFDAalTwO/wJzd4Nk4xEgGDuJTi85Br0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeTivY%2FbtsFDAalTwO%2FwJzd4Nk4xEgGDuJTi85Br0%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;556&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;556&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;If&amp;nbsp;the&amp;nbsp;second&amp;nbsp;command&amp;nbsp;runs&amp;nbsp;successfully,&amp;nbsp;you&amp;nbsp;can&amp;nbsp;see&amp;nbsp;that&amp;nbsp;the&amp;nbsp;kubelet&amp;nbsp;is&amp;nbsp;also&amp;nbsp;connecting&amp;nbsp;to&amp;nbsp;the&amp;nbsp;private&amp;nbsp;IP.&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;967&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ct19Ip/btsFGEbiBn5/hhL5TAvQktkeIXVU1ijQg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ct19Ip/btsFGEbiBn5/hhL5TAvQktkeIXVU1ijQg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ct19Ip/btsFGEbiBn5/hhL5TAvQktkeIXVU1ijQg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct19Ip%2FbtsFGEbiBn5%2FhhL5TAvQktkeIXVU1ijQg1%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;967&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;967&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5. Resource deallocation&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;After&amp;nbsp;completing&amp;nbsp;the&amp;nbsp;exercise,&amp;nbsp;be&amp;nbsp;sure&amp;nbsp;to&amp;nbsp;delete&amp;nbsp;resources&amp;nbsp;to&amp;nbsp;minimize&amp;nbsp;unnecessary&amp;nbsp;costs.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Deleting&amp;nbsp;an&amp;nbsp;Amazon&amp;nbsp;EKS&amp;nbsp;cluster&amp;nbsp;(takes&amp;nbsp;about&amp;nbsp;10&amp;nbsp;minutes): eksctl delete cluster --name $CLUSTER_NAME&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;To&amp;nbsp;delete&amp;nbsp;the&amp;nbsp;AWS&amp;nbsp;CloudFormation&amp;nbsp;stack&amp;nbsp;after&amp;nbsp;the&amp;nbsp;above&amp;nbsp;process&amp;nbsp;is&amp;nbsp;completed: aws cloudformation delete-stack --stack-name myeks&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;1802&quot; data-origin-height=&quot;821&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oymU0/btsFD43nL37/ok1cSjFqCR0r4co1ltD240/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oymU0/btsFD43nL37/ok1cSjFqCR0r4co1ltD240/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oymU0/btsFD43nL37/ok1cSjFqCR0r4co1ltD240/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoymU0%2FbtsFD43nL37%2Fok1cSjFqCR0r4co1ltD240%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;1802&quot; height=&quot;821&quot; data-origin-width=&quot;1802&quot; data-origin-height=&quot;821&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Amazon EKS (Elastic Kubernetes Service)</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/12</guid>
      <comments>https://sdndev-en.tistory.com/12#entry12comment</comments>
      <pubDate>Sun, 10 Mar 2024 04:37:58 +0900</pubDate>
    </item>
    <item>
      <title>Second OpenStack Upstream Training in Korea in Feb 2017</title>
      <link>https://sdndev-en.tistory.com/11</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;(Recovered&lt;span&gt;&amp;nbsp;&lt;/span&gt;from my old article -&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://web.archive.org/web/20181129183737/http://sdndev.net/&quot;&gt;originally posted on 2017.03.14 10:32 KST&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&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;color: #666666;&quot;&gt;(Note: This is English version. If you want to see Korean version, please visit&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://ko.sdndev.net/11&quot;&gt;http://ko.sdndev.net/11&lt;/a&gt;&lt;span style=&quot;color: #666666;&quot;&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;There were a second OpenStack upstream training in Korea from 10 AM to 5AM on February 11th, 2017.&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;OpenStack Days Korea 2017 will be held on the middle of July, not February held in the last year, so I organized the second upstream training much longer (morning session and afternoon session) than the first training (only three hours). More details on the second upstream training are available at:&amp;nbsp;&lt;a href=&quot;http://openstack-kr.github.io/upstream-training/2017/&quot;&gt;http://openstack-kr.github.io/upstream-training/2017/&lt;/a&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;Also, I organized a local study program whose goals are to learn upstream training materials and help the second upstream training on last November. Around twenty members started to participate in the study program, and about 10 members finally agreed to help the second upstream training program as mentors. Thanks to them, I feel that the second upstream training was so successful :)&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;(Study content:&amp;nbsp;&lt;a href=&quot;https://github.com/openstack-kr/openstack-study/tree/master/2016-fall-upstream&quot;&gt;https://github.com/openstack-kr/openstack-study/tree/master/2016-fall-upstream&lt;/a&gt;&amp;nbsp;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;- Studying upstream training materials #1 -&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;393&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lP6uC/btsFHn1cg3u/fZhGZ78fiafY1OrznhtMwK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lP6uC/btsFHn1cg3u/fZhGZ78fiafY1OrznhtMwK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lP6uC/btsFHn1cg3u/fZhGZ78fiafY1OrznhtMwK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlP6uC%2FbtsFHn1cg3u%2FfZhGZ78fiafY1OrznhtMwK%2Fimg.jpg&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;700&quot; height=&quot;394&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;393&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 style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;- Studying upstream training materials&amp;nbsp;#2 -&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;393&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cC8ZXM/btsFGMtm2qg/ASrgXEU2SnBbalwsFgmUX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cC8ZXM/btsFGMtm2qg/ASrgXEU2SnBbalwsFgmUX0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cC8ZXM/btsFGMtm2qg/ASrgXEU2SnBbalwsFgmUX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcC8ZXM%2FbtsFGMtm2qg%2FASrgXEU2SnBbalwsFgmUX0%2Fimg.jpg&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;700&quot; height=&quot;394&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;393&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;In Korea, Toz (URL:&amp;nbsp;&lt;a href=&quot;http://www.toz.co.kr/index.htm&quot;&gt;http://www.toz.co.kr/index.htm&lt;/a&gt;) is the place where meeting rooms are provided for various events such as seminars, small meetups, and studyings, and I have been using Toz with the kind support from Naver D2. However, when I considered the place for second upstream training, I finally concluded that Toz would not be the best place for doing hands-on-labs, discussing with upstream topics, and mentoring activities. Fortunately, Naver D2 agreed with the situation, and decided to provide D2 Startup Factory which is very large! It accommodates max. of 150 attendees :) Moreover, Ubuntu Korea Community has joined with the organization of the second upstream training with Launchpad (&lt;a href=&quot;https://launchpad.net/&quot;&gt;https://launchpad.net/&lt;/a&gt;&amp;nbsp;) content.&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;However.. it was just the four days before the actual upstream training. At that time, there were the final&amp;nbsp;studying meetup and attendees were discussing the preparation of the actual upstream training. We finally figured out that there would be less number of power plugs in D2 Startup Factory! We actually need about 40 power plugs for attendees and mentors. It implies that we need to find out multi strips for many number of power plugs. D2 Startup Factory did not have enough multi strips. Fortunately, I have finally found two institutions who kindly agreed to lend multi strips.&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;1. NAIM Networks&amp;nbsp;(&lt;a href=&quot;http://www.naimnetworks.com/&quot;&gt;http://www.naimnetworks.com/&lt;/a&gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;This is the company where I worked from Oct 2013 to Aug 2014. Since&amp;nbsp;the company also provides SDN trainings, I thought that the company might have the spare multi strips if there will be no training activities on the same days as the second upstream training. I asked to my previous colleague and team manager, and they said to me that some spare multi strips for server racks would be available! They finally agreed to provide three 14-multi strips :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;- Multi strips with 14 sockets!&amp;nbsp;(Thanks to NAIM Networks, Korea) -&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;933&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YzyFG/btsFF3biueO/k1I0JhKMrROWHYUGPK8A20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YzyFG/btsFF3biueO/k1I0JhKMrROWHYUGPK8A20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YzyFG/btsFF3biueO/k1I0JhKMrROWHYUGPK8A20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYzyFG%2FbtsFF3biueO%2Fk1I0JhKMrROWHYUGPK8A20%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;700&quot; height=&quot;933&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;933&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;2. MODU Labs (&lt;a href=&quot;http://modulabs.co.kr/&quot;&gt;http://modulabs.co.kr/&lt;/a&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;[TBD - to be translated later, sorry]&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;2015년 초, 인공지능 스터디를 참여하였던 적이 있는데 그 때 현재 모두의연구소 소장님이신 김승일 님을 알게 되었다. 연구소 취지가 좋다고 생각하여, 시간이 허락될 때 스터디 하나를 직접 참가하고 싶은 마음이 크지만, 현실적으로 오픈스택을 보면서 모두의 연구소에서 하는 부분까지 살펴보는 건 참으로 쉽지 않은 것 같다. 소장님께서도 외부 교육 등을 많이 진행하시기에 물어보았으며, 금요일 오전에 연락되어 소장님께선 연구소에 안 계시지만 다른 분의 도움을 받아 힘들게 멀티탭 6구를 여러 개 대여할 수 있었다.&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;이러한 준비 + 많은 분들의 도움 덕택에 이번 2회 업스트림 트레이닝은 지난 번 1회때보다 구체적인 목표를 갖고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 질문 &amp;amp; 답변과 함께 재미있는 시간을 보낼 수 있었다고 생각한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;- 제2회 업스트림 트레이닝 행사 끝나고 단체 사진 -&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oQUlL/btsFF5GVRV3/Ik94K9SPXwzOHKI6a72fS0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oQUlL/btsFF5GVRV3/Ik94K9SPXwzOHKI6a72fS0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oQUlL/btsFF5GVRV3/Ik94K9SPXwzOHKI6a72fS0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoQUlL%2FbtsFF5GVRV3%2FIk94K9SPXwzOHKI6a72fS0%2Fimg.jpg&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;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&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;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NQaEM/btsFDAuF4PR/0OdPvfCUthDgV4KUX02hi0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NQaEM/btsFDAuF4PR/0OdPvfCUthDgV4KUX02hi0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NQaEM/btsFDAuF4PR/0OdPvfCUthDgV4KUX02hi0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNQaEM%2FbtsFDAuF4PR%2F0OdPvfCUthDgV4KUX02hi0%2Fimg.jpg&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;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;- Etherpad를 사용한 설명 중 -&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5FFV1/btsFDA9hLfL/42ScadGuPKTDrz6okjG3w0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5FFV1/btsFDA9hLfL/42ScadGuPKTDrz6okjG3w0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5FFV1/btsFDA9hLfL/42ScadGuPKTDrz6okjG3w0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5FFV1%2FbtsFDA9hLfL%2F42ScadGuPKTDrz6okjG3w0%2Fimg.jpg&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;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; 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;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Beqb0/btsFFnn3x9D/MiTVxWIYf9cISRG4gS1AN1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Beqb0/btsFFnn3x9D/MiTVxWIYf9cISRG4gS1AN1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Beqb0/btsFFnn3x9D/MiTVxWIYf9cISRG4gS1AN1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBeqb0%2FbtsFFnn3x9D%2FMiTVxWIYf9cISRG4gS1AN1%2Fimg.jpg&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;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;- 즐거운 토론 중 -&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dCbs2T/btsFEYn2otf/7FikX67ADqmBiaNzmvMkCk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dCbs2T/btsFEYn2otf/7FikX67ADqmBiaNzmvMkCk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dCbs2T/btsFEYn2otf/7FikX67ADqmBiaNzmvMkCk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCbs2T%2FbtsFEYn2otf%2F7FikX67ADqmBiaNzmvMkCk%2Fimg.jpg&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;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&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;다음 업스트림 트레이닝 행사도 잘 진행되면 좋을 것 같은데.. D2의 도움도 계속 필요할 것 같고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무엇보다 여러 멘토 분들과 함께하였지만 사실 혼자 Full로 진행하기에는 다소 지치는 측면도 있어..&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;</description>
      <category>OpenStack</category>
      <category>OpenStack</category>
      <category>OpenStack Study</category>
      <category>Upstream Training</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/11</guid>
      <comments>https://sdndev-en.tistory.com/11#entry11comment</comments>
      <pubDate>Sun, 10 Mar 2024 00:20:46 +0900</pubDate>
    </item>
    <item>
      <title>First OpenStack Upstream Training in Korea in Feb 2016</title>
      <link>https://sdndev-en.tistory.com/10</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;(Recovered&lt;span&gt;&amp;nbsp;&lt;/span&gt;from my old article -&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://web.archive.org/web/20170311180107/http://sdndev.net/10&quot;&gt;originally posted on 2016.02.25 02:59 KST&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(Note: This is English version. If you want to see Korean version, please visit&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://ko.sdndev.net/10&quot;&gt;http://ko.sdndev.net/10&lt;/a&gt;.)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;There was the first local OpenStack Upstream Training in Korea&amp;nbsp;on February 18, 2016, Thursday.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;It was announced&amp;nbsp;with OpenStack Days Korea 2016&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;http://event.openstack.or.kr/program.html&quot;&gt;http://event.openstack.or.kr/program.html&lt;/a&gt;&lt;/span&gt;&lt;span&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;The announcement for OpenStack Upstream Training in Korea 2016 is as follows:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;register_box02&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;880&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #666666;&quot; colspan=&quot;2&quot; height=&quot;40&quot;&gt;&lt;span&gt;&lt;b&gt;TrackV : OpenStack Upstream Training&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Overview&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;It is great honor to hold the brief version (160 minutes) of&amp;nbsp;Upstream Training, which originally takes two days.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Upstream Training is designed to be practical for&amp;nbsp;OpenStack&amp;nbsp;Upstream Open Source developers.&amp;nbsp;More information on Upstream Training is available on&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://docs.openstack.org/upstream-training/&quot;&gt;http://docs.openstack.org/upstream-training/&lt;/a&gt;&lt;a style=&quot;color: #5a5194;&quot; href=&quot;https://web.archive.org/web/20170311180107/http://docs.openstack.org/upstream-training/&quot;&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;This local training is organized with shorter version of official Upstream Training, with Korean translated slides.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Date &amp;amp; Time&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;February 18, 2016 (Thu),&amp;nbsp;13:00~16:10 (total&amp;nbsp;160 minutes)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Online engagement&amp;nbsp;(e.g., IRC, Mailing List, Slack, ...) is recommended.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Location&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;Track V (Ruby&amp;amp;Jade), 3F, Jamsil Lotte Hotel&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a style=&quot;background-color: #003366; color: #ffffff;&quot; href=&quot;https://web.archive.org/web/20170311180107/http://event.openstack.or.kr/program.html&quot;&gt;See location&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Expected # of Trainees&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;30 people&amp;nbsp;&lt;span style=&quot;color: #0066ff;&quot;&gt;Early registration is needed&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a style=&quot;background-color: #003366; color: #ffffff;&quot; href=&quot;https://web.archive.org/web/20170311180107/http://event.openstack.or.kr/register.html&quot;&gt;Early registration&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Fee&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;Free (requirement: OpenStack Days Korea 2016 registration)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Preparation&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;Laptop with Wifi&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;(Recommended: Ubuntu 14.04 + 4GB RAM VM&amp;nbsp;for DevStack)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Staff&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;Ian Y. Choi (preparation,&amp;nbsp;training, assistant)&lt;br /&gt;Stephan Ahn (preparation, training, assistant)&lt;br /&gt;Sungjin Kang (preparation, training, assistant)&lt;br /&gt;Namgon Lucas Kim, Junsik Shin, Jungsu Han&amp;nbsp;(GIST - attended&amp;nbsp;Tokyo Upstream Training, assistant &amp;amp; mentoring)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #333333;&quot; width=&quot;110&quot;&gt;&lt;span&gt;Reference&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;a style=&quot;color: #666666;&quot; href=&quot;https://web.archive.org/web/20170311180107/http://docs.openstack.org/upstream-training/&quot;&gt;1. OpenStack Upstream Training Official Document&amp;nbsp;(docs.openstack.org/upstream-training)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a style=&quot;color: #666666;&quot; href=&quot;https://web.archive.org/web/20170311180107/http://www.slideshare.net/ianychoi/tokyo-upstream-training-openstack-2015&quot;&gt;2. My OpenStack Upstream Training&amp;nbsp;Experience (before Tokyo Summit) by Ian Y. Choi&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div id=&quot;ps_info&quot; style=&quot;background-color: #ffffff; color: #d92e33; text-align: start;&quot;&gt;※ The detail schedule is subject to change.&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Total 35 people were pre-registered for the training, and 29 people attended. Among of them, 24 people actively participated in the training with Etherpad and Ubuntu VM.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Photos were taken by ujuc! :) Also, you can find Etherpad on&amp;nbsp;&lt;a href=&quot;https://etherpad.openstack.org/p/upstream-training-korea-2016&quot;&gt;https://etherpad.openstack.org/p/upstream-training-korea-2016&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and translated slides on&amp;nbsp;&lt;a href=&quot;http://docs.openstack.org/ko_KR/upstream-training/&quot;&gt;http://docs.openstack.org/ko_KR/upstream-training/&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; 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;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3HKia/btsFEvl56uq/H0h17pd81QSkk6oFZiHkTk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3HKia/btsFEvl56uq/H0h17pd81QSkk6oFZiHkTk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3HKia/btsFEvl56uq/H0h17pd81QSkk6oFZiHkTk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3HKia%2FbtsFEvl56uq%2FH0h17pd81QSkk6oFZiHkTk%2Fimg.jpg&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;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; 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;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JlNSA/btsFHqcxyPc/RoXf2lhap62k2KQiZ8sqMK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JlNSA/btsFHqcxyPc/RoXf2lhap62k2KQiZ8sqMK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JlNSA/btsFHqcxyPc/RoXf2lhap62k2KQiZ8sqMK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJlNSA%2FbtsFHqcxyPc%2FRoXf2lhap62k2KQiZ8sqMK%2Fimg.jpg&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;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; 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;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5t48b/btsFGSAmwYT/n0qbA7zgIAaeZu9L1LgDl1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5t48b/btsFGSAmwYT/n0qbA7zgIAaeZu9L1LgDl1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5t48b/btsFGSAmwYT/n0qbA7zgIAaeZu9L1LgDl1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5t48b%2FbtsFGSAmwYT%2Fn0qbA7zgIAaeZu9L1LgDl1%2Fimg.jpg&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;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; 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;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ph3FM/btsFFYafihW/E3MWvhKI6UtBTf3EVkMVik/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ph3FM/btsFFYafihW/E3MWvhKI6UtBTf3EVkMVik/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ph3FM/btsFFYafihW/E3MWvhKI6UtBTf3EVkMVik/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fph3FM%2FbtsFFYafihW%2FE3MWvhKI6UtBTf3EVkMVik%2Fimg.jpg&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;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Thank you very much for all the attendees, and I really appreciate overall help from many staffs!&lt;/span&gt;&lt;/p&gt;</description>
      <category>OpenStack</category>
      <category>OpenStack</category>
      <category>Upstream Training</category>
      <category>Upstream Training Korea</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/10</guid>
      <comments>https://sdndev-en.tistory.com/10#entry10comment</comments>
      <pubDate>Sun, 10 Mar 2024 00:16:31 +0900</pubDate>
    </item>
    <item>
      <title>One Azure Use-case &amp;amp; Comparison with OpenStack Dashboard</title>
      <link>https://sdndev-en.tistory.com/9</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;(Recovered&lt;span&gt;&amp;nbsp;&lt;/span&gt;from my old article -&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://web.archive.org/web/20161101060700/http://sdndev.net/9&quot;&gt;originally posted on 2016.02.16 10:02 KST&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Last January, I shared my presentation to explain the followings:&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Title: Open Hardware &amp;amp; Sources + Azure for an use case: indoor positioning&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Slide:&amp;nbsp;&lt;a href=&quot;http://1drv.ms/1PAOx3n&quot;&gt;http://1drv.ms/1PAOx3n&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;It explains why I chose Azure for one use case: indoor positioning application. I used one Linux&amp;nbsp;virtual machine in Azure for the use case.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&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;700&quot; data-origin-height=&quot;382&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLSID7/btsFF15CLgJ/R2RkNqgGR3OpsDL2ln9wa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLSID7/btsFF15CLgJ/R2RkNqgGR3OpsDL2ln9wa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLSID7/btsFF15CLgJ/R2RkNqgGR3OpsDL2ln9wa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLSID7%2FbtsFF15CLgJ%2FR2RkNqgGR3OpsDL2ln9wa1%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;700&quot; height=&quot;382&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;382&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;div id=&quot;container&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Moreover, from slide 8, you can see how Dashboard is different: between Azure and OpenStack.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; 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;700&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VHQ8V/btsFEZgbXWf/mYS0hC2Y8HCLG1t2C3zkI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VHQ8V/btsFEZgbXWf/mYS0hC2Y8HCLG1t2C3zkI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VHQ8V/btsFEZgbXWf/mYS0hC2Y8HCLG1t2C3zkI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVHQ8V%2FbtsFEZgbXWf%2FmYS0hC2Y8HCLG1t2C3zkI1%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;700&quot; height=&quot;385&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;If you want to see the demonstration video, please see&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;:&amp;nbsp;&lt;a href=&quot;http://1drv.ms/1LqxPQc&quot;&gt;http://1drv.ms/1LqxPQc&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; 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;700&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOyPl1/btsFGDXKZ4s/KOPYn8TWzoGnmi9EYD5pH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOyPl1/btsFGDXKZ4s/KOPYn8TWzoGnmi9EYD5pH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOyPl1/btsFGDXKZ4s/KOPYn8TWzoGnmi9EYD5pH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOyPl1%2FbtsFGDXKZ4s%2FKOPYn8TWzoGnmi9EYD5pH1%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;700&quot; height=&quot;333&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;</description>
      <category>OpenStack</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/9</guid>
      <comments>https://sdndev-en.tistory.com/9#entry9comment</comments>
      <pubDate>Sun, 10 Mar 2024 00:13:04 +0900</pubDate>
    </item>
    <item>
      <title>OpenStack Korea study meetup: Jan 29, 2016, Fri.</title>
      <link>https://sdndev-en.tistory.com/8</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;(Recovered&lt;span&gt;&amp;nbsp;&lt;/span&gt;from my old article -&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://web.archive.org/web/20161101051749/http://sdndev.net/8&quot;&gt;originally posted on 2016.02.02 00:05 KST&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&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;I participated in OpenStack study on last Friday. In the study, there were two presentations&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;which study attendees wanted to listen to, but could not see last year. Moreover, attendees discussed&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;how we could study more effectively in 2016.&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;Facebook notice:&amp;nbsp;&lt;a href=&quot;https://www.facebook.com/events/1711379062437713/&quot;&gt;https://www.facebook.com/events/1711379062437713/&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;I would like to briefly summarize those presentations.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. codetree: Installing OpenStack using his shell scripts in more automated manner&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DDiUB/btsFEgCVMZy/xSukgJM41kfNLkqH3xYlGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DDiUB/btsFEgCVMZy/xSukgJM41kfNLkqH3xYlGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DDiUB/btsFEgCVMZy/xSukgJM41kfNLkqH3xYlGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDDiUB%2FbtsFEgCVMZy%2FxSukgJM41kfNLkqH3xYlGk%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;700&quot; height=&quot;481&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;481&quot;/&gt;&lt;/span&gt;&lt;/figure&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;He already presented the topic on last July. However, last week, he presented more details with updated shell scripts: version 2.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;The followings are main changes compared to version 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;: Extracting and unifying duplicated functionalities into shell script functions =&amp;gt; &quot;common&quot; directory&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;: Tested how&amp;nbsp;nova-docker is installed and how we can create&amp;nbsp;Docker instances&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: Tested OpenStack installation base virtual machine images using&amp;nbsp;PXE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;container&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Shell script sources are available on:&amp;nbsp;&lt;a href=&quot;https://github.com/openstack-kr/study_devops&quot;&gt;https://github.com/openstack-kr/study_devops&lt;/a&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;The scripts are so convenient that we do not iterate much manual stuff.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;One of remarkable things is that the scripts followed official OpenStack installation guide (Kilo).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;For example, &quot;kilo-step-01.sh&quot; means that the script file follows Chapter 1 in OpenStack Kilo installation guide.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;So, by studying the scripts, people can better understand how we install OpenStack with official installation guide.&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;- Slide link:&amp;nbsp;&lt;a href=&quot;https://onedrive.live.com/redir?resid=4A848F40E8EF8761%21572&quot;&gt;https://onedrive.live.com/redir?resid=4A848F40E8EF8761%21572&lt;/a&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;2. Sungwon: HA using DVR&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;513&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/26cMa/btsFFYOQ2vc/VUoBwCY61krIBQEjfBHJUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/26cMa/btsFFYOQ2vc/VUoBwCY61krIBQEjfBHJUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/26cMa/btsFFYOQ2vc/VUoBwCY61krIBQEjfBHJUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F26cMa%2FbtsFFYOQ2vc%2FVUoBwCY61krIBQEjfBHJUk%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;700&quot; height=&quot;514&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;513&quot;/&gt;&lt;/span&gt;&lt;/figure&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;He presented last week because he could not attend on last December.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;DVR (Distributed Virtual Router), which was integrated in&amp;nbsp;OpenStack Juno release,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;enables to distribute lots of network services, which were previously maintained in one Neutron server instance.&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;I was so impressed by his presentation because he customized codetree's shell scripts.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;He forked codetree's GitHub repository, and added DVR installation and integration into his forked repository.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Slide link:&amp;nbsp;&lt;a href=&quot;https://onedrive.live.com/redir?resid=4A848F40E8EF8761%21575&quot;&gt;https://onedrive.live.com/redir?resid=4A848F40E8EF8761%21575&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>OpenStack</category>
      <category>dvr</category>
      <category>ha</category>
      <category>OpenStack</category>
      <category>OpenStack Study</category>
      <category>Shell scripts</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/8</guid>
      <comments>https://sdndev-en.tistory.com/8#entry8comment</comments>
      <pubDate>Sun, 10 Mar 2024 00:11:16 +0900</pubDate>
    </item>
    <item>
      <title>Midostack: OpenStack + MidoNet installation</title>
      <link>https://sdndev-en.tistory.com/7</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;(Recovered from my old article -&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://web.archive.org/web/20161101052012/http://sdndev.net/7&quot;&gt;originally posted on 2014.12.12 08:13 KST&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;I attended &quot;Online MidoNet Network Virtualization Meetup&quot; on last 09 Dec (URL:&amp;nbsp;&lt;a href=&quot;http://www.meetup.com/Online-MidoNet-Meetup/&quot;&gt;http://www.meetup.com/Online-MidoNet-Meetup/&lt;/a&gt;). This article briefly talks about this webinar and my experiences installing Midostack.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Midonet from Midokura is designed to provide the following network functionalities by placing a network virtualization layer between cloud management platform layer (e.g., OpenStack) and Hypervisor layer (e.g., KVM).&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;- Logical Switching: decoupling Layer 2 and Layer 3 in physical networks&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;- Logical Routing: supporting routers in virtual networks&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;- Logical Firewall: kernel integrated, high performance, distributed firewall&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;- Logical Layer 4 Load Balancer: application load balancing in software&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- API: integrating with cloud management platforms using&amp;nbsp;RESTful API&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RpUJ6/btsFE4u1yor/tKf9ZLnJgwH3osXCTKFiX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RpUJ6/btsFE4u1yor/tKf9ZLnJgwH3osXCTKFiX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RpUJ6/btsFE4u1yor/tKf9ZLnJgwH3osXCTKFiX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRpUJ6%2FbtsFE4u1yor%2FtKf9ZLnJgwH3osXCTKFiX1%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;486&quot; height=&quot;449&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Midonet is a open source following Apache 2 license, aiming at open, and user- &amp;amp; vendor-neutrality for production network.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;According to Midokura, Midonet implemented functionalities in a Kernel level and interacts multiple hosts with MidoNet agents, so creating and managing logical topology such as overlay network are easier.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;580&quot; data-origin-height=&quot;557&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FFG6I/btsFDzbrCTv/nSmuK5PZBNK8rQe2TxuZAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FFG6I/btsFDzbrCTv/nSmuK5PZBNK8rQe2TxuZAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FFG6I/btsFDzbrCTv/nSmuK5PZBNK8rQe2TxuZAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFFG6I%2FbtsFDzbrCTv%2FnSmuK5PZBNK8rQe2TxuZAK%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;580&quot; height=&quot;557&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;557&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Midonet chose a distributed model, not a centralized model to address failures (e.g., SPOF, active/stand-by failover), scalability, and network efficiency issues.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;444&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xF02o/btsFEuOdwH3/aVJTnqU286B3txbmIwObFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xF02o/btsFEuOdwH3/aVJTnqU286B3txbmIwObFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xF02o/btsFEuOdwH3/aVJTnqU286B3txbmIwObFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxF02o%2FbtsFEuOdwH3%2FaVJTnqU286B3txbmIwObFk%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;600&quot; height=&quot;445&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;444&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;container&quot; style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMTtBO/btsFEOTJBhU/1VP9NVAKqSYXBMJ8jAbQF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMTtBO/btsFEOTJBhU/1VP9NVAKqSYXBMJ8jAbQF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMTtBO/btsFEOTJBhU/1VP9NVAKqSYXBMJ8jAbQF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMTtBO%2FbtsFEOTJBhU%2F1VP9NVAKqSYXBMJ8jAbQF0%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;600&quot; height=&quot;346&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Midostack is degigned to experience Midonet with OpenStack, a&amp;nbsp;open source cloud management platform. When you install Midostack, DevStack is automatically downloaded and executed, so Midostack is for Midonet open source contributors and the people who want to learn Midonet. Currently, Micostack only supports Ubuntu 14.04 Linux distribution, and when you want to deploy Midonet for production environment, Packstack RDO running in CentOS or RHEL7&amp;nbsp;is recommended&amp;nbsp;&lt;span&gt;(URL:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://openstack.redhat.com/MidoNet_integration&quot;&gt;https://openstack.redhat.com/MidoNet_integration&lt;/a&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;. It operates with OpenStack Icehouse release.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Also, more details on&amp;nbsp;Midonet and &quot;how to contribute to Midonet&quot; were well explained in that Webinar. I think some slides will be open soon.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;I have been so curious how Midostack runs OpenStack with DevStack scripts. So, I installed Midostack and executed several midonet-cli&amp;nbsp;commands. The followings are my basic configuration to install Midostack.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Virtualization platform I used: VirtualBox 4.3&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- OS: Ubuntu 14.04 LTS (64 bit)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Basic configuration: 8GB RAM, dynamically allocated disk with 50GB, NAT configuration&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(Midostack by default assumes that the public network range is 200.200.200.0/24. If you want to test network functionalities, please configure some setting files before installing Midostack, or please configure proper network settings in VirtualBox.)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;It is easy. You can just input the following commands, according to&amp;nbsp;&lt;a href=&quot;http://www.midonet.org/#quickstart&quot;&gt;http://www.midonet.org/#quickstart&lt;/a&gt;, with a few assumptions:&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Your Ubuntu 14.04 should be up-to-date. (If not, please execute 'sudo apt-get update', 'sudo apt-get upgrade', 'sudo apt-get dist-upgrade', and 'sudo reboot'.)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- You need to install 'git'. To install git, please execute 'sudo apt-get install git'.)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;$ git clone&amp;nbsp;&lt;a href=&quot;http://github.com/midonet/midostack&quot;&gt;http://github.com/midonet/midostack&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;$ cd&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;$ ./midonet_stack.sh&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;After executing those commands, the latest source codes of&amp;nbsp;Midonet, DevStack, and OpenStack components are downloaded, installed, and some basic logical routers used by Midonet will be successfully configured.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(About two weeks ago, I needed to install the latest protobuf version, but now it seems that it has been resolved when you install Midostack using the latest scripts from git.)&lt;/p&gt;
&lt;div style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;But, unfortunately, my installation failed when creating a logical router after installing DevStack. I asked to IRC community, and one guy gave me a solution: 'execute ./midonet_unstack.sh and ./midonet_stack.sh', and after then it works very well! (Thanks,&amp;nbsp;tfukushima!)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;600&quot; data-origin-height=&quot;149&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BMbLT/btsFD6ND7TQ/kaKQHvcFGf3Ut6WOzf0Je1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BMbLT/btsFD6ND7TQ/kaKQHvcFGf3Ut6WOzf0Je1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BMbLT/btsFD6ND7TQ/kaKQHvcFGf3Ut6WOzf0Je1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBMbLT%2FbtsFD6ND7TQ%2FkaKQHvcFGf3Ut6WOzf0Je1%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;600&quot; height=&quot;150&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;149&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Successfully installed similar to DevStack! with some additional stuff related to Midonet.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;600&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biw49t/btsFE0TIcK0/tOJlMpKoPTvhD1dswdrrRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biw49t/btsFE0TIcK0/tOJlMpKoPTvhD1dswdrrRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biw49t/btsFE0TIcK0/tOJlMpKoPTvhD1dswdrrRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbiw49t%2FbtsFE0TIcK0%2FtOJlMpKoPTvhD1dswdrrRK%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;600&quot; height=&quot;325&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Horizon: by default, 200.200.200.0/24 public network has been created. I created one VM instance.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;600&quot; data-origin-height=&quot;463&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vrawn/btsFDDkGnkX/JZruw6BHPf2JCgkO2LIKK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vrawn/btsFDDkGnkX/JZruw6BHPf2JCgkO2LIKK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vrawn/btsFDDkGnkX/JZruw6BHPf2JCgkO2LIKK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVrawn%2FbtsFDDkGnkX%2FJZruw6BHPf2JCgkO2LIKK0%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;600&quot; height=&quot;463&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;The following figure illustrates my execution of midonet-cli console. Using midonet-cli, I can check tenant lists in OpenStack. Also, I can check lists of logical routers, their ports, hosts, and chains for pre-routing and post-routing for routers.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;600&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/674NP/btsFHrvKvDb/0rsqjcii7cOwxgMEYE5Bm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/674NP/btsFHrvKvDb/0rsqjcii7cOwxgMEYE5Bm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/674NP/btsFHrvKvDb/0rsqjcii7cOwxgMEYE5Bm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F674NP%2FbtsFHrvKvDb%2F0rsqjcii7cOwxgMEYE5Bm1%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;600&quot; height=&quot;461&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;It seems that I can experience more if I configure Midostack with multi-nodes. I&amp;nbsp;&lt;span&gt;simply&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;discussed&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;it to IRC, and a guy highly recommended me to configure multi-node environment with Packstack RDO. Please just refer to this information (This information&amp;nbsp;might be very helpful for some guys who want to configure midonet with multi-node environment I think.)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[References]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.midonet.org/#quickstart&quot;&gt;http://www.midonet.org/#quickstart&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&amp;nbsp;Slides from&amp;nbsp;&quot;&lt;/span&gt;&lt;span&gt;Online MidoNet Network Virtualization Meetup&quot; (&lt;/span&gt;&lt;a href=&quot;http://www.meetup.com/Online-MidoNet-Meetup/&quot;&gt;http://www.meetup.com/Online-MidoNet-Meetup/&lt;/a&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://komeiy.hatenablog.com/entry/2014/11/13/012401&quot;&gt;http://komeiy.hatenablog.com/entry/2014/11/13/012401&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;- Midonet IRC!&lt;/p&gt;</description>
      <category>OpenStack</category>
      <category>dvr</category>
      <category>ha</category>
      <category>OpenStack</category>
      <category>OpenStack Study</category>
      <category>Shell scripts</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/7</guid>
      <comments>https://sdndev-en.tistory.com/7#entry7comment</comments>
      <pubDate>Sun, 10 Mar 2024 00:09:08 +0900</pubDate>
    </item>
    <item>
      <title>How I translated Japanese Ryu-book to Korean</title>
      <link>https://sdndev-en.tistory.com/6</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;(Recovered from my old article -&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://web.archive.org/web/20161101060403/http://sdndev.net/6&quot;&gt;originally posted on 2014.11.15 21:51 KST&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&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;This article explains how I successfully translated Japanese Ryu-book to Korean even though I am not well familiar with Japanese. I used VisualTran Mate (&lt;a href=&quot;http://en.visualtran.com/?type=en&quot;&gt;http://en.visualtran.com/?type=en&lt;/a&gt;) software as a translation helper tool.&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;Ryu is a SDN controller which is written in Python. The Ryu-book (&lt;a href=&quot;https://ryu-sdn.org/resources.html&quot;&gt;https://osrg.github.io/ryu/resources.html&lt;/a&gt;) explains how to develop SDN applications using Ryu controller with a very illustrative manner. And, on April, I found that all the texts and book publishing tools are uploaded to Github repository (&lt;a href=&quot;https://github.com/osrg/ryu-book&quot;&gt;https://github.com/osrg/ryu-book&lt;/a&gt;). I also found that all the translation procedures are fulfilled by git commits. This is why I finally decided to translate that book to Korean. I really wanted help more Korean people to see this illustrative book.&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;575&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckZcCw/btsFGmoqajC/h7175CBI8hziGtZ2HBeqwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckZcCw/btsFGmoqajC/h7175CBI8hziGtZ2HBeqwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckZcCw/btsFGmoqajC/h7175CBI8hziGtZ2HBeqwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckZcCw%2FbtsFGmoqajC%2Fh7175CBI8hziGtZ2HBeqwK%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;575&quot; height=&quot;352&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;352&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;At the first time, I have no privileges on editing osrg/ryu-book git repository. So, I forked that repository. After commiting my translation results to my forked repository, then I can make a pull request to this original repository. The bottom figure shows my forked repository for ryu-book.&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;575&quot; data-origin-height=&quot;354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E3oWL/btsFHs9gZ3J/b0GpWsqQKPBBFz0TZrA500/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E3oWL/btsFHs9gZ3J/b0GpWsqQKPBBFz0TZrA500/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E3oWL/btsFHs9gZ3J/b0GpWsqQKPBBFz0TZrA500/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE3oWL%2FbtsFHs9gZ3J%2Fb0GpWsqQKPBBFz0TZrA500%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;575&quot; height=&quot;355&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;354&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;To do translations on my computer using this data, I needed to retrieve that source to my computer. I executed 'git' command and cloned that forked repository to my computer.&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;575&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NHALC/btsFHuTyTHO/AqOkOqVyrbes6PrtKkhPEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NHALC/btsFHuTyTHO/AqOkOqVyrbes6PrtKkhPEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NHALC/btsFHuTyTHO/AqOkOqVyrbes6PrtKkhPEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNHALC%2FbtsFHuTyTHO%2FAqOkOqVyrbes6PrtKkhPEK%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;575&quot; height=&quot;320&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;320&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;div id=&quot;container&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;The original Japanese texts are written as *.rst files. Those files are fully text files with UTF-8 format.&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;575&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R9S2F/btsFHpLsR8j/QbEiwINNGwHbySJa23UZHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R9S2F/btsFHpLsR8j/QbEiwINNGwHbySJa23UZHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R9S2F/btsFHpLsR8j/QbEiwINNGwHbySJa23UZHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR9S2F%2FbtsFHpLsR8j%2FQbEiwINNGwHbySJa23UZHK%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;575&quot; height=&quot;381&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VisualTran Mate program supports MS word (*.doc, *.docx) files, but text files can be open very well in MS word. So, I opened rst files in MS word. The bottom figure shows 'rest_api.rst' file&lt;span style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;opened from my MS word program.&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;575&quot; data-origin-height=&quot;325&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eCVhXA/btsFF9iiCza/NBCIJmIQm6BOc3ac20gP8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eCVhXA/btsFF9iiCza/NBCIJmIQm6BOc3ac20gP8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eCVhXA/btsFF9iiCza/NBCIJmIQm6BOc3ac20gP8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeCVhXA%2FbtsFF9iiCza%2FNBCIJmIQm6BOc3ac20gP8k%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;575&quot; height=&quot;326&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;325&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;You can find that VisualTran Mate ribbon menu&amp;nbsp;is loaded in&amp;nbsp;MS word. When I click a VisualTran Mate &amp;nbsp;icon, that program is executed and automatically detects a source language (Japanese) and a target language (Korean, because I am using Korean WIndows).&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;575&quot; data-origin-height=&quot;310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LHHzk/btsFHnNEFz4/KFmEaXR1jEFCKZvG8e0oz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LHHzk/btsFHnNEFz4/KFmEaXR1jEFCKZvG8e0oz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LHHzk/btsFHnNEFz4/KFmEaXR1jEFCKZvG8e0oz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLHHzk%2FbtsFHnNEFz4%2FKFmEaXR1jEFCKZvG8e0oz1%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;575&quot; height=&quot;311&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;310&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;The bottom figure shows machine-translating using Microsoft Bing. VisualTran Mate supports machine-translation using Microsoft Bing.&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;575&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ds6ID2/btsFF15CB0p/Z5jDo6SlovNLrM1Yybwv6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ds6ID2/btsFF15CB0p/Z5jDo6SlovNLrM1Yybwv6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ds6ID2/btsFF15CB0p/Z5jDo6SlovNLrM1Yybwv6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fds6ID2%2FbtsFF15CB0p%2FZ5jDo6SlovNLrM1Yybwv6K%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;575&quot; height=&quot;312&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;311&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;However, the translation quality of&amp;nbsp;machine-translation results is not good enough to liberally read in Korean,&amp;nbsp;although it is said that the accuracy of&amp;nbsp;Japanese-&amp;gt;Korean translation is about 95%. Sometimes there are missing spaces, and some words are not proper on contexts. For me, I have three advantages for better translation.&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;1) Although I am not good at Japanese, I can read Katakana&amp;nbsp;characters. Japanese Katakana characters are used to write foreign words such as 'flow table'&amp;nbsp;and 'link aggregation'.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;2) There is an English edition of ryu-book (&lt;/span&gt;&lt;a href=&quot;https://osrg.github.io/ryu-book/en/html/&quot;&gt;https://osrg.github.io/ryu-book/en/html/&lt;/a&gt;)&lt;span&gt;. When I do not understand some sentences, I find corresponding English sentences, understand what those sentences mean, and reflect my understanding to Korean sentences.&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;&amp;nbsp;3) VisualTran Mate is a good tool which shows original sentences, machine-translated sentences, and my translating sentences simultaneously. This is very powerful because without this help, I might usually press several&amp;nbsp;ALT+TABs, find corresponding sentences displayed in different programs,&amp;nbsp;and compare those sentences.&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;575&quot; data-origin-height=&quot;310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vpk1p/btsFFRvHF1N/8LKHd9thy7nQToXyhe0zo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vpk1p/btsFFRvHF1N/8LKHd9thy7nQToXyhe0zo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vpk1p/btsFFRvHF1N/8LKHd9thy7nQToXyhe0zo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvpk1p%2FbtsFFRvHF1N%2F8LKHd9thy7nQToXyhe0zo0%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;575&quot; height=&quot;311&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;310&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;Finally, I completed my translation, pulled my translation results to the original ryu-book repository, and now my translation results are publicly&amp;nbsp;available.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #828282;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #72ae13;&quot; href=&quot;https://ianychoi.github.io/ryu-book/ko/Ryubook.pdf&quot;&gt;pdf&lt;/a&gt;&lt;span style=&quot;color: #828282;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #72ae13;&quot; href=&quot;https://ianychoi.github.io/ryu-book/ko/Ryubook.mobi&quot;&gt;mobi&lt;/a&gt;&lt;span style=&quot;color: #828282;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #72ae13;&quot; href=&quot;https://ianychoi.github.io/ryu-book/ko/Ryubook.epub&quot;&gt;epub&lt;/a&gt;&lt;span style=&quot;color: #828282;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #72ae13;&quot; href=&quot;https://ianychoi.github.io/ryu-book/ko/html/&quot;&gt;html&lt;/a&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;First, I would like to very appreciate&amp;nbsp;Ryu-book team. The people in Ryu-book&amp;nbsp;team first made Japanese ryu-book, and then English ryu-book. Without those books, I could not translate well to Korean. Moreover, their GitHub repository is very powerful for collaborating translations with open-source mind. And also, thank you so much for VisualTran&amp;nbsp;Mate, which minimized my lots of manual stuff related to that translation.&lt;/p&gt;</description>
      <category>OpenFlow&amp;amp;SDN</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/6</guid>
      <comments>https://sdndev-en.tistory.com/6#entry6comment</comments>
      <pubDate>Sun, 10 Mar 2024 00:00:58 +0900</pubDate>
    </item>
    <item>
      <title>Wireshark 1.12.0 well supports OpenFlow 1.0 &amp;amp; 1.3!</title>
      <link>https://sdndev-en.tistory.com/5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;(Recovered from my old article -&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://web.archive.org/web/20170423111605/http://sdndev.net/5&quot;&gt;originally posted on 2014.09.13 16:49 KST&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&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;Previously, many developers and engineers needed to add OpenFlow dissector to WireShark to analyze OpenFlow protocol packets in WireShark. It was so difficult stuff, because we needed to match the version of OpenFlow dissector and the version of Wireshark.&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;According to Wireshark wiki page (&lt;span&gt;&lt;a href=&quot;http://wiki.wireshark.org/OpenFlow&quot;&gt;http://wiki.wireshark.org/OpenFlow&lt;/a&gt;)&lt;/span&gt;&lt;span&gt;, OpenFlow dissector will be available on Wireshark 1.12.0, and this version was released as 'Stable Release' on 31 July, 2014.&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;I have downloaded this stable release version and checked that this version well supports both OpenFlow 1.0 &amp;amp; 1.3!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;Just download from Wireshark homepage (&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.wireshark.org/download.html&quot;&gt;https://www.wireshark.org/download.html&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;text-align: center;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;text-align: center;&quot;&gt;and install the latest stable release of Wireshark.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;After installation, you can see that your Wireshark supports OpenFlow 1.0, 1.3 and 1.4.&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;I have downloaded &amp;amp; installed Wireshark 1.12.0 on my Windows computer and it worked very well!&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;575&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJe57a/btsFDYo0h8R/SDi9JC6XdUXy4Gow2NgFmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJe57a/btsFDYo0h8R/SDi9JC6XdUXy4Gow2NgFmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJe57a/btsFDYo0h8R/SDi9JC6XdUXy4Gow2NgFmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJe57a%2FbtsFDYo0h8R%2FSDi9JC6XdUXy4Gow2NgFmk%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;575&quot; height=&quot;69&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;68&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;[Menu: Supported Protocols]&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; 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;575&quot; data-origin-height=&quot;27&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfi9qy/btsFFLhGiH3/VFdKdxCdnzyotSwIqCvB5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfi9qy/btsFFLhGiH3/VFdKdxCdnzyotSwIqCvB5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfi9qy/btsFFLhGiH3/VFdKdxCdnzyotSwIqCvB5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbfi9qy%2FbtsFFLhGiH3%2FVFdKdxCdnzyotSwIqCvB5k%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;575&quot; height=&quot;27&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;27&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;[Parts&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;supported protocols]&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Here are some screenshots which show that OpenFlow 1.0 &amp;amp; 1.3 filters work very well:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; 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;575&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5kuVY/btsFGmhCMC4/8K46kEP2gJEkBTWooPgjI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5kuVY/btsFGmhCMC4/8K46kEP2gJEkBTWooPgjI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5kuVY/btsFGmhCMC4/8K46kEP2gJEkBTWooPgjI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5kuVY%2FbtsFGmhCMC4%2F8K46kEP2gJEkBTWooPgjI0%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;575&quot; height=&quot;301&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;[&lt;span&gt;&lt;span&gt;OpenFlow&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1.0: openflow_v1]&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; 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;575&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sd6Va/btsFHp5Lf0o/xeZChYhEmOVu9KOxd0Aru1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sd6Va/btsFHp5Lf0o/xeZChYhEmOVu9KOxd0Aru1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sd6Va/btsFHp5Lf0o/xeZChYhEmOVu9KOxd0Aru1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsd6Va%2FbtsFHp5Lf0o%2FxeZChYhEmOVu9KOxd0Aru1%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;575&quot; height=&quot;373&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;373&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;text-align: center;&quot;&gt;&lt;span&gt;&lt;span&gt;OpenFlow&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: center;&quot;&gt;&amp;nbsp;1.3: openflow_v4]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>OpenFlow&amp;amp;SDN</category>
      <category>openflow</category>
      <category>Wireshark</category>
      <author>IanY.</author>
      <guid isPermaLink="true">https://sdndev-en.tistory.com/5</guid>
      <comments>https://sdndev-en.tistory.com/5#entry5comment</comments>
      <pubDate>Sat, 9 Mar 2024 23:52:12 +0900</pubDate>
    </item>
  </channel>
</rss>