<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>seob</title>
    <link>https://mslee89.tistory.com/</link>
    <description>일하기 좋아하는 시스템 및 인프라 엔지니어 입니다.
문의는 leeminseob@gmail.com으로 메일 주세요.</description>
    <language>ko</language>
    <pubDate>Sat, 1 Aug 2026 09:02:39 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Seob</managingEditor>
    <item>
      <title>Hadoop 클러스터에서 발생한 네트워크 패킷 손실 이슈 분석 및 해결</title>
      <link>https://mslee89.tistory.com/200</link>
      <description>&lt;h3 data-end=&quot;218&quot; data-start=&quot;206&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. 장애 현상&lt;/span&gt;&lt;/h3&gt;
&lt;p data-end=&quot;358&quot; data-start=&quot;220&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Spark 작업 중 특정 노드에서 자주 FetchFailedException 오류가 발생하면서 작업이 지연되고 재시도 실패가 간헐적으로 발생하고 있었습니다. Hadoop 클러스터에서는 CPU / Memory / DISK / Network 등 충분한 리소스가 있었으며 별다른 이상 현상을 탐지 할 수 없었습니다. (또한, Hadoop 은 Bonding 으로 구성되어 있음)&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;358&quot; data-start=&quot;220&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;366&quot; data-start=&quot;360&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;로그 예시&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1744697159040&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;FetchFailedException: Connection from &amp;lt;호스트네임&amp;gt; closed&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-end=&quot;449&quot; data-start=&quot;437&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. 초기 진단&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-end=&quot;478&quot; data-start=&quot;451&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2.1 netstat -i 확인 결과&lt;/span&gt;&lt;/h4&gt;
&lt;p data-end=&quot;543&quot; data-start=&quot;480&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;문제가 발생한 노드와 정상 노드 간의 인터페이스 수신 상태를 비교해보니 다음과 같은 차이를 확인할 수 있었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-state=&quot;closed&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;758&quot; data-start=&quot;545&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;노드&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RX-ERR&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RX-DRP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RX-OVR&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;비고&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;663&quot; data-start=&quot;627&quot;&gt;
&lt;td data-end=&quot;639&quot; data-start=&quot;627&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;slave0001&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;643&quot; data-start=&quot;639&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;650&quot; data-start=&quot;643&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1052&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;654&quot; data-start=&quot;650&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;663&quot; data-start=&quot;654&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;문제 없음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;712&quot; data-start=&quot;664&quot;&gt;
&lt;td data-end=&quot;676&quot; data-start=&quot;664&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;slave0002&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;682&quot; data-start=&quot;676&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;156&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;686&quot; data-start=&quot;682&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;701&quot; data-start=&quot;686&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;10523846&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;712&quot; data-start=&quot;701&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;심각한 오버런&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;758&quot; data-start=&quot;713&quot;&gt;
&lt;td data-end=&quot;725&quot; data-start=&quot;713&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;slave0003&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;732&quot; data-start=&quot;725&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;5201&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;740&quot; data-start=&quot;732&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;69016&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;744&quot; data-start=&quot;740&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;758&quot; data-start=&quot;744&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;에러 및 드롭 발생&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-end=&quot;814&quot; data-start=&quot;760&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;rarr; 오버런(RX-OVR)은 커널이 네트워크 패킷을 제때 처리하지 못해 버퍼가 넘쳤다는 신호입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-end=&quot;833&quot; data-start=&quot;821&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. 원인 분석&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-end=&quot;854&quot; data-start=&quot;835&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3.1 커널 파라미터 현황&lt;/span&gt;&lt;/h4&gt;
&lt;p data-end=&quot;892&quot; data-start=&quot;856&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;해당 시스템의 커널 파라미터는 대부분 &lt;b&gt;기본값&lt;/b&gt; 상태였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1744697287616&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 기본값
net.core.netdev_max_backlog = 1000
net.core.rmem_max = 212992
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1210&quot; data-start=&quot;1115&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 값들은 &lt;b&gt;일반적인 웹 서비스&lt;/b&gt; 수준에서는 충분할 수 있지만 &lt;b&gt;Hadoop + Spark의 고트래픽 Shuffle 환경&lt;/b&gt;에서는 병목을 일으킬 가능성이 높습니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-end=&quot;1289&quot; data-start=&quot;1212&quot; data-ke-style=&quot;style2&quot;&gt;
&lt;p data-end=&quot;1289&quot; data-start=&quot;1214&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;예) 1GB 데이터를 MTU 1500 기준으로 쪼개면 약 666,667개의 패킷 발생 &amp;rarr; 수신 대기열과 버퍼가 작다면 당연히 손실 발생&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-end=&quot;1308&quot; data-start=&quot;1296&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4. 해결 조치&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-end=&quot;1329&quot; data-start=&quot;1310&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4.1 커널 파라미터 튜닝&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1782&quot; data-start=&quot;1331&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;항목&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기존 값&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;변경 값&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;변경 이유&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1477&quot; data-start=&quot;1397&quot;&gt;
&lt;td data-end=&quot;1429&quot; data-start=&quot;1397&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;net.core.netdev_max_backlog&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1436&quot; data-start=&quot;1429&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1000&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1444&quot; data-start=&quot;1436&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;20000&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1477&quot; data-start=&quot;1444&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;NIC 수신 대기열 증가로 빠른 수신 패킷 처리 가능&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1551&quot; data-start=&quot;1478&quot;&gt;
&lt;td data-end=&quot;1500&quot; data-start=&quot;1478&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;net.core.rmem_max&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1509&quot; data-start=&quot;1500&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;212992&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1525&quot; data-start=&quot;1509&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2097152 (2MB)&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1551&quot; data-start=&quot;1525&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;대용량 데이터 수신 버퍼 부족 문제 해소&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1617&quot; data-start=&quot;1552&quot;&gt;
&lt;td data-end=&quot;1575&quot; data-start=&quot;1552&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;net.core.somaxconn&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1582&quot; data-start=&quot;1575&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1024&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1590&quot; data-start=&quot;1582&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;10240&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1617&quot; data-start=&quot;1590&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;수신 연결 큐 증가로 동시 접속 처리 향상&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1697&quot; data-start=&quot;1618&quot;&gt;
&lt;td data-end=&quot;1651&quot; data-start=&quot;1618&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;net.ipv4.tcp_max_syn_backlog&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1658&quot; data-start=&quot;1651&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2048&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1666&quot; data-start=&quot;1658&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;10240&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1697&quot; data-start=&quot;1666&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;SYN 요청 대기 큐 증가로 접속 요청 누락 방지&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1782&quot; data-start=&quot;1698&quot;&gt;
&lt;td data-end=&quot;1723&quot; data-start=&quot;1698&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;tcp_rmem, tcp_wmem&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1729&quot; data-start=&quot;1723&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기본값&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1750&quot; data-start=&quot;1729&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4096 87380 2097152&lt;/span&gt;&lt;/td&gt;
&lt;td data-end=&quot;1782&quot; data-start=&quot;1750&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;송수신 버퍼 모두 확장하여 Throughput 확보&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;blockquote data-end=&quot;1850&quot; data-start=&quot;1784&quot; data-ke-style=&quot;style2&quot;&gt;
&lt;p data-end=&quot;1850&quot; data-start=&quot;1786&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기준은 Spark의 Shuffle 작업 시 초당 수십만~수백만 패킷을 처리하는 실제 트래픽 양에 맞춰 설정&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 data-end=&quot;1879&quot; data-start=&quot;1852&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4.2 NIC Ring Buffer 확장&lt;/span&gt;&lt;/h4&gt;
&lt;p data-end=&quot;1928&quot; data-start=&quot;1881&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;ethtool -g로 확인한 Ring Buffer 기본 설정은 다음과 같았습니다:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 76px;&quot; border=&quot;1&quot; data-end=&quot;2088&quot; data-start=&quot;1930&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;항목&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기본값&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;변경값&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;설명&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-end=&quot;2043&quot; data-start=&quot;1988&quot;&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;1998&quot; data-start=&quot;1988&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RX Ring&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;2004&quot; data-start=&quot;1998&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;256&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;2015&quot; data-start=&quot;2004&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;4096&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;2043&quot; data-start=&quot;2015&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;수신 패킷을 처리할 수 있는 버퍼 공간 증가&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-end=&quot;2088&quot; data-start=&quot;2044&quot;&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;2054&quot; data-start=&quot;2044&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;TX Ring&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;2060&quot; data-start=&quot;2054&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;512&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;2071&quot; data-start=&quot;2060&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;512 (유지)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;2088&quot; data-start=&quot;2071&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;송신 처리에는 병목 없음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-end=&quot;2145&quot; data-start=&quot;2090&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;rarr; RX Ring Buffer를 최대값으로 조정하면서 RX-OVR 값이 눈에 띄게 감소했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-end=&quot;2145&quot; data-start=&quot;2090&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Ring Buffer 값은 인터페이스 모델마다 기본값과 최대 값이 다릅니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-end=&quot;2167&quot; data-start=&quot;2152&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;5. 조치 이후 변화&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1476&quot; data-origin-height=&quot;591&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b77qRP/btsNmFmmcUx/tJKNFHldediOEF9Ht9OSYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b77qRP/btsNmFmmcUx/tJKNFHldediOEF9Ht9OSYk/img.png&quot; data-alt=&quot;빨간 박스는 Ring Buffer 값을 최대치로 변경했고 이후 다시 원상 복구했을 때 값 증가 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b77qRP/btsNmFmmcUx/tJKNFHldediOEF9Ht9OSYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb77qRP%2FbtsNmFmmcUx%2FtJKNFHldediOEF9Ht9OSYk%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;1476&quot; height=&quot;591&quot; data-origin-width=&quot;1476&quot; data-origin-height=&quot;591&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;빨간 박스는 Ring Buffer 값을 최대치로 변경했고 이후 다시 원상 복구했을 때 값 증가 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2278&quot; data-start=&quot;2169&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2216&quot; data-start=&quot;2169&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;커널 파라미터 조정 이후, 패킷 오류(RX-ERR) 및 오버런(RX-OVR) 감소&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2243&quot; data-start=&quot;2217&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Spark 작업의 재시도 빈도 0건으로 감소 (약 1 개월 모니터링)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-end=&quot;2301&quot; data-start=&quot;2285&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;6. 결론 및 인사이트&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2485&quot; data-start=&quot;2303&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2355&quot; data-start=&quot;2303&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;고트래픽 분산처리 시스템&lt;/b&gt;에서는 커널 기본 설정만으로는 안정적인 패킷 처리가 어렵습니다. (특히, 본딩된 경우에는 튜닝이 필수적)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2355&quot; data-start=&quot;2303&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;단순 커널 튜닝으로 해결되지 않을 경우 &lt;b&gt;NIC Ring Buffer 조정&lt;/b&gt;이 결정적 역할을 할 수 있습니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2355&quot; data-start=&quot;2303&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;NIC는 1계층에서 수신된 물리 신호를 처리한 후,DMA를 통해 데이터를 Ring Buffer에 적재합니다. 이때 Ring Buffer의 크기가 충분하지 않으면 패킷이 적재되지 못하고 DRP(Drop) 또는 OVR(Overrun)과 같은 문제가 발생할 수 있습니다. 본 이슈는 Ring Buffer의 크기가 작아 이러한 현상이 유발된 것으로 판단됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2355&quot; data-start=&quot;2303&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;또한, 네트워크 인터페이스 모델에 따라 다릅니다. 운영 중인 Hadoop 클러스터는 입고일이 다른 서버 목록이 있는데 이 서버들의 네트워크 인터페이스 모델도 다릅니다. Ring Buffer 기본값이 200 인 모델에서는 DRP 이 증가했으며 Ring Buffer 256 모델에서는 OVR 값이 증가했습니다. DRP 이 된 인터페이스 모델을 확인했을 때 Ring Buffer 을 초과하면 DRP 된다는 이슈를 여기저기서 확인 할 수 있었습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;운영 중이라도 지속적인 모니터링과 RX-ERR, RX-OVR 값 분석을 통해 장애 전조를 감지해야 합니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Prometheus Node Exporter 의 --collector.netstat 을 통해 ERR, DRP, OVR 값을 모니터링 할 수 있었습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;node_network_[receive/transmit]_drop_total, node_network_[receive/transmit]_errs_total, node_network_[receive/transmit]_fifo_total&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>업무 기록/Trouble Shooting</category>
      <category>Hadoop</category>
      <category>hadoop 튜닝</category>
      <category>netstat</category>
      <category>node exporter</category>
      <category>Ring Buffer</category>
      <category>rx-drp</category>
      <category>rx-err</category>
      <category>rx-ovr</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/200</guid>
      <comments>https://mslee89.tistory.com/200#entry200comment</comments>
      <pubDate>Tue, 15 Apr 2025 21:25:21 +0900</pubDate>
    </item>
    <item>
      <title>Kubernetes exec 헬스체크 &amp;ndash; 활용 예시</title>
      <link>https://mslee89.tistory.com/199</link>
      <description>&lt;p data-end=&quot;269&quot; data-start=&quot;138&quot; data-ke-size=&quot;size16&quot;&gt;Kubernetes에서 컨테이너 상태를 체크할 때 livenessProbe, readinessProbe, startupProbe 세 가지 방식이 있습니다.&lt;br /&gt;이 중에서 가장 유연하게 쓸 수 있는 게 바로 exec 방식이 있는데&amp;nbsp;직접 컨테이너 안에서 명령어를 실행해서 그 결과를 기반으로 상태를 판단하는 방식인데 잘 쓰면 아주 강력하고 상황에 맞게 커스터마이징도 쉽습니다.&lt;/p&gt;
&lt;p data-end=&quot;269&quot; data-start=&quot;138&quot; data-ke-size=&quot;size16&quot;&gt;본문에서는 exec 을 통한 예제에 대해 작성했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-end=&quot;351&quot; data-start=&quot;271&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 헬스체크란?&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;346&quot; data-start=&quot;305&quot; data-ke-size=&quot;size16&quot;&gt;Kubernetes는 총 3가지 종류의 헬스체크(Probe)를 제공합니다&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 72px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 20.3101%; height: 21px; text-align: center;&quot;&gt;종류&lt;/td&gt;
&lt;td style=&quot;width: 46.3565%; height: 21px; text-align: center;&quot;&gt;목적&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px; text-align: center;&quot;&gt;실패 시 행동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.3101%; height: 17px; text-align: center;&quot;&gt;StartupProbe&lt;/td&gt;
&lt;td style=&quot;width: 46.3565%; height: 17px;&quot;&gt;컨테이너가 처음 &lt;b&gt;정상적으로 시작되었는지&lt;/b&gt; 확인&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;실패 시 재시작 (단, Readiness/Liveness보다 우선함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.3101%; height: 17px; text-align: center;&quot;&gt;ReadinessProbe&lt;/td&gt;
&lt;td style=&quot;width: 46.3565%; height: 17px;&quot;&gt;&lt;b&gt;트래픽을 받을 준비가 되었는지&lt;/b&gt; 확인&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;실패 시 Service에서 제외 (트래픽 유입 차단)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.3101%; height: 17px; text-align: center;&quot;&gt;LivenessProbe&lt;/td&gt;
&lt;td style=&quot;width: 46.3565%; height: 17px;&quot;&gt;컨테이너가 &lt;b&gt;정상적으로 동작 중인지&lt;/b&gt; 확인&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;실패 시 Kubelet이 컨테이너 재시작&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. exec 방식이란?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;exec&lt;/span&gt; 는 말그대로 컨테이너 내부에서 명령어를 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어가&lt;span style=&quot;background-color: #dddddd;&quot;&gt; exec code 0&lt;/span&gt; 으로 끝나면 &lt;b&gt;정상&lt;/b&gt;, 그 외에는 &lt;b&gt;비정상&lt;/b&gt;으로 판단합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1744254802661&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;StartupProbe:
  exec:
    command:
      - cat
      - /tmp/mslee
  initialDelaySeconds: 5
  periodSeconds: 10&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;이런 식으로 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;/tmp/mslee&lt;/span&gt; 파일이 존재하면 정상으로 보는 단순한 예제 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 활용 예시&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;초기 상태&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1744254886113&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ cat mslee.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mslee-nginx 
  labels:
    app: mslee 
spec:
  containers:
  - name: mslee-nginx 
    image: nginx
    volumeMounts:
    - name: tmp-volume
      mountPath: /tmp
    ports:
    - containerPort: 80
    startupProbe:
      exec:
        command:
        - cat
        - /tmp/mslee
      initialDelaySeconds: 10
      periodSeconds: 10
      failureThreshold: 3
  volumes:
  - name: tmp-volume
    hostPath:
      path: /tmp
      type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
  name: mslee-service
  labels:
    app: mslee
spec:
  ports:
    - name: http
      port: 80
      targetPort: 80
  selector:
    app: mslee

$ kubectl apply -f mslee.yaml

$ kubectl get pod -l app=mslee
NAME           READY   STATUS    RESTARTS
mslee-nginx    1/2     Running   1

$ kubectl exec -it bashcommand -- curl mslee-service
no healthy upstream&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;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;mslee-nginx&lt;/span&gt; 은 nginx 이미지 기반으로 구동된 컨테이너이며 StartupProbe 에서 /tmp/mslee 파일에 대해 exec 방식으로 헬스체크를 하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;/tmp/mslee&lt;/span&gt; 에 파일이 존재하지 않기 때문에 정상적으로 구동하지 않고 있으며 bashcommand 라는 다른 POD을 통해 호출 했을 때 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;no healthy upstream&lt;/span&gt; 이라고 반환됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;/tmp/mslee&lt;/span&gt;&lt;b&gt; 파일 생성&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1744255151753&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ touch /tmp/mslee&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 컨테이너 상태 확인&lt;/p&gt;
&lt;pre id=&quot;code_1744255171145&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ kubectl get pod -l app=mslee
mslee-nginx    2/2     Running   7

$ kubectl exec -it bashcommand -- curl mslee-service
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Welcome to nginx!&amp;lt;/title&amp;gt; ...&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;정상적으로 응답을 반환하는 것을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. exec 방식, 언제 활용하면 좋을까요?&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;앱 내부에 HTTP Health Check 엔드포인트가 없을 때&lt;/li&gt;
&lt;li&gt;특정 파일이 생기거나 어떤 스크립트가 성공했는지를 기준으로 판단 할 때&lt;/li&gt;
&lt;li&gt;상태를 외부에서 볼 수 없는 경우 (예: DB 마이그레이션 완료 여부)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 추천 활용 예시&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;상황&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;명령 예시&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;데이터 마이그레이션 완료 여부 확인&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;[ -f /tmp/migrate.done ]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;특정 디렉토리 마운트 확인&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;mountpoiunt -q /mnt/data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;DB 테이블 존재 여부 확인&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;psql -c '\dt mslee_table'&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;마무리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;exec&lt;/span&gt; 방식은 정말 강력하지만 너무 복잡한 로직을 넣으면 나중에 디버깅이 힘들 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령은 되도록 단순하게 하되 실패 상황도 명확하게 만드는 것도 중요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;StartupProbe&lt;/span&gt; 는 초기화가 확실히 끝나야만 서비스로 트래픽을 연결시키고 싶을 때 유용하니 잘 활용하면 장애 예방에도 큰 도움이 됩니다.&lt;/p&gt;</description>
      <category>업무 기록/Cloud Native</category>
      <category>exec</category>
      <category>healthcheck</category>
      <category>k8s</category>
      <category>kubernetes</category>
      <category>LivenessProbe</category>
      <category>Probe</category>
      <category>readinessprobe</category>
      <category>startupProbe</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/199</guid>
      <comments>https://mslee89.tistory.com/199#entry199comment</comments>
      <pubDate>Thu, 10 Apr 2025 21:25:48 +0900</pubDate>
    </item>
    <item>
      <title>Elasticsearch 8.12 Fielddata 해제 이슈 및 해결 방법</title>
      <link>https://mslee89.tistory.com/198</link>
      <description>&lt;h3 data-end=&quot;164&quot; data-start=&quot;141&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Fielddata란?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-end=&quot;164&quot; data-start=&quot;141&quot; data-ke-size=&quot;size16&quot;&gt;Elasticsearch에서 text 타입의 필드는 기본적으로 정렬(Sort)이나 집계(Aggregation)에 사용할 수 없습니다.&lt;br /&gt;이를 가능하게 하려면 &lt;b&gt;Fielddata&lt;/b&gt; 기능을 활성화해야 합니다.&lt;/p&gt;
&lt;h4 data-end=&quot;311&quot; data-start=&quot;288&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Fielddata의 역할&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;386&quot; data-start=&quot;312&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;357&quot; data-start=&quot;312&quot;&gt;text 필드에서 정렬 및 집계를 수행할 수 있도록 데이터 구조를 변환&lt;/li&gt;
&lt;li data-end=&quot;386&quot; data-start=&quot;358&quot;&gt;대용량 데이터에서도 빠른 검색 및 분석 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end=&quot;411&quot; data-start=&quot;388&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Fielddata의 단점&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;524&quot; data-start=&quot;412&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;466&quot; data-start=&quot;412&quot;&gt;&lt;b&gt;메모리 사용량 증가 &lt;/b&gt;: Heap 영역에 데이터를 적재하므로 JVM 메모리 부담이 커짐&lt;/li&gt;
&lt;li data-end=&quot;524&quot; data-start=&quot;467&quot;&gt;&lt;b&gt;성능 저하 가능성 &lt;/b&gt;: 대량의 데이터를 처리할 경우 OutOfMemory(OOM) 발생 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;574&quot; data-start=&quot;526&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h3 data-end=&quot;574&quot; data-start=&quot;526&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Elasticsearch 8.12에서 Fielddata 해제 이슈&lt;/b&gt;&lt;/h3&gt;
&lt;p data-end=&quot;705&quot; data-start=&quot;575&quot; data-ke-size=&quot;size16&quot;&gt;Elasticsearch 8.12 버전부터 &lt;b&gt;Fielddata의 자동 해제(Expire) 기능이 추가&lt;/b&gt;되었습니다.&lt;br /&gt;기본적으로 &lt;b&gt;1시간(expire: 1h)이 지나면 Fielddata가 자동으로 해제&lt;/b&gt;되는 동작을 합니다&lt;/p&gt;
&lt;h4 data-end=&quot;725&quot; data-start=&quot;707&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제 발생 원인&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;906&quot; data-start=&quot;726&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;769&quot; data-start=&quot;726&quot;&gt;기존 버전(8.11 이하)에서는 Fielddata가 캐시 크기 형태로 유지됨 (기본값 -1b)&lt;/li&gt;
&lt;li data-end=&quot;822&quot; data-start=&quot;770&quot;&gt;8.12에서는 indices.fielddata.cache.expire 설정이 추가됨&lt;/li&gt;
&lt;li data-end=&quot;851&quot; data-start=&quot;823&quot;&gt;기본값이 1시간(1h)으로 설정되어 있음&lt;/li&gt;
&lt;li data-end=&quot;906&quot; data-start=&quot;852&quot;&gt;일정 시간이 지나면 Fielddata가 삭제되고 다시 로딩하는 과정에서 성능 저하가 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end=&quot;946&quot; data-start=&quot;908&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;릴리즈 노트에는 있지만 공식 문서에는 언급되지 않음&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1221&quot; data-start=&quot;947&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1079&quot; data-start=&quot;947&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/current/release-notes-8.12.0.html&quot;&gt;Elasticsearch 8.12 릴리즈 노트&lt;/a&gt;에는 해당 내용이 포함됨
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1079&quot; data-start=&quot;947&quot;&gt;&lt;a href=&quot;https://github.com/elastic/elasticsearch/pull/102682&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Introduce&amp;nbsp;fielddata&amp;nbsp;cache&amp;nbsp;ttl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1221&quot; data-start=&quot;1080&quot;&gt;하지만 &lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/8.12/modules-fielddata.html&quot;&gt;공식 문서(Field data cache settings)&lt;/a&gt;에는 이 변경 사항이 언급되지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1487&quot; data-origin-height=&quot;448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zNOH1/btsMSRa8AMe/MrfES4mhZgkyZOGFe0iDtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zNOH1/btsMSRa8AMe/MrfES4mhZgkyZOGFe0iDtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zNOH1/btsMSRa8AMe/MrfES4mhZgkyZOGFe0iDtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzNOH1%2FbtsMSRa8AMe%2FMrfES4mhZgkyZOGFe0iDtK%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;1487&quot; height=&quot;448&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1487&quot; data-origin-height=&quot;448&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-end=&quot;1267&quot; data-start=&quot;1223&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;실제 Fielddata 자동 해제 확인&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1355&quot; data-start=&quot;1268&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1312&quot; data-start=&quot;1268&quot;&gt;1시간이 지나면 Fielddata가 자동 해제되는 현상을 확인할 수 있음&lt;/li&gt;
&lt;li data-end=&quot;1355&quot; data-start=&quot;1313&quot;&gt;특정 필드에서 Fielddata를 활성화한 후 시간이 지나면 제거됨&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;1390&quot; data-start=&quot;1357&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h3 data-end=&quot;1390&quot; data-start=&quot;1357&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Fielddata 해제 문제 해결 방법&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-end=&quot;1425&quot; data-start=&quot;1392&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) Fielddata 자동 해제 비활성화&lt;/b&gt;&lt;/h4&gt;
&lt;p data-end=&quot;1468&quot; data-start=&quot;1426&quot; data-ke-size=&quot;size16&quot;&gt;Fielddata가 자동으로 해제되지 않도록 설정을 변경할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1742559840521&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# IndicesFieldDataCache.java
public static final Setting&amp;lt;TimeValue&amp;gt; INDICES_FIELDDATA_CACHE_EXPIRE = Setting.positiveTimeSetting(
    &quot;indices.fielddata.cache.expire&quot;,
    new TimeValue(1, TimeUnit.HOURS),
    Property.NodeScope
);

final TimeValue expire = INDICES_FIELDDATA_CACHE_EXPIRE.exists(settings) ? INDICES_FIELDDATA_CACHE_EXPIRE.get(settings) : null;
if (expire != null &amp;amp;&amp;amp; expire.getNanos() &amp;gt; 0) {
    cacheBuilder.setExpireAfterAccess(expire);
}&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;코드를 보면 expire 이 null 이 아니고 값이 0 보다 큰 경우에만 캐시 만료 시간을 설정 합니다. 이 외 경우 기본값 1h 시간으로 설정 됩니다. 결국,&amp;nbsp;0 이하 값 (일반적으로 -1 을 무제한 값으로 사용)은 설정 할 수 없습니다.&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;※ 숫자만 입력했을 때 기본 단위는 나노초(ns)&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;따라서, Fielddata 을 무제한으로 유지하기 위해서는 0 값을 설정 해야 합니다.&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1742557253347&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# elasticsearch.yml
indices.fielddata.cache.expire: 0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;필요에 따라 적절한 만료 시간을 설정할 수도 있음 (예: 2h, 12h)&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VSLX8/btsMSlRiWJC/F10QBIFSDTemruHo8ZkuZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VSLX8/btsMSlRiWJC/F10QBIFSDTemruHo8ZkuZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VSLX8/btsMSlRiWJC/F10QBIFSDTemruHo8ZkuZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVSLX8%2FbtsMSlRiWJC%2FF10QBIFSDTemruHo8ZkuZ0%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;1477&quot; height=&quot;449&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;1663&quot; data-start=&quot;1611&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2) Fielddata 설정 변경 후 유지되는지 확인&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1703&quot; data-start=&quot;1664&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1703&quot; data-start=&quot;1664&quot;&gt;설정 변경 후 Fielddata가 자동으로 해제되지 않는지 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1734&quot; data-start=&quot;1705&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3) Fielddata 사용 최소화&lt;/b&gt;&lt;/h3&gt;
&lt;p data-end=&quot;1791&quot; data-start=&quot;1735&quot; data-ke-size=&quot;size16&quot;&gt;Fielddata는 메모리 사용량이 크므로 가능하면 &lt;b&gt;대체 방법&lt;/b&gt;을 사용하는 것이 좋습니다.&lt;/p&gt;
&lt;h4 data-end=&quot;1834&quot; data-start=&quot;1793&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;✅ Fielddata 대신 keyword 타입 사용&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1937&quot; data-start=&quot;1835&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1893&quot; data-start=&quot;1835&quot;&gt;text 대신 keyword 타입을 사용하면 Fielddata 없이도 정렬 및 집계가 가능&lt;/li&gt;
&lt;li data-end=&quot;1937&quot; data-start=&quot;1894&quot;&gt;기존 데이터에서 text + keyword 멀티 필드 적용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1742557305077&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;mappings&quot;: {
    &quot;properties&quot;: {
      &quot;title&quot;: {
        &quot;type&quot;: &quot;text&quot;,
        &quot;fields&quot;: {
          &quot;keyword&quot;: { 
            &quot;type&quot;: &quot;keyword&quot;
          }
        }
      }
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2196&quot; data-start=&quot;2146&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2196&quot; data-start=&quot;2146&quot;&gt;이렇게 설정하면 title.keyword 필드를 정렬 및 집계에 사용할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;2221&quot; data-start=&quot;2198&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h3 data-end=&quot;2221&quot; data-start=&quot;2198&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 마무리 및 추천 설정&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-end=&quot;2270&quot; data-start=&quot;2222&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) Elasticsearch 8.12 이상 버전 사용자라면 반드시 확인할 사항&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2346&quot; data-start=&quot;2271&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2303&quot; data-start=&quot;2271&quot;&gt;Fielddata가 1시간 후 자동 해제되는지 확인&lt;/li&gt;
&lt;li data-end=&quot;2346&quot; data-start=&quot;2304&quot;&gt;indices.fielddata.cache.expire 설정 조정&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end=&quot;2383&quot; data-start=&quot;2348&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) Fielddata를 꼭 사용해야 한다면?&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2453&quot; data-start=&quot;2384&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2428&quot; data-start=&quot;2384&quot;&gt;indices.fielddata.cache.expire: 0로 설정&lt;/li&gt;
&lt;li data-end=&quot;2453&quot; data-start=&quot;2429&quot;&gt;Heap 메모리 사용량 모니터링 필수&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end=&quot;2491&quot; data-start=&quot;2455&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3) Fielddata 없이 운영하는 방법 고민&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2541&quot; data-start=&quot;2492&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2515&quot; data-start=&quot;2492&quot;&gt;keyword 타입을 적극 활용&lt;/li&gt;
&lt;li data-end=&quot;2541&quot; data-start=&quot;2516&quot;&gt;데이터 모델링을 최적화하여 성능을 개선&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>업무 기록/Trouble Shooting</category>
      <category>Elasticsearch</category>
      <category>fielddata</category>
      <category>indices.fielddata.cache.expire</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/198</guid>
      <comments>https://mslee89.tistory.com/198#entry198comment</comments>
      <pubDate>Fri, 21 Mar 2025 20:45:42 +0900</pubDate>
    </item>
    <item>
      <title>Fortigate VPN 연결 시간 조정</title>
      <link>https://mslee89.tistory.com/197</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본적으로 Fortigate VPN 에 연결 할 경우 &lt;code&gt;8&lt;/code&gt; 시간이 지날 경우 재인증을 위해 VPN이 끊어짐&lt;/li&gt;
&lt;li&gt;하지만, 회사에서 점심 시간 포함하여 최소 &lt;code&gt;9&lt;/code&gt;시간이 필요하며 상황에 따라 그 이상이 필요해짐&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;장비 구성 정보&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델명 : Fortigate 60E&lt;/li&gt;
&lt;li&gt;펌웨어 버전 : &lt;span style=&quot;background-color: #ffffff; color: #4f5458;&quot;&gt;Firmware 5.x, 6.x, 7.x.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;기본 설정 확인&lt;/h2&gt;
&lt;pre class=&quot;swift&quot; data-ke-language=&quot;swift&quot;&gt;&lt;code&gt;foritgate # config vpn ssl settings
foritgate (settings) # get
reqclientcert       : disable 
banned-cipher       : 
ssl-insert-empty-fragment: enable 
https-redirect      : disable 
x-content-type-options: enable 
ssl-client-renegotiation: disable 
force-two-factor-auth: disable 
servercert          : 
algorithm           : high 
idle-timeout        : 36000
auth-timeout        : 28800
login-attempt-limit : 2
login-block-time    : 60
login-timeout       : 30
dtls-hello-timeout  : 10&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설정 변경&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본 &lt;code&gt;8&lt;/code&gt; 시간을 &lt;code&gt;10&lt;/code&gt; 시간으로 조정&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;swift&quot; data-ke-language=&quot;swift&quot;&gt;&lt;code&gt;foritgate (settings) # set auth-timeout 36000&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;변경 된 값 확인&lt;/h2&gt;
&lt;pre class=&quot;swift&quot; data-ke-language=&quot;swift&quot;&gt;&lt;code&gt;foritgate (settings) # get
reqclientcert       : disable 
banned-cipher       : 
ssl-insert-empty-fragment: enable 
https-redirect      : disable 
x-content-type-options: enable 
ssl-client-renegotiation: disable 
force-two-factor-auth: disable 
servercert          : 
algorithm           : high 
idle-timeout        : 36000
auth-timeout        : 36000
login-attempt-limit : 2
login-block-time    : 60
login-timeout       : 30
dtls-hello-timeout  : 10&lt;/code&gt;&lt;/pre&gt;</description>
      <category>IT/Network</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/197</guid>
      <comments>https://mslee89.tistory.com/197#entry197comment</comments>
      <pubDate>Tue, 28 Mar 2023 20:47:28 +0900</pubDate>
    </item>
    <item>
      <title>CIDRNotAvailable 이벤트 로그 발생에 대한 테스트</title>
      <link>https://mslee89.tistory.com/196</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;개요&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kubespray 을 통해 Kubernetes 를 구성 할 때 네트워크 관련에서 별다른 설정을 하지 않고 운영 할 경우 아래와 같은 메시지를 확인 할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;$ kubectl get event
LAST SEEN   TYPE     REASON             OBJECT                                MESSAGE
38s         Normal   CIDRNotAvailable   node/node65.k8s   Node node65.k8s status is now: CIDRNotAvailable
48s         Normal   CIDRNotAvailable   node/node66.k8s   Node node66.k8s status is now: CIDRNotAvailable
37s         Normal   CIDRNotAvailable   node/node67.k8s   Node node67.k8s status is now: CIDRNotAvailable&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제의 원인은 POD_SUBNET 에서 노드에 할당 가능한 CIDR 이 없기 때문에 발생한 문제다.&lt;br /&gt;이를 일반적으로 &lt;code&gt;64-Node Limit&lt;/code&gt; 문제라고 부르고 있으며 아래와 같이 살펴 볼 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kubespray 기본 설정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;kube_service_addresses: 10.233.0.0/18&lt;/li&gt;
&lt;li&gt;kube_pods_subnet: 10.233.64.0/18&lt;/li&gt;
&lt;li&gt;kube_network_node_prefix: 24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 문제가 되는 부분은 &lt;code&gt;kube_pods_subnet&lt;/code&gt; 이라는 항목인데 &lt;code&gt;10.233.64.0/18&lt;/code&gt; 은 총 &lt;code&gt;16384&lt;/code&gt; 개의 IP를 사용 할 수 있지만 Kubernetes 에서는 노드 단위로 하나의 24 비트의 주소를 할당한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;kube_pods_subnet&lt;/code&gt;가 &lt;code&gt;10.233.64.0/18&lt;/code&gt; 이고 &lt;code&gt;kube_network_node_prefix&lt;/code&gt;은 &lt;code&gt;24&lt;/code&gt; 이니 아래와 같은 대역으로 할당이 가능&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;할당 가능한 대역 (총 64개)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;10.233.64.0/24&lt;/li&gt;
&lt;li&gt;10.233.65.0/24&lt;br /&gt;...&lt;/li&gt;
&lt;li&gt;10.233.126.0/24&lt;/li&gt;
&lt;li&gt;10.233.127.0/24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;예) control-plane 3대와 node 70대가 있다고 가정
$  kubectl get nodes -oyaml | egrep &quot;^    name:|    podCIDR:&quot;
  name: control-plane01.k8s
  podCIDR: 10.233.64.0/24
  name: control-plane02.k8s
  podCIDR: 10.233.65.0/24
...
  name: node60.k8s
  podCIDR: 10.233.126.0/24
  name: node61.k8s
  podCIDR: 10.233.127.0/24
  node62.k8s (podCIDR 이 표시되지 않음)
...
  node70.k8s (podCIDR 이 표시되지 않음)&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 같은 상황에서 여러가지 질문이 생길 수 있다. 질문을 기반으로 테스트를 진행&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;node60.k8s 은 podCIDR 이 &lt;code&gt;10.233.126.0/24&lt;/code&gt; 으로 할당받았으니 node60.k8s 에서 생성되는 POD는 모두 &lt;code&gt;10.233.126.0/24&lt;/code&gt; 내에서 할당이 되는가?&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;할당이 가능하며 하나의 CIDR 으로 할당이 되는 것을 볼 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;&amp;lt;네임스페이스 이름&amp;gt; &amp;lt;POD 이름&amp;gt; 1/1 Running 0 &amp;lt;날짜&amp;gt; 10.233.121.245 node60.k8s &amp;lt;none&amp;gt; &amp;lt;none&amp;gt; 
&amp;lt;네임스페이스 이름&amp;gt; &amp;lt;POD 이름&amp;gt; 1/1 Running 0 &amp;lt;날짜&amp;gt; 10.233.121.22 node60.k8s &amp;lt;none&amp;gt; &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt; &amp;lt;POD 이름&amp;gt; 1/1 Running 0 &amp;lt;날짜&amp;gt; 10.233.121.52 node60.k8s &amp;lt;none&amp;gt; &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt; &amp;lt;POD 이름&amp;gt; 1/1 Running 0 &amp;lt;날짜&amp;gt; 10.233.121.137 node60.k8s &amp;lt;none&amp;gt; &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt; &amp;lt;POD 이름&amp;gt; 1/1 Running 0 &amp;lt;날짜&amp;gt; 10.233.121.89 node60.k8s &amp;lt;none&amp;gt; &amp;lt;none&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;2&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;node60.k8s 에는 podCIDR 가 &lt;code&gt;10.233.126.0/24&lt;/code&gt; 으로 설정이 되어있는데 왜 &lt;code&gt;10.233.121.0/24&lt;/code&gt; 으로 할당되었는지?&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;kubectl get nodes -oyaml | egrep &quot;^ name:| podCIDR:&quot;&lt;/code&gt; 명령어로 확인 했을 때 분명히 node60 의 CIDR 은 &lt;code&gt;10.233.126.0/24&lt;/code&gt; 으로 출력되어있지만 해당 서버의 라우팅 테이블을 확인하면 다른 것을 확인 할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;$ route -n | grep -v -E &quot;tunl0|cali|eth&quot;
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.233.121.0    0.0.0.0         255.255.255.0   U     0      0        0 *&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 부분에 대해서는 추가적인 확인이 필요한 것으로 보임&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;3&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;그렇다면 CIDR 을 할당받지 못한 노드에서는 POD 구동이 되지 않는가?&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;그렇지 않으며 할당되지 않는 IPPool 에서 할당을 받는다. 아래는 podCIDR 가 없는 하나의 노드에서 확인 결과로 다양한 IP가 할당&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.96.76        node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.95.3        node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.95.97        node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.96.163    node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.95.85        node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.95.121    node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.95.47        node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.98.110    node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.97.181    node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
&amp;lt;네임스페이스 이름&amp;gt;    &amp;lt;POD 이름&amp;gt;            1/1     Running     0          &amp;lt;날짜&amp;gt;    10.233.96.113    node67.k8s    &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;4&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;그렇다면 CIDRNotAvailable 이라는 이벤트 로그는 왜 발생하는거고 왜 관리자에게 출력이 되는건지?&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제일 우려스러웠던 부분은 IP 의 중복성이였다. 얘를 들자면 node60.k8s 에서는 &lt;code&gt;10.233.121.0/24&lt;/code&gt; 으로 설정되어 해당 CIDR 을 기준으로 할당하는데 그 외 CIDR이 없는 노드에서 &lt;code&gt;10.233.121.0/24&lt;/code&gt; 으로 할당받는다면 중복이 발생하지 않을까 싶었다. 이를 통해 AWS EC2 에서 아래와 같은 테스트를 진행했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;CIDRNotAvailable 에 따른 POD IP 중복성 확인&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AWS 구성 환경
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;노드 : control-plane0[1-3].k8s, node0[1-2].k8s (총 5대)&lt;/li&gt;
&lt;li&gt;kube_pods_subnet : 192.168.0.0/24
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용 가능한 IP 수 : 256 (게이트웨이 및 브로드캐스트 제외 시 254)&lt;/li&gt;
&lt;li&gt;192.168.0.0/24 1개의 대역만 사용 가능. 비용 문제 때문에 비싼 EC2을 사용 할 수 없기에 대역을 최소화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;kube_network_node_prefix : 24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;최초 구성 후 IPPool 및 podCIDR 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1679475046495&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ calicoctl ipam show --show-blocks
+----------+----------------+-----------+------------+-----------+
| GROUPING |      CIDR      | IPS TOTAL | IPS IN USE | IPS FREE  |
+----------+----------------+-----------+------------+-----------+
| IP Pool  | 192.168.0.0/24 |       256 | 9 (4%)     | 247 (96%) |
| Block    | 192.168.0.0/24 |       256 | 9 (4%)     | 247 (96%) |
+----------+----------------+-----------+------------+-----------+

$ kubectl get nodes -oyaml | egrep &quot;^    name:|    podCIDR:&quot;
    name: control-plane01.k8s
    podCIDR: 192.168.0.0/24
    name: control-plane02.k8s
    name: control-plane03.k8s
    name: node01.k8s
    name: node02.k8s&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NGINX Deployment 로 247개 POD 생성 및 중복 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1679475113375&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ kubectl get pod -o wide -A
NAMESPACE     NAME                                          READY   STATUS    RESTARTS   AGE    IP              NODE                  NOMINATED NODE   READINESS GATES
default       nginx-86bc984445-242pj                        1/1     Running   0          107s   192.168.0.197   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-27f2p                        1/1     Running   0          111s   192.168.0.167   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-2v2xd                        1/1     Running   0          114s   192.168.0.118   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-2vc2c                        1/1     Running   0          108s   192.168.0.214   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-4vkh2                        1/1     Running   0          113s   192.168.0.138   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-55b8v                        1/1     Running   0          116s   192.168.0.25    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-55tt5                        1/1     Running   0          110s   192.168.0.217   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-59k9t                        1/1     Running   0          116s   192.168.0.28    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5brcl                        1/1     Running   0          114s   192.168.0.96    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5fbj4                        1/1     Running   0          111s   192.168.0.178   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5hfkl                        1/1     Running   0          112s   192.168.0.233   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5hm7r                        1/1     Running   0          116s   192.168.0.32    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5lv62                        1/1     Running   0          113s   192.168.0.61    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5n2dr                        1/1     Running   0          110s   192.168.0.199   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5plqt                        1/1     Running   0          111s   192.168.0.198   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5qkw7                        1/1     Running   0          116s   192.168.0.49    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5qt5j                        1/1     Running   0          106s   192.168.0.165   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5rnpm                        1/1     Running   0          114s   192.168.0.40    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5w2xl                        1/1     Running   0          115s   192.168.0.91    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-5xbkp                        1/1     Running   0          110s   192.168.0.109   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6224x                        1/1     Running   0          113s   192.168.0.65    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-644sb                        1/1     Running   0          116s   192.168.0.12    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-64r9w                        1/1     Running   0          108s   192.168.0.223   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6h485                        1/1     Running   0          116s   192.168.0.35    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6hj8v                        1/1     Running   0          108s   192.168.0.151   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6jnxc                        1/1     Running   0          109s   192.168.0.190   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6ktcw                        1/1     Running   0          109s   192.168.0.168   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6mdd2                        1/1     Running   0          116s   192.168.0.20    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6qd9m                        1/1     Running   0          116s   192.168.0.54    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6vctb                        1/1     Running   0          111s   192.168.0.152   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-6zqwq                        1/1     Running   0          113s   192.168.0.70    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-75vwp                        1/1     Running   0          113s   192.168.0.127   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7ft9b                        1/1     Running   0          110s   192.168.0.141   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7gc58                        1/1     Running   0          106s   192.168.0.78    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7m2qz                        1/1     Running   0          106s   192.168.0.216   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7r8hd                        1/1     Running   0          108s   192.168.0.194   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7tgds                        1/1     Running   0          112s   192.168.0.201   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7v4kv                        1/1     Running   0          108s   192.168.0.122   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7wsld                        1/1     Running   0          114s   192.168.0.60    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-7zq74                        1/1     Running   0          112s   192.168.0.232   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-84gp5                        1/1     Running   0          107s   192.168.0.239   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-85ndt                        1/1     Running   0          116s   192.168.0.26    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-896d6                        1/1     Running   0          114s   192.168.0.215   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-89mfl                        1/1     Running   0          111s   192.168.0.171   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8cbkp                        1/1     Running   0          114s   192.168.0.185   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8ggqw                        1/1     Running   0          107s   192.168.0.202   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8gr7c                        1/1     Running   0          110s   192.168.0.159   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8nz8q                        1/1     Running   0          109s   192.168.0.157   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8vpsq                        1/1     Running   0          116s   192.168.0.37    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8wdcc                        1/1     Running   0          115s   192.168.0.74    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8x2bw                        1/1     Running   0          112s   192.168.0.230   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8xcqn                        1/1     Running   0          114s   192.168.0.55    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-8zbk9                        1/1     Running   0          107s   192.168.0.173   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-92mqq                        1/1     Running   0          114s   192.168.0.82    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-94hjt                        1/1     Running   0          106s   192.168.0.228   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-97dkq                        1/1     Running   0          116s   192.168.0.13    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-98bp8                        1/1     Running   0          114s   192.168.0.231   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-9df49                        1/1     Running   0          116s   192.168.0.42    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-9jj4g                        1/1     Running   0          114s   192.168.0.112   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-9td2f                        1/1     Running   0          107s   192.168.0.191   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-9wnrv                        1/1     Running   0          115s   192.168.0.98    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-9x69b                        1/1     Running   0          110s   192.168.0.136   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-b2gfb                        1/1     Running   0          112s   192.168.0.76    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-b6czk                        1/1     Running   0          111s   192.168.0.176   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-b7z82                        1/1     Running   0          113s   192.168.0.161   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-bcs87                        1/1     Running   0          111s   192.168.0.93    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-bdbl8                        1/1     Running   0          106s   192.168.0.128   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-blbdp                        1/1     Running   0          110s   192.168.0.209   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-bqx98                        1/1     Running   0          109s   192.168.0.108   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-c5kt5                        1/1     Running   0          107s   192.168.0.123   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-c69hl                        1/1     Running   0          113s   192.168.0.58    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-c6qjw                        1/1     Running   0          110s   192.168.0.222   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-c985j                        1/1     Running   0          116s   192.168.0.9     node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ccfxc                        1/1     Running   0          115s   192.168.0.72    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-cdh2z                        1/1     Running   0          106s   192.168.0.75    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-cfxd7                        1/1     Running   0          109s   192.168.0.86    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-cg4p9                        1/1     Running   0          108s   192.168.0.119   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-cmx67                        1/1     Running   0          106s   192.168.0.207   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-cpvch                        1/1     Running   0          113s   192.168.0.180   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-d5qbb                        1/1     Running   0          116s   192.168.0.36    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-d8c6q                        1/1     Running   0          107s   192.168.0.69    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-dcl5j                        1/1     Running   0          112s   192.168.0.213   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-dgrpx                        1/1     Running   0          110s   192.168.0.140   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-dhnlt                        1/1     Running   0          116s   192.168.0.45    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-dk9dt                        1/1     Running   0          107s   192.168.0.250   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-dmmcr                        1/1     Running   0          108s   192.168.0.115   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-dxhsw                        1/1     Running   0          111s   192.168.0.241   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-f2qrv                        1/1     Running   0          105s   192.168.0.144   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-f2w67                        1/1     Running   0          116s   192.168.0.34    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-f49pd                        1/1     Running   0          107s   192.168.0.184   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-f59gw                        1/1     Running   0          116s   192.168.0.51    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ft95r                        1/1     Running   0          116s   192.168.0.50    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-fwmw8                        1/1     Running   0          113s   192.168.0.160   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-g2qp4                        1/1     Running   0          107s   192.168.0.175   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-g46xc                        1/1     Running   0          106s   192.168.0.67    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-g57r2                        1/1     Running   0          115s   192.168.0.102   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-g9gxv                        1/1     Running   0          113s   192.168.0.59    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gcq7w                        1/1     Running   0          109s   192.168.0.225   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gg4wl                        1/1     Running   0          106s   192.168.0.120   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ggs98                        1/1     Running   0          112s   192.168.0.255   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gpmrx                        1/1     Running   0          106s   192.168.0.245   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gs7nx                        1/1     Running   0          106s   192.168.0.224   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gsq92                        1/1     Running   0          112s   192.168.0.129   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gvh55                        1/1     Running   0          116s   192.168.0.48    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gwc4b                        1/1     Running   0          109s   192.168.0.153   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gwlnb                        1/1     Running   0          114s   192.168.0.177   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-gwtvv                        1/1     Running   0          108s   192.168.0.211   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hd56c                        1/1     Running   0          106s   192.168.0.179   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hhsgv                        1/1     Running   0          109s   192.168.0.235   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hlth5                        1/1     Running   0          116s   192.168.0.19    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hmmgn                        1/1     Running   0          112s   192.168.0.71    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hr7s8                        1/1     Running   0          109s   192.168.0.146   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hrccq                        1/1     Running   0          116s   192.168.0.15    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-htv8t                        1/1     Running   0          109s   192.168.0.210   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hxc5z                        1/1     Running   0          115s   192.168.0.47    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-hxh4c                        1/1     Running   0          107s   192.168.0.226   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-j7zv7                        1/1     Running   0          109s   192.168.0.94    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-j877b                        1/1     Running   0          115s   192.168.0.57    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-jhsrs                        1/1     Running   0          110s   192.168.0.248   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-jjhrl                        1/1     Running   0          111s   192.168.0.111   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-jl2fj                        1/1     Running   0          109s   192.168.0.172   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-jpbms                        1/1     Running   0          116s   192.168.0.85    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-k58lv                        1/1     Running   0          116s   192.168.0.90    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-kb6dl                        1/1     Running   0          110s   192.168.0.195   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-kc2f8                        1/1     Running   0          111s   192.168.0.154   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-kdzk9                        1/1     Running   0          116s   192.168.0.31    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-knl2s                        1/1     Running   0          115s   192.168.0.83    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-kq4qq                        1/1     Running   0          107s   192.168.0.206   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-kt88h                        1/1     Running   0          105s   192.168.0.254   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-kx6gq                        1/1     Running   0          116s   192.168.0.14    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-l5m7p                        1/1     Running   0          111s   192.168.0.126   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-l5xvq                        1/1     Running   0          108s   192.168.0.134   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-l676h                        1/1     Running   0          114s   192.168.0.64    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-lf4wb                        1/1     Running   0          111s   192.168.0.238   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-lgc4h                        1/1     Running   0          107s   192.168.0.242   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-lm8gt                        1/1     Running   0          113s   192.168.0.212   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ltnbr                        1/1     Running   0          116s   192.168.0.131   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-lxjtx                        1/1     Running   0          113s   192.168.0.189   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-lzj7p                        1/1     Running   0          109s   192.168.0.169   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-m4r9m                        1/1     Running   0          116s   192.168.0.27    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-m6r5z                        1/1     Running   0          110s   192.168.0.142   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-m84lg                        1/1     Running   0          113s   192.168.0.95    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-m8f74                        1/1     Running   0          116s   192.168.0.10    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-mbhdz                        1/1     Running   0          111s   192.168.0.116   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-mcrqv                        1/1     Running   0          106s   192.168.0.188   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-mfl9w                        1/1     Running   0          116s   192.168.0.30    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-mn9w8                        1/1     Running   0          115s   192.168.0.62    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-mpf5t                        1/1     Running   0          113s   192.168.0.113   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-msn44                        1/1     Running   0          108s   192.168.0.110   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-n26cp                        1/1     Running   0          114s   192.168.0.124   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-n2wfj                        1/1     Running   0          110s   192.168.0.182   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-n4r2s                        1/1     Running   0          110s   192.168.0.164   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-n5f79                        1/1     Running   0          111s   192.168.0.205   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-n7dmp                        1/1     Running   0          116s   192.168.0.38    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-n85jh                        1/1     Running   0          105s   192.168.0.192   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-nbvdt                        1/1     Running   0          109s   192.168.0.87    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ncfnn                        1/1     Running   0          116s   192.168.0.41    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ndpxc                        1/1     Running   0          115s   192.168.0.29    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-nfgpn                        1/1     Running   0          111s   192.168.0.156   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-nh9vx                        1/1     Running   0          114s   192.168.0.174   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-nn8pv                        1/1     Running   0          116s   192.168.0.22    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-nt9vq                        1/1     Running   0          106s   192.168.0.196   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-nwr4j                        1/1     Running   0          112s   192.168.0.84    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-p26wt                        1/1     Running   0          108s   192.168.0.150   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-p4x44                        1/1     Running   0          109s   192.168.0.163   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-p9nx4                        1/1     Running   0          111s   192.168.0.121   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-pccs6                        1/1     Running   0          112s   192.168.0.100   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-phvh4                        1/1     Running   0          115s   192.168.0.44    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-phz7w                        1/1     Running   0          115s   192.168.0.139   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-pj72f                        1/1     Running   0          115s   192.168.0.79    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-pntwc                        1/1     Running   0          115s   192.168.0.253   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ppgzq                        1/1     Running   0          114s   192.168.0.203   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-pttzf                        1/1     Running   0          110s   192.168.0.148   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-pv5zh                        1/1     Running   0          107s   192.168.0.237   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-pw58c                        1/1     Running   0          116s   192.168.0.21    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-q5kt6                        1/1     Running   0          106s   192.168.0.208   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-qb986                        1/1     Running   0          106s   192.168.0.221   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-qcbc2                        1/1     Running   0          116s   192.168.0.53    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-qgbwz                        1/1     Running   0          116s   192.168.0.17    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-qn46p                        1/1     Running   0          105s   192.168.0.81    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-qpkk6                        1/1     Running   0          105s   192.168.0.219   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-qq7cr                        1/1     Running   0          110s   192.168.0.105   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-r6856                        1/1     Running   0          114s   192.168.0.187   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-r8fn5                        1/1     Running   0          111s   192.168.0.132   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-rd7m4                        1/1     Running   0          115s   192.168.0.46    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-rk2zl                        1/1     Running   0          108s   192.168.0.220   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-rn57l                        1/1     Running   0          116s   192.168.0.24    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-rnq6s                        1/1     Running   0          108s   192.168.0.137   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-rpfwv                        1/1     Running   0          108s   192.168.0.249   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-rrqdf                        1/1     Running   0          112s   192.168.0.227   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-rxdxt                        1/1     Running   0          105s   192.168.0.89    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-s5f24                        1/1     Running   0          106s   192.168.0.147   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-s7gxd                        1/1     Running   0          112s   192.168.0.125   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-sb2nh                        1/1     Running   0          112s   192.168.0.236   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-slvnn                        1/1     Running   0          108s   192.168.0.162   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-sm46j                        1/1     Running   0          107s   192.168.0.240   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-smj29                        1/1     Running   0          113s   192.168.0.97    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-sngch                        1/1     Running   0          113s   192.168.0.244   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-sr7fh                        1/1     Running   0          115s   192.168.0.52    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-srkvk                        1/1     Running   0          116s   192.168.0.33    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-t2hlg                        1/1     Running   0          110s   192.168.0.117   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-t2vt2                        1/1     Running   0          107s   192.168.0.114   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-t4jgf                        1/1     Running   0          106s   192.168.0.145   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-tbtjm                        1/1     Running   0          107s   192.168.0.200   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-td26n                        1/1     Running   0          116s   192.168.0.11    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-tdhdt                        1/1     Running   0          116s   192.168.0.23    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-tfmjz                        1/1     Running   0          109s   192.168.0.246   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-tggfw                        1/1     Running   0          106s   192.168.0.155   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-tgq5c                        1/1     Running   0          107s   192.168.0.204   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-tjbnk                        1/1     Running   0          108s   192.168.0.193   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-txd5g                        1/1     Running   0          113s   192.168.0.104   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-v8gzl                        1/1     Running   0          108s   192.168.0.181   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-v94qg                        1/1     Running   0          109s   192.168.0.99    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-v9npm                        1/1     Running   0          114s   192.168.0.39    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vb598                        1/1     Running   0          114s   192.168.0.56    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vjdz9                        1/1     Running   0          114s   192.168.0.251   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vkkmx                        1/1     Running   0          111s   192.168.0.106   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vmbxr                        1/1     Running   0          115s   192.168.0.43    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vmzqs                        1/1     Running   0          112s   192.168.0.92    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vp9qc                        1/1     Running   0          112s   192.168.0.183   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vvlw9                        1/1     Running   0          116s   192.168.0.18    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vvtd9                        1/1     Running   0          115s   192.168.0.77    control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-vz58m                        1/1     Running   0          105s   192.168.0.130   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-w2ksl                        1/1     Running   0          113s   192.168.0.234   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-w4shb                        1/1     Running   0          116s   192.168.0.63    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-wdvcr                        1/1     Running   0          108s   192.168.0.135   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-wjjck                        1/1     Running   0          111s   192.168.0.103   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-wqwzl                        1/1     Running   0          116s   192.168.0.16    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-wvgzt                        1/1     Running   0          108s   192.168.0.166   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-wvnh7                        1/1     Running   0          107s   192.168.0.143   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ww98k                        1/1     Running   0          112s   192.168.0.80    node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-wzxx8                        1/1     Running   0          112s   192.168.0.73    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-x7hxt                        1/1     Running   0          110s   192.168.0.247   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-x8mxf                        1/1     Running   0          108s   192.168.0.170   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-xc5wl                        1/1     Running   0          113s   192.168.0.107   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-xn72t                        1/1     Running   0          110s   192.168.0.186   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-xpt5q                        1/1     Running   0          107s   192.168.0.252   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-xqkwx                        1/1     Running   0          113s   192.168.0.243   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-z4t5n                        1/1     Running   0          109s   192.168.0.158   node02.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-zb62g                        1/1     Running   0          112s   192.168.0.66    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-zc4db                        1/1     Running   0          109s   192.168.0.149   control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-zcgzx                        1/1     Running   0          112s   192.168.0.68    node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-zgd8b                        1/1     Running   0          115s   192.168.0.88    control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-zlblx                        1/1     Running   0          106s   192.168.0.218   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-ztzp6                        1/1     Running   0          109s   192.168.0.133   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-zvjpx                        1/1     Running   0          115s   192.168.0.101   control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
default       nginx-86bc984445-zwq4j                        1/1     Running   0          110s   192.168.0.229   node01.k8s            &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
kube-system   coredns-8474476ff8-qj8qk                      1/1     Running   0          19m    192.168.0.5     control-plane02.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
kube-system   coredns-8474476ff8-tsvtv                      1/1     Running   0          19m    192.168.0.7     control-plane01.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
kube-system   dns-autoscaler-5ffdc7f89d-szmdb               1/1     Running   0          19m    192.168.0.6     control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;
kube-system   metrics-server-6978dd689f-kd5vx               1/1     Running   0          18m    192.168.0.8     control-plane03.k8s   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;

$ kubectl get pods -o wide -A | grep -i running | grep -v 172.31 | awk '{if(NR&amp;gt;1)print $7}' | sort | uniq -d
중복 없음&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IPPool 확인 후 새로운 POD 1개 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1679475241855&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ calicoctl ipam show --show-blocks
+----------+----------------+-----------+------------+----------+
| GROUPING |      CIDR      | IPS TOTAL | IPS IN USE | IPS FREE |
+----------+----------------+-----------+------------+----------+
| IP Pool  | 192.168.0.0/24 |       256 | 256 (100%) | 0 (0%)   |
| Block    | 192.168.0.0/24 |       256 | 256 (100%) | 0 (0%)   |
+----------+----------------+-----------+------------+----------+

$ cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: seob
spec:
  containers:
  - name: seob
    image: nginx:1.14.2
    ports:
    - containerPort: 80
    
$ kubectl apply -f pod.yaml
pod/seob created

$ kubectl get pod | grep seob
seob                    0/1     ContainerCreating   0          6s

$ kubectl describe pod/seob
Events:
  Type     Reason                  Age   From               Message
  ----     ------                  ----  ----               -------
Warning  FailedCreatePodSandBox  11s   kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox &quot;85455fc3d6045d2f72c154ba5f0017539a5c554de375f044879bed80d271f092&quot;: failed to request IPv4 addresses: Assigned 0 out of 1 requested IPv4 addresses; No IPs available in pools: [192.168.0.0/24]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CIDRNotAvailable 이벤트 메시지가 발생해도 CIDR을 할당받지 못한 노드에서도 IPPool 에 사용 가능한 IP가 있다면 할당 받음&lt;/li&gt;
&lt;li&gt;최초 구성 시 &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Kubernetes 규모 예측하여 &lt;/span&gt;네트워크 계산을 통해 적절한 값으로 설정&lt;/li&gt;
&lt;li&gt;kubespray 에서 기본적으로 kubelet_max_pods 값은 24 이며 kubelet_max_pods 은 110 으로 기본값을 가지는데 단일 노드에서 최대 POD 110개의 실행 할 수 있다는 의미. 따라서 kubelet_max_pods 을 25개 설정하여 효율적인 IP 관리 가능&lt;/li&gt;
&lt;li&gt;운영 환경 및 테스트 환경에서는 IP 중복이 발생하지 않았지만 가능하면 문제를 조치
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Subnet 을 더 큰 대역으로 변경하는 방식으로 조치 가능&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>업무 기록/Cloud Native</category>
      <category>Calico</category>
      <category>CIDR</category>
      <category>CIDRNotAvailable</category>
      <category>k8s</category>
      <category>k8s calico</category>
      <category>kubernetes calico</category>
      <category>Kubernetes change pod network cidr</category>
      <category>kubernetes networking</category>
      <category>쿠버네티스 트러블슈팅</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/196</guid>
      <comments>https://mslee89.tistory.com/196#entry196comment</comments>
      <pubDate>Wed, 22 Mar 2023 20:05:45 +0900</pubDate>
    </item>
    <item>
      <title>DC/OS에서 서비스 배포 시 Docker run 옵션 사용</title>
      <link>https://mslee89.tistory.com/194</link>
      <description>&lt;p&gt;안녕하세요.&lt;/p&gt;
&lt;p&gt;DC/OS에서 서비스 테스트를 할 때 Docker run 의 옵션 등이 필요하여 찾아보고 정리한 내용 입니다.&lt;/p&gt;
&lt;p&gt;미리 mesos 혹은 marathon 을 사용해보신분들은 이미 알고 계셨을 내용이기도 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&amp;middot; 개요&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;DC/OS에서 구동되는 서비스에 추가적인 호스트 등록이 필요한 상황이였습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이를 위해 Dockerfile 을 작성하고 아래와 같은 형식으로 도커 이미지를 빌드한 뒤 컨테이너 실행 할 때 /etc/hosts 파일이 초기화되어 의미가 없었습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1569380365901&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;RUN echo 1.1.1.1 seob &amp;gt;&amp;gt; /etc/hosts&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위와 같은 문제를 해결하기 위해서 CMD 를 어플리케이션 실행 명령이 아닌 스크립트를 구동하도록 변경했습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1569380508906&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;middot; run.sh
cat /root/hosts &amp;gt;&amp;gt; /etc/hosts &amp;amp;&amp;amp; java -jar service.jar

&amp;middot; Dockerfile
COPY hosts /root/hosts
COPY run.sh /root/run.sh
CMD bash run.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;정상적으로 /etc/hosts 파일에 원하던 호스트 등록이 완료되었지만 진행하던 서비스(일부만)에서는 위와 같은 경우를 했을 때 문제가 발생했었습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 구동된 컨테이너를 아래와 같이 명령어를 내렸을 때에도 반응은 없었습니다.&lt;/p&gt;
&lt;p&gt;(정상적으로는 해당 컨테이너가 종료된 후 DC/OS에 의해 다시 구동이 되어야 합니다.)&lt;/p&gt;
&lt;pre id=&quot;code_1569380590261&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker kill -s=SIGINT &amp;lt;Container ID&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;올바른 방법이 아니라고 판단했고 다른 방법을 찾아봤습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&amp;middot; 문제&amp;nbsp;해결&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;DC/OS 대쉬보드에서 옵션을 아무리 찾아봤지만 해결되지 않았지만 아시는 것처럼 DC/OS은 컨테이너 오케스트레이션 플랫폼인 Marathon 기반으로 도커를 운영하고 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;서비스의 Json 을 구성 할 때 Marathon 형식을 그대로 사용하면 되는 겁니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;: Docker run --add-host 명령어&lt;/p&gt;
&lt;pre id=&quot;code_1569382699468&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ docker run --help
Options:
      --add-host list                         Add a custom host-to-IP mapping (host:ip) (default [])&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;: DC/OS 서비스 Json 파일&lt;/p&gt;
&lt;pre id=&quot;code_1569382730630&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;id&quot;: &quot;/seob&quot;,
  &quot;backoffFactor&quot;: 1.15,
  &quot;backoffSeconds&quot;: 1,
  &quot;container&quot;: {
    &quot;portMappings&quot;: [],
    &quot;type&quot;: &quot;DOCKER&quot;,
    &quot;volumes&quot;: [],
    &quot;docker&quot;: {
      &quot;image&quot;: &quot;nginx:latest&quot;,
      &quot;forcePullImage&quot;: false,
      &quot;privileged&quot;: false,
      &quot;parameters&quot;: [
        {
          &quot;key&quot;: &quot;add-host&quot;,
          &quot;value&quot;: &quot;seob:1.1.1.1&quot;
        }
      ]
    }
  },
  &quot;cpus&quot;: 0.1,
  &quot;disk&quot;: 0,
  &quot;instances&quot;: 1,
  &quot;maxLaunchDelaySeconds&quot;: 3600,
  &quot;mem&quot;: 128,
  &quot;gpus&quot;: 0,
  &quot;networks&quot;: [
    {
      &quot;mode&quot;: &quot;container/bridge&quot;
    }
  ],
  &quot;requirePorts&quot;: false,
  &quot;upgradeStrategy&quot;: {
    &quot;maximumOverCapacity&quot;: 1,
    &quot;minimumHealthCapacity&quot;: 1
  },
  &quot;killSelection&quot;: &quot;YOUNGEST_FIRST&quot;,
  &quot;unreachableStrategy&quot;: {
    &quot;inactiveAfterSeconds&quot;: 0,
    &quot;expungeAfterSeconds&quot;: 0
  },
  &quot;healthChecks&quot;: [],
  &quot;fetch&quot;: [],
  &quot;constraints&quot;: []
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위에 보시는 것처럼 parameters 부분의 key 값을 옵션을 할당하고 value에는 옵션에 들어갈 내용을 작성하면 됩니다.&lt;/p&gt;
&lt;p&gt;이렇게 작성하신 뒤 배포하시고 배포된 컨테이너를 확인하시면 정상적으로 --add-host 옵션을 사용한 것을 볼 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1569382811234&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ docker exec -it 5da cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
1.1.1.1 seob
172.17.0.2      5da4cce1579a&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;간단한 테스트로 진행한 것이기 때문에 --add-host 외에 다른 옵션은 테스트 해보지 않았지만 형식만 제대로 갖추어 작성한다면 정상적으로 동작 할 껍니다.&lt;/p&gt;</description>
      <category>업무 기록/Cloud Native</category>
      <category>add-host</category>
      <category>d2iq</category>
      <category>dc/os</category>
      <category>dcos</category>
      <category>Marathon</category>
      <category>mesos</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/194</guid>
      <comments>https://mslee89.tistory.com/194#entry194comment</comments>
      <pubDate>Wed, 25 Sep 2019 12:44:00 +0900</pubDate>
    </item>
    <item>
      <title>DC/OS 설치 후 성능 이슈</title>
      <link>https://mslee89.tistory.com/193</link>
      <description>&lt;p&gt;안녕하세요.&lt;/p&gt;
&lt;p&gt;D2IQ(Mesosphere) 의 DC/OS 설치 후 성능 이슈에 대한 설명을 하려고 합니다.&lt;/p&gt;
&lt;p&gt;이 성능 이슈는 아래와 같은 버전에서 모두 발생했었습니다.&lt;/p&gt;
&lt;p&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;DC/OS 버전 : 1.11.10, 1.12.0, 1.13.3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DC/OS 서비스에 의해 문제가 발생한건 아니지만 DC/OS의 설치 환경에 의해 발생한 것이니 카테고리를 DC/OS에 포함시켰습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&amp;middot; 문제점&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;delete_journald.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nh4Uu/btqydzbUHgG/tT4DHYZw5Es8KCE3JjAgt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nh4Uu/btqydzbUHgG/tT4DHYZw5Es8KCE3JjAgt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nh4Uu/btqydzbUHgG/tT4DHYZw5Es8KCE3JjAgt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnh4Uu%2FbtqydzbUHgG%2FtT4DHYZw5Es8KCE3JjAgt1%2Fimg.png&quot; data-filename=&quot;delete_journald.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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Java 로 구동되는 어플리케이션이 있었는데 DC/OS가 아닌 서버에서 Docker(network는 host, bridge 둘다 테스트) 컨테이너로 구동 시 nGrinder 에서 보여지는 TPS가 약 1200~1500 이 발생.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;before_journald.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dn79ua/btqyb02nocy/ntKsPiJVoG9IFliL8KCr0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dn79ua/btqyb02nocy/ntKsPiJVoG9IFliL8KCr0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dn79ua/btqyb02nocy/ntKsPiJVoG9IFliL8KCr0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdn79ua%2Fbtqyb02nocy%2FntKsPiJVoG9IFliL8KCr0k%2Fimg.png&quot; data-filename=&quot;before_journald.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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;하지만 동일한 장비로 DC/OS에 투입 후 테스트 시 TPS는 400-600 으로 떨어지는 현상이 발생.&lt;/p&gt;
&lt;p&gt;DC/OS에서는 동일하게 Core/메모리를 모두 할당했었고, nGrinder의 테스트 방식도 동일했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 외 Marathon-LB 가 아닌 Agent 로 직접 호출을 했음에도 문제는 해결되지 않았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&amp;middot; 문제 확인&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;문제점을 확인하기 위해서 단계적으로 테스트를 진행을 했었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;운영체제 설치 후 도커 컨테이너를 구동하여 테스트 (&lt;span style=&quot;color: #09b21c;&quot;&gt;&lt;b&gt;정상&lt;/b&gt;&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;DC/OS 환경 설정 (NTP 설정, /etc/hosts 파일 편집, 패키지 등 설치) (&lt;span style=&quot;color: #09b21c;&quot;&gt;&lt;b&gt;정상&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;DC/OS 에이전트 노드로 투입 후 테스트 (&lt;span style=&quot;color: #f41a18;&quot;&gt;&lt;b&gt;비정상&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3번 진행 후 테스트 했을 때 문제가 발생했었고 설치 스크립트를 모두 뜯어서 분석하고 확인하기에는 너무나 오랜 시간이 걸릴 것 같았다. 이때 운영체제 재설치가 아닌 DC/OS Uninstall을 하면 어떻게 될까? 라는 생각으로 진행했었다.&lt;/p&gt;
&lt;p&gt;그리고 DC/OS Uninstall은 동일한 장비에서만 진행을 했다.&lt;/p&gt;
&lt;pre id=&quot;code_1568171915424&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1. systemctl stop dcos*
2. rm -rf /var/run/mesos /var/lib/mesos /opt/mesosphere/ /etc/mesosphere/ /run/dcos/ /var/lib/dcos/ /etc/systemd/system/dcos* /etc/profile.d/dcos.sh /etc/systemd/journald.conf.d/dcos.conf /etc/systemd/system/multi-user.target.wants/dcos-setup.service /etc/systemd/system/multi-user.target.wants/dcos.target &amp;amp;&amp;amp; systemctl daemon-reload
3. sync ; reboot&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(현재는 DC/OS 자체적으로 uninstall 스크립트를 제공하고 있음 : &lt;a href=&quot;https://docs.d2iq.com/mesosphere/dcos/1.12/installing/production/uninstalling/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3번까지 한번에 모두 완료했을 때 TPS은 정상적으로 1200 - 1500 을 유지했다.&lt;/p&gt;
&lt;p&gt;역시 문제는 DC/OS 라고 판단했었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;systectl stop dcos*&lt;/li&gt;
&lt;li&gt;rm -rf /etc/systemd/system/&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;multi-user.target.wants/dcos.target&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;systemctl&amp;nbsp;daemon-reload&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;rm -rf&amp;nbsp;/etc/systemd/system/&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;multi-user.target.wants/dcos-setup.service&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&amp;amp;&amp;amp; systemctl daemon-reload&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;rm -rf /etc/systemd/journald.conf.d/dcos.conf&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&amp;amp;&amp;amp; systemctl daemon-reload&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;...&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1번부터 진행하면서 테스트를 진행했고&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DC/OS 서비스에 의해 자원 사용량이 제한 될꺼라 예상했지만 실패했다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;1번 진행 후 2번부터 삭제 할 대상을 순서대로 정리했고, 순서는 /opt/mesosphere 패키지 같은 것들이 아닌 단일 파일부터 DC/OS와 크게 관련이 없는 파일 단위부터 삭제를 시작했다. (이미 DC/OS 서비스가 종료되어있음에도 불구하고 성능이 나오지 않는다는건 DC/OS 패키지와 관련이 없다고 판단했었다)&lt;/p&gt;
&lt;p&gt;정확한 테스트를 위해 각 단계 진행 시 &lt;b&gt;재부팅&lt;/b&gt;을 진행했었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그리고 4번을 진행했을 때 TPS가 1200 ~ 1500 으로 정상적으로 나오기 시작했다.&lt;/p&gt;
&lt;p&gt;확인해보니 DC/OS가 설치되면서 &lt;span style=&quot;color: #333333;&quot;&gt;/etc/systemd/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;journald.conf.d/&lt;/span&gt;dcos.conf 이 생성되고 journald 에 의해 성능 이슈가 발생한 것이다. (CentOS 7 설치 시&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;/etc/systemd/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;journald.conf의 모든 설정 값은 주석처리 되어있습니다.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;/etc/systemd/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;journald.conf.d/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;dcos.conf&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1568172633989&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[Journal]
MaxLevelConsole=warning
RateLimitInterval=1s
RateLimitBurst=20000&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;옵션을 확인했을 때 warning 레벨 이상 (notice, info, debug)가 매 1초마다 Journal에 기록되는 내용이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Journal은 RHEL 7 에서 새로운 로깅 데몬이고 아래와 같은 메시지를 저장한다. (&lt;a href=&quot;https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/7/html/migration_planning_guide/ch04s04s02&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Journal이란?&lt;/a&gt;)&lt;/p&gt;
&lt;pre id=&quot;code_1568172789547&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;- syslog 메시지
- 커널 메시지
- 초기 RAM 디스크 및 초기 부팅 메시지
- 표준 출력 및 표준 오류 출력으로 전송되는 메시지&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;systemd-journal.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U91il/btqyeoU0Tjn/OGQVuqquuPkDlKpT3w29TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U91il/btqyeoU0Tjn/OGQVuqquuPkDlKpT3w29TK/img.png&quot; data-alt=&quot;Journald 서비스의 CPU 사용량&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U91il/btqyeoU0Tjn/OGQVuqquuPkDlKpT3w29TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU91il%2FbtqyeoU0Tjn%2FOGQVuqquuPkDlKpT3w29TK%2Fimg.png&quot; data-filename=&quot;systemd-journal.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;/&gt;&lt;/span&gt;&lt;figcaption&gt;Journald 서비스의 CPU 사용량&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;현재 Java로 개발된 어플리케이션은 모든 로그가 stdout(표준 출력)되기 때문에 nGrinder 같은 부하 발생기를 사용 할 경우 Journal 서비스의 CPU 사용량 및 디스크 IO가 발생하며 이에 따라 어플리케이션이 사용할 자원까지 나눠서 사용하기 때문에 문제가 발생했었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&amp;middot; 문제 해결&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;문제점 해결은 매우 간단했다.&lt;/p&gt;
&lt;p&gt;일반적인 시스템 로그 및 stdout(표준 출력)이 /var/log/message에도 기록하기 때문에 굳이 Journal 을 사용하여 성능 이슈를 감안하고 이중으로 사용 할 필요는 없었다.&lt;/p&gt;
&lt;pre id=&quot;code_1568173075583&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rm -rf /etc/systemd/journald.conf.d/dcos.conf
systemctl restart systemd-journald.service
systemctl status systemd-journald.service &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위와 같이 진행했을 때 DC/OS 에서도 동일한 TPS을 보여줬으며 문제는 해결이 되었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&amp;middot; 마무리&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;journald은 DC/OS 뿐만 아니라 성능 이슈로 많이 언급이 되었던 서비스이고,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이번에 처음 겪게 되었고 역시나 DC/OS은.. 문제 발생 했을 때 구글링하는 것보다 직접해결하는게 제일 빠르다고 느꼈습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;nGrinder 처럼 자원을 모두 사용 할 정도가 아니라면 DC/OS에서 기본적으로 제공해주는&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;/etc/systemd/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;journald.conf.d/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;dcos.conf 을 지울 필요는 없어보이지만 Journald&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;사용하지 않는다면 굳이 활성화 시킬 필요는 없을 것 같기도 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;운영 환경에 따라서 판단을 알아서 하시면 될 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;middot; 추가&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;1.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JYlU2/btqywXDFTFc/eOB8MoBgt7kTrjca9FKxfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JYlU2/btqywXDFTFc/eOB8MoBgt7kTrjca9FKxfk/img.png&quot; data-alt=&quot;mesos_container_log_sink&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JYlU2/btqywXDFTFc/eOB8MoBgt7kTrjca9FKxfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJYlU2%2FbtqywXDFTFc%2FeOB8MoBgt7kTrjca9FKxfk%2Fimg.png&quot; data-filename=&quot;1.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;/&gt;&lt;/span&gt;&lt;figcaption&gt;mesos_container_log_sink&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em; text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;a href=&quot;https://docs.d2iq.com/mesosphere/dcos/1.13/installing/production/advanced-configuration/configuration-reference/?fbclid=IwAR0ZoC7X3DNAICiYnRuWZonYBXrZcl3-Ltmp5d76Q06JlyPjcTTZlbU2bwc#mesos-container-log-sink&quot;&gt;https://docs.d2iq.com/mesosphere/dcos/1.13/installing/production/advanced-configuration/configuration-reference/?fbclid=IwAR0ZoC7X3DNAICiYnRuWZonYBXrZcl3-Ltmp5d76Q06JlyPjcTTZlbU2bwc#mesos-container-log-sink&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1569379546209&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Configuration Reference - D2iQ Docs&quot; data-og-description=&quot;Configuration Parameters This page contains the configuration parameters for both DC/OS Enterprise and DC/OS Open Source. Cluster Setup Networking Parameter Description dcos_net_cluster_identity This feature ensures that the nodes from a cluster have a uni&quot; data-og-host=&quot;docs.d2iq.com&quot; data-og-source-url=&quot;https://docs.d2iq.com/mesosphere/dcos/1.13/installing/production/advanced-configuration/configuration-reference/?fbclid=IwAR0ZoC7X3DNAICiYnRuWZonYBXrZcl3-Ltmp5d76Q06JlyPjcTTZlbU2bwc#mesos-container-log-sink&quot; data-og-url=&quot;https://docs.d2iq.com/mesosphere/dcos/1.13/installing/production/advanced-configuration/configuration-reference/?fbclid=IwAR0ZoC7X3DNAICiYnRuWZonYBXrZcl3-Ltmp5d76Q06JlyPjcTTZlbU2bwc#mesos-container-log-sink&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.d2iq.com/mesosphere/dcos/1.13/installing/production/advanced-configuration/configuration-reference/?fbclid=IwAR0ZoC7X3DNAICiYnRuWZonYBXrZcl3-Ltmp5d76Q06JlyPjcTTZlbU2bwc#mesos-container-log-sink&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.d2iq.com/mesosphere/dcos/1.13/installing/production/advanced-configuration/configuration-reference/?fbclid=IwAR0ZoC7X3DNAICiYnRuWZonYBXrZcl3-Ltmp5d76Q06JlyPjcTTZlbU2bwc#mesos-container-log-sink&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;&gt;Configuration Reference - D2iQ Docs&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Configuration Parameters This page contains the configuration parameters for both DC/OS Enterprise and DC/OS Open Source. Cluster Setup Networking Parameter Description dcos_net_cluster_identity This feature ensures that the nodes from a cluster have a uni&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;docs.d2iq.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;위 설명과 같이 systemd 버전을 업데이트 함으로써 해결 될 수 있으며&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center; font-size: 0.81em;&quot;&gt;&lt;a href=&quot;https://github.com/dcos/dcos-mesos-modules/blob/master/journald/README.md?fbclid=IwAR3uyr0m2shGnWgnUPNSrV7oVbBeJVKvYc1gjf7RSp8OZMkK3LomnsdsHmo&quot;&gt;https://github.com/dcos/dcos-mesos-modules/blob/master/journald/README.md?fbclid=IwAR3uyr0m2shGnWgnUPNSrV7oVbBeJVKvYc1gjf7RSp8OZMkK3LomnsdsHmo&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1569379713198&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;object&quot; data-og-title=&quot;dcos/dcos-mesos-modules&quot; data-og-description=&quot;Mesos Modules used in DC/OS. Contribute to dcos/dcos-mesos-modules development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/dcos/dcos-mesos-modules/blob/master/journald/README.md?fbclid=IwAR3uyr0m2shGnWgnUPNSrV7oVbBeJVKvYc1gjf7RSp8OZMkK3LomnsdsHmo&quot; data-og-url=&quot;https://github.com/dcos/dcos-mesos-modules&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/EjzpU/hyCYdUmZ3y/GzhhZaGeRlteS3EKltsF81/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400&quot;&gt;&lt;a href=&quot;https://github.com/dcos/dcos-mesos-modules&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/dcos/dcos-mesos-modules/blob/master/journald/README.md?fbclid=IwAR3uyr0m2shGnWgnUPNSrV7oVbBeJVKvYc1gjf7RSp8OZMkK3LomnsdsHmo&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/EjzpU/hyCYdUmZ3y/GzhhZaGeRlteS3EKltsF81/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;dcos/dcos-mesos-modules&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Mesos Modules used in DC/OS. Contribute to dcos/dcos-mesos-modules development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;모듈 변경으로도 방법을 회피 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;제가 설명한 것과 같이 dcos.conf 를 삭제함으로써 DC/OS log API에서 로그를 받지 못하는 부분이 발생 할 수도 있을 것 같은데 해당 부분은 직접 판단하시고 결정하시면 될 것 같습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left; font-size: 0.87em;&quot;&gt;추가 조언을 해주신 민영근님에게 감사드립니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>업무 기록/Cloud Native</category>
      <category>d2iq</category>
      <category>dcos</category>
      <category>dcos performance</category>
      <category>dcos performance issue</category>
      <category>dcos 성능</category>
      <category>dcos 성능 문제</category>
      <category>dcos 성능 이슈</category>
      <category>journald</category>
      <category>mesosphere</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/193</guid>
      <comments>https://mslee89.tistory.com/193#entry193comment</comments>
      <pubDate>Wed, 11 Sep 2019 12:43:15 +0900</pubDate>
    </item>
    <item>
      <title>서버에서 이유없이 ssh / su 이 느릴 때</title>
      <link>https://mslee89.tistory.com/192</link>
      <description>&lt;p&gt;※ 해당 문제는 CentOS 7 에서 발생한 문제이고, 다른 버전에서도 동일한 문제가 발생 될 수 있으며 아래 명령어는 CentOS 7 기준으로 작성했습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;middot; 현상&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;개발자로부터 Ansible을 통해 여러 서버에 작업을 하는데, 하나의 서버에서만 ssh 연결이 timeout이 발생하며 작동되지 않는다고 제보 받음&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;middot; 문제 확인&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Ansible 서버에서 직접 ssh 로 접근 했을 때 오랜 시간의 지연이 발생했고 접근 후 su 명령어 또한 지연이 발생했다.&lt;/p&gt;
&lt;p&gt;일단 Ansible 문제는 아니라고 판단을 했고 서버 리소스를 확인 했을 때 자원은 충분했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;서비스 중인 서버이므로 부하가 가지 않을 정도로 CPU, 메모리, 디스크 등 성능 테스트를 했을 때 문제가 없었으며 물리적인 소모품 또한 정상이였다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그렇다면 왜 느릴까? 생각하던 도중 ssh / su 는 모두 로그인과 관련된 내용이다.&lt;/p&gt;
&lt;p&gt;아마 PAM 설정에 문제가 있을까 확인을 해봤지만, 다른 서버와 특별한 점을 찾지 못했고.. /var/log/message 를 확인했지만 이상 로그는 없었다. (실제로 존재했지만 너무 많은 메시지로 제대로 보질 못했다.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;커널 수준에서 어떤 부분이 문제가 있는지 확인하기 위해 strace ssh &amp;lt;대상 서버 IP&amp;gt; 를 입력했고, 특정 메시지에서 오랫동안 머무는 것을 확인 할 수 있었다.&lt;/p&gt;
&lt;pre id=&quot;code_1568170568315&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;debug1: pledge: network&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위와 같은 내용을 확인했을 때 어떤 문제인지 정확히 판단하기 힘들었고, 해당 메시지를 구글링 했을 때 아래와 같은 내용을 확인했었다.&lt;/p&gt;
&lt;pre id=&quot;code_1568170612129&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Connection to one of my servers using ssh takes more than 20 seconds to initiate.
This is not related to LAN or WAN conditions, since connection to itself takes the same (ssh localhost). After connection is finally establised, it is super fast to interract with the server.
Using -vvv shows that the connection is stuck after saying &quot;pledge: network&quot;. At this point, authentication (here using key) is already done, as visible here :
...
debug1: Authentication succeeded (publickey).
Authenticated to myserver.mydomain.com ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
(...stuck here for 15 to 25 seconds...)
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
...
Server is Ubuntu 16.04. It already happened to me in the past with another server (was Ubuntu 12.04) , nerver found the solution and the problem disapeared after a while...
sshd_config is the default one provided by Ubuntu.
So far I have tried :
	&amp;bull; using -o GSSAPIAuthentication=no in the ssh command
	&amp;bull; using password instead of a key
	&amp;bull; using UsePrivilegeSeparation no instead of yes, in sshd_config
----------------------------------------------------------------------------------------------
This is probably an issue with&amp;nbsp;D-Bus&amp;nbsp;and&amp;nbsp;systemd. If the&amp;nbsp;dbus&amp;nbsp;service is restarted for some reason, you will also need to restart&amp;nbsp;systemd-logind.

You can check if this is the issue by opening the ssh daemon log (on Ubuntu it should be&amp;nbsp;/var/log/auth.log) and check if it has these lines:
sshd[2721]: pam_systemd(sshd:session): Failed to create session: Connection timed out

If yes, just restart&amp;nbsp;systemd-logind&amp;nbsp;service:
systemctl restart systemd-logind

I had this same issue on CentOS 7, because the&amp;nbsp;messagebus&amp;nbsp;was restarted (which is how the&amp;nbsp;D-Bus&amp;nbsp;service is called on CentOS).&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;동일한 문제를 가진 내용이였고, 답변은 D-Bus 와 systemd에 이슈가 있으며 어떤 이유로 dbus 서비스가 재시작이 될 경우 systemd-logind 서비스를 재시작을 해줘야 된다는 내용이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;일단 저널 명령어로 통해 확인했을 때 아래와 같은 메시지를 확인 할 수 있었다.&lt;/p&gt;
&lt;pre id=&quot;code_1568170759896&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[root@seob log]#journalctl  -u dbus
Sep 10 15:28:07 seob systemd[1]: dbus.service failed.
Sep 10 15:28:14 seob systemd[1]: Started D-Bus System Message Bus.
Sep 10 15:28:14 seob dbus[22475]: [system] Activating systemd to hand-off: service name='org.freedesktop.login1' unit='dbus-org.freedesktop.login1.service'
Sep 10 15:28:14 seob dbus[22475]: [system] Successfully activated service 'org.freedesktop.systemd1'
Sep 10 15:28:39 seob dbus[22475]: [system] Failed to activate service 'org.freedesktop.login1': timed out
Sep 10 15:28:39 seob dbus[22475]: [system] Activating via systemd: service name='org.freedesktop.login1' unit='dbus-org.freedesktop.login1.service'

[root@seob log]#journalctl -u systemd-logind   
Sep 10 16:01:48 seob systemd-logind[12775]: Failed to abandon session scope: Transport endpoint is not connected&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;09월 10일 15:28분에 dbus 서비스가 재시작이 되었고 이에 따라 timed out이 발생한 것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;middot; 문제 해결&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;문제 해결은 간단했다. 구글링 했던 답변처럼 systemd-logind만 재시작해주면 되는 모든게 해결이 되었다.&lt;/p&gt;
&lt;pre id=&quot;code_1568170855664&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;systemctl restart systemd-logind &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이후 ssh, su 접근 시 평소와 동일한 속도로 지연없이 접근되는 것을 확인했다.&lt;/p&gt;
&lt;p&gt;또한 systemd-logind 은 로그인과 관련된 데몬으로 서비스 중인 서버에서 login 관련 서비스를 실시간으로 사용하지 않는다면 언제든지 구동해도 문제는 없다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;middot; 마무리&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;무엇보다 동일한 문제 재발방지를 위해 확인을 했지만 개발자에게 확인했을 때 dd 명령어로 성능 테스트를 했었다고 답변을 받았다. 동일한 명령어로 실행했지만 dbus 서비스가 failed 되는 현상은 발생하지 않았고 서비스에 치명적인 문제는 아니라 일단 넘겼다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;혹시 이와 비슷한 내용으로 어떤 원인으로 dbus 서비스가 failed 되었는지 아시는 분이 있다면.. 답변을 해주시길 바란다.&lt;/p&gt;</description>
      <category>업무 기록/기본</category>
      <category>Ansible</category>
      <category>dbus</category>
      <category>messagebus</category>
      <category>ssh</category>
      <category>Su</category>
      <category>systemd-logind</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/192</guid>
      <comments>https://mslee89.tistory.com/192#entry192comment</comments>
      <pubDate>Wed, 11 Sep 2019 12:03:27 +0900</pubDate>
    </item>
    <item>
      <title>ZooKeeper Clustering 설치</title>
      <link>https://mslee89.tistory.com/188</link>
      <description>&lt;p style=&quot;margin-left: 2em; text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 300px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2607A64258B2AFC832&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2607A64258B2AFC832&quot; width=&quot;300&quot; height=&quot;112&quot; filename=&quot;무제-1 복사.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em; text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이번 포스팅에서는 ZooKeeper의 클러스터링을 위해 구축 할 예정입니다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ZooKeeper은 싱글로도 충분히 동작 할 수 있지만, 개발용에나 쓰이지만, 상용에서는 클러스터링으로 사용됩니다.&lt;/p&gt;&lt;p&gt;또한 ZooKeeper은 분산 작업을 제어하기 때문에 ZooKeeper가 중단 될 경우 ZooKeeper에 의존하는 서비스는 영향을 받습니다.&lt;/p&gt;&lt;p&gt;이러한 이유로 ZooKeeper은 안정성이 보장되어야 하며, 여러 ZooKeeper를 클러스터링하여 고가용성을 제공 할 수 있습니다.&lt;/p&gt;&lt;p&gt;이것을 ZooKeeper 앙상블(Ensemble)이라고 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ZooKeeper의 앙상블은 과반수가 동작하면 사용이 가능하며 과반수를 필요하기 때문에 홀수 구성을 추천하고 있습니다.&lt;/p&gt;&lt;p&gt;예를 들자면, 3대에서 ZooKeeper를 구성 할 때 1대의 고장을 허용합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;·&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;시스템 정보&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;구성 : 서버 3대&lt;/p&gt;&lt;p&gt;OS : Centos 7.3.1611&lt;/p&gt;&lt;p&gt;ZooKeeper의 버전 : 3.4.9&lt;/p&gt;&lt;p&gt;Java 버전 : 1.8.0_121&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;·&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;요구 사항&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;- Java 1.7 or higher&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;· 설치&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;아래 설치는&amp;nbsp;https://zookeeper.apache.org/doc/r3.4.9/zookeeperAdmin.html#sc_zkMulitServerSetup 설치와 동일합니다.&lt;/p&gt;&lt;p&gt;또한, 최소 구성 및 설치로 진행됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. Java JDK 설치.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;일반적으로 OS 설치 시 Java가 기본적으로 설치가 되어있을 수도 있지만, 저 같은 경우에는 최소 설치로 직접 다운받아 설치해야합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;URL :&amp;nbsp;&lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot;&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;현재 작성된 기준으로 최신 버전인 1.8.0_121 을 다운받아 RPM으로 설치합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;2. Java Heap Size 설정.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Swapping(스와핑)을 방지하는 것이 매우 중요하며 ZooKeeper의 성능을 심각하게 저하시킬 수 있습니다.&lt;/p&gt;&lt;p&gt;올바른 값을 설정하기 위해서는 Load Tests를 사용하고, Swap 할 수 있는 사용제한보다 훨씬 낮은지 확인해야합니다.&lt;/p&gt;&lt;p&gt;일반적으로 4GB의 Machine에서 최대 3GB를 Heap을 사용합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 이번 설치 포스팅에서는 Java Heap Size 설정은 생략합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;3. ZooKeeper 계정 생성.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;일반적으로 모든 서비스는 보안을 위하여 Root가 아닌 일반 사용자 계정으로 생성하여 사용하면 좋습니다.&lt;/p&gt;&lt;p&gt;이 부분은 필수적이지 않지만, 습관하는 것이 중요합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;useradd&amp;nbsp;hdfs&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;passwd&amp;nbsp;hdfs&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;4. ZooKeeper Server 패키지 설치.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;아래 명령어로 다운받을 수 있습니다. 현재 최신 버전이자 안정한 버전인 3.4.9 버전을 다운 받습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;sudo&amp;nbsp;wget&amp;nbsp;http:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;apache.mirror.cdnetworks.com&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9.&lt;/span&gt;tar.gz&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;tar&amp;nbsp;xvfzp&amp;nbsp;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9.&lt;/span&gt;tar.gz&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right; margin-top:-13px; margin-right:5px; font-size:9px; font-style:italic&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: rgb(229, 229, 229);&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;5. ZooKeeper Configuration&lt;/b&gt;&lt;/p&gt;&lt;p&gt;3대의 서버 호스트 네임은 s-seob-1, s-seob-2, s-seob-3 입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;overflow: auto; position: relative !important;&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;5&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;6&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;7&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;8&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;9&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;10&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;cd&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;conf&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;cp&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;rfp&amp;nbsp;zoo_sample.cfg&amp;nbsp;zoo.cfg&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;vi&amp;nbsp;zoo.cfg&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;tickTime&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2000&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;initLimit&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;10&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;syncLimit&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;5&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;dataDir&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;clientPort&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;server.&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;=s-seob-1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2888&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;3888&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;server.&lt;span style=&quot;color:#0099cc&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;=s-seob-2&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2888&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;3888&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;server.&lt;span style=&quot;color:#0099cc&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(167, 29, 93);&quot;&gt;s-seob-3&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2888&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;3888&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Configuration Parameters에 대한 설명은 아래 URL에서 확인 할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;&quot; lang=&quot;en-US&quot;&gt;URL : &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;&quot; lang=&quot;ko&quot;&gt;&lt;a href=&quot;https://zookeeper.apache.org/doc/r3.4.9/zookeeperAdmin.html#sc_configuration&quot;&gt;https://zookeeper.apache.org/doc/r3.4.9/zookeeperAdmin.html#sc_configuration&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;mkdir&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;p&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;cd&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;touch&amp;nbsp;myid&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;&lt;span style=&quot;color:#066de2&quot;&gt;echo&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;&amp;lt;&lt;/span&gt;server.id&lt;span style=&quot;color:#a71d5d&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;myid&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;chown&amp;nbsp;hdfs:hdfs&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;모든 서버에서 다른 서버에 있는 ensemble을 알아야 합니다. 이 작업은 &lt;b&gt;server.id=host:port:port&lt;/b&gt; 형식을 사용하면 됩니다.&lt;/p&gt;&lt;p&gt;또한, zoo.cfg 파일에 작성된 dataDir에 지정된 폴더에 각 서버마다 myid라는 파일을 작성하여 server.id 를 작성하면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;6. myid 구성에 대한 자세한 설명.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;myid 파일은 해당 머신의 ID 텍스트만 포함하여 단일 행으로 구성되어야 합니다. 따라서 s-seob-1 서버에서의 myid는 &quot;1&quot;만 포함하고 다른 것은 포함하지 않습니다.&lt;/p&gt;&lt;p&gt;ID는 ensemble에 고유하며 1에서 255까지 사용이 가능합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;구성에 예를 들자면 s-seob-1 서버에서는 /data/zookeeper/data/myid에 1이라는 값이 들어가있으면 되며, s-seob-2 서버에서는 myid에 2 라는 값이 들어가있으면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;7. 시작&lt;/b&gt;&lt;/p&gt;&lt;p&gt;모든 구성 정보가 완료되었다면, ZooKeeper Server를 실행 할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;cd&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;zkServer.sh&amp;nbsp;start&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;· ZooKeeper 검증&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;정말 ZooKeeper가 정상적으로 동작하고 있는지 검증 할 차례 입니다. 검증 방법은 아래와 같으며 많은 유형이 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;- jsp Command를 활용한 검증&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;jps&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;18407&lt;/span&gt;&amp;nbsp;QuorumPeerMain&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;18460&lt;/span&gt;&amp;nbsp;Jps&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Java가 설치 되어있다면 jps 명령어를 사용 할 수 있습니다. 위와 같이 QuroumPeerMain 프로세스가 동작 중이라면 ZooKeeper가 동작 중입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;- netstat Tool을 활용한 검증&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;5&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;netstat&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;naltop&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;|&lt;/span&gt;&amp;nbsp;grep&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;i&amp;nbsp;listen&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2055&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;:&lt;span style=&quot;color:#a71d5d&quot;&gt;*&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;24638&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;sshd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;off&amp;nbsp;(&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;00&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;)&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;211.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;104.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;171.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;102&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;3888&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:::&lt;span style=&quot;color:#a71d5d&quot;&gt;*&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;21594&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;java&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;off&amp;nbsp;(&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;00&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;)&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;:::&lt;span style=&quot;color:#0099cc&quot;&gt;40214&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:::&lt;span style=&quot;color:#a71d5d&quot;&gt;*&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;21594&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;java&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;off&amp;nbsp;(&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;00&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;)&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;:::&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:::&lt;span style=&quot;color:#a71d5d&quot;&gt;*&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;21594&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;java&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;off&amp;nbsp;(&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;00&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;)&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;tcp6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&amp;nbsp;:::&lt;span style=&quot;color:#0099cc&quot;&gt;2055&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:::&lt;span style=&quot;color:#a71d5d&quot;&gt;*&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;24638&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;sshd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;off&amp;nbsp;(&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;00&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ZooKeeper의 포트인 2181, 3888이 LISTEN 상태인지를 확인 할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;- ZooKeeper Cli를 활용한 검증.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;5&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;6&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;7&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;8&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;9&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;10&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;11&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;12&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;13&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;14&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;15&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;16&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;17&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;18&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;19&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;20&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;21&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;22&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;23&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;24&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;25&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;26&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;27&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;28&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;29&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;30&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;zkCli.sh&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;server&amp;nbsp;127.0.0.1:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;Connecting&amp;nbsp;to&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;036&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:zookeeper.version&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1757313&lt;/span&gt;,&amp;nbsp;built&amp;nbsp;on&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;08&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2016&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;06&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;50&lt;/span&gt;&amp;nbsp;GMT&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;045&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:host.name&lt;span style=&quot;color:#a71d5d&quot;&gt;=s-seob-1&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;045&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:java.version&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;8.&lt;/span&gt;0_121&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;050&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:java.vendor&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;Oracle&amp;nbsp;Corporation&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;051&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:java.home&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;jdk1.&lt;span style=&quot;color:#0099cc&quot;&gt;8.&lt;/span&gt;0_121&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;jre&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;051&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:java.class.path&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;build&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;classes:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;build&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;*&lt;/span&gt;.jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;slf4j&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;log4j12&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;6.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1.&lt;/span&gt;jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;slf4j&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;api&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;6.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1.&lt;/span&gt;jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;netty&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;10.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;5.&lt;/span&gt;Final.jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;log4j&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16.&lt;/span&gt;jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;jline&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;94.&lt;/span&gt;jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9.&lt;/span&gt;jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;src&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;*&lt;/span&gt;.jar:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;conf:&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;051&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:java.library.path&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;packages&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;amd64:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib64:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib64:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib:&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;lib&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;051&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:java.io.tmpdir&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;tmp&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;052&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:java.compiler&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;&amp;lt;&lt;/span&gt;NA&lt;span style=&quot;color:#a71d5d&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;052&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:os.name&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;Linux&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;052&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:os.arch&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;amd64&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;052&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:os.version&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;10.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;514.&lt;/span&gt;el7.x86_64&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;053&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:user.name&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;hdfs&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;053&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:user.home&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;053&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:Environment@&lt;span style=&quot;color:#0099cc&quot;&gt;100&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Client&amp;nbsp;environment:user.dir&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;056&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main:ZooKeeper@&lt;span style=&quot;color:#0099cc&quot;&gt;438&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Initiating&amp;nbsp;client&amp;nbsp;connection,&amp;nbsp;connectString&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;&amp;nbsp;sessionTimeout&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;30000&lt;/span&gt;&amp;nbsp;watcher&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;org.apache.zookeeper.ZooKeeperMain$MyWatcher@446cdf90&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;Welcome&amp;nbsp;to&amp;nbsp;ZooKeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;JLine&amp;nbsp;support&amp;nbsp;is&amp;nbsp;enabled&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;124&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;SendThread(&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;):ClientCnxn$SendThread@&lt;span style=&quot;color:#0099cc&quot;&gt;1032&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Opening&amp;nbsp;socket&amp;nbsp;connection&amp;nbsp;to&amp;nbsp;server&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181.&lt;/span&gt;&amp;nbsp;Will&amp;nbsp;not&amp;nbsp;attempt&amp;nbsp;to&amp;nbsp;authenticate&amp;nbsp;using&amp;nbsp;SASL&amp;nbsp;(unknown&amp;nbsp;error)&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;296&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;SendThread(&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;):ClientCnxn$SendThread@&lt;span style=&quot;color:#0099cc&quot;&gt;876&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Socket&amp;nbsp;connection&amp;nbsp;established&amp;nbsp;to&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;,&amp;nbsp;initiating&amp;nbsp;session&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;[zk:&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;(CONNECTING)&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;2017&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;02&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;23&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;07&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;04&lt;/span&gt;,&lt;span style=&quot;color:#0099cc&quot;&gt;411&lt;/span&gt;&amp;nbsp;[myid:]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;INFO&amp;nbsp;&amp;nbsp;[main&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;SendThread(&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;):ClientCnxn$SendThread@&lt;span style=&quot;color:#0099cc&quot;&gt;1299&lt;/span&gt;]&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&amp;nbsp;Session&amp;nbsp;establishment&amp;nbsp;&lt;span style=&quot;color:#066de2&quot;&gt;complete&lt;/span&gt;&amp;nbsp;on&amp;nbsp;server&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;,&amp;nbsp;sessionid&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;0x25a4a3c41f70000&lt;/span&gt;,&amp;nbsp;negotiated&amp;nbsp;timeout&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;30000&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;WATCHER::&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;WatchedEvent&amp;nbsp;state:SyncConnected&amp;nbsp;type:None&amp;nbsp;path:null&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;ls&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;[zookeeper]&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;[zk:&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;127.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;0.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color:#0099cc&quot;&gt;2181&lt;/span&gt;(CONNECTED)&amp;nbsp;&lt;span style=&quot;color:#0099cc&quot;&gt;1&lt;/span&gt;]&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right; margin-top:-13px; margin-right:5px; font-size:9px; font-style:italic&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: rgb(229, 229, 229);&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;zkCli.sh를 통해 ZooKeeper의 Znode를 확인 할 수 있습니다.&lt;/p&gt;&lt;p&gt;위와 같이 접근하여 ls / 명령어로 ZooKeeper의 Znode를 확인하여 검증 할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;- ZooKeeper Leader와 Follwer 확인&lt;/b&gt;&lt;/p&gt;&lt;p&gt;ZooKeeper의 Ensemble은 Leader와 Follower로 나누어집니다. Leader는 ZooKeeper의 앙상블에서 하나만 존재하게 되며, ZooKeeper가 실행&lt;/p&gt;&lt;p&gt;될 때 선출하게 됩니다.&lt;/p&gt;&lt;p&gt;다음 명령어로 어느 서버가 Leader인지, Follower 인지 구분 할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Leader 일 경우&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;zkServer.sh&amp;nbsp;status&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;ZooKeeper&amp;nbsp;JMX&amp;nbsp;enabled&amp;nbsp;by&amp;nbsp;default&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;Using&amp;nbsp;config:&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;conf&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zoo.cfg&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;Mode:&amp;nbsp;leader&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right; margin-top:-13px; margin-right:5px; font-size:9px; font-style:italic&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: rgb(229, 229, 229);&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Follower 일 경우&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;zkServer.sh&amp;nbsp;status&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;ZooKeeper&amp;nbsp;JMX&amp;nbsp;enabled&amp;nbsp;by&amp;nbsp;default&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;Using&amp;nbsp;config:&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;..&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;conf&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zoo.cfg&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;Mode:&amp;nbsp;follower&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right; margin-top:-13px; margin-right:5px; font-size:9px; font-style:italic&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: rgb(229, 229, 229);&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;· 마무리&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아주 간단하게 ZooKeeper의 설치 및 서비스 시작까지 완료했습니다. 현재까지는 최소한 구성으로 설정했으며 본문에 제공한 URL을 통해 Parameter를 조정하여 자신의 환경에 맞게 적용 할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;중요한 것은 아니지만, bash_profile에 ZooKeeper의 환경 변수를 넣어 어떤 경로에서든 ZooKeeper의 명령어를 실행 할 수 있도록 설정합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;line-height:130%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;5&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;6&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;7&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;8&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;9&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;10&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;11&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;12&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;13&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;14&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;15&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;16&lt;/div&gt;&lt;div style=&quot;line-height:130%&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding: 6px 0px; width: 420px;&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height:130%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;$&amp;nbsp;vi&amp;nbsp;~&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;.bash_profile&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;#&amp;nbsp;.bash_profile&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;#&amp;nbsp;Get&amp;nbsp;the&amp;nbsp;aliases&amp;nbsp;and&amp;nbsp;functions&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;if&lt;/span&gt;&amp;nbsp;[&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;f&amp;nbsp;~&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;.bashrc&amp;nbsp;];&amp;nbsp;&lt;span style=&quot;color:#a71d5d&quot;&gt;then&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&amp;nbsp;~&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;.bashrc&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;#&amp;nbsp;User&amp;nbsp;specific&amp;nbsp;environment&amp;nbsp;and&amp;nbsp;startup&amp;nbsp;programs&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;#&amp;nbsp;Zookeeper&amp;nbsp;Part&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;export&lt;/span&gt;&amp;nbsp;ZOO_LOG_DIR&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;data&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;logs&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;export&lt;/span&gt;&amp;nbsp;ZOOKEEPER_HOME&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;hdfs&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;zookeeper&lt;span style=&quot;color:#a71d5d&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color:#0099cc&quot;&gt;9&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;PATH&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;$PATH:$HOME&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;.&lt;span style=&quot;color:#a71d5d&quot;&gt;local&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin:$HOME&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin:$ZOOKEEPER_HOME&lt;span style=&quot;color:#a71d5d&quot;&gt;/&lt;/span&gt;bin&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:130%&quot;&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;export&lt;/span&gt;&amp;nbsp;PATH&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right; margin-top:-13px; margin-right:5px; font-size:9px; font-style:italic&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: rgb(229, 229, 229);&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align: bottom; padding: 0px 2px 4px 0px; width: 14px;&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color: white;&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: rgb(229, 229, 229); border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>업무 기록/Data Platform</category>
      <category>apache zookeeper</category>
      <category>how to install zookeeper</category>
      <category>zookeeper</category>
      <category>zookeeper 3.4.9</category>
      <category>zookeeper ensemble</category>
      <category>zookeeper 설치</category>
      <category>zookeeper 앙상블</category>
      <category>아파치 주키퍼</category>
      <category>주키퍼</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/188</guid>
      <comments>https://mslee89.tistory.com/188#entry188comment</comments>
      <pubDate>Fri, 24 Feb 2017 20:30:08 +0900</pubDate>
    </item>
    <item>
      <title>[서울 금천구] 백종원의 3대천왕 수제비, 칼국수의 솔직 후기</title>
      <link>https://mslee89.tistory.com/186</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 740px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/254D0934589C43112C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F254D0934589C43112C&quot; width=&quot;740&quot; height=&quot;416&quot; filename=&quot;20161216_163939 복사.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저희 동네에도 유명한 맛집이 있더라구요. 그래서 당장 가기로 마음 먹었죠.&lt;/p&gt;&lt;p&gt;유명한 맛집이기 때문에 처음 갈 때 주말 오후 2시 정도에 갔습니다.&lt;/p&gt;&lt;p&gt;그..근데.. 사람이 너무 많아서 대략 1-2 시간 기다려야겠더라구요.&lt;/p&gt;&lt;p&gt;그리고 다시 평일에 시간이 나서 갔죠. 이번에는 많은 사람은 없었고 대략 10-20분 기다리고 곧바로 착석했습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 740px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2648DF3C589C434B26&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2648DF3C589C434B26&quot; width=&quot;740&quot; height=&quot;416&quot; filename=&quot;20161216_160718.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 740px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/273E8835589C43571B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F273E8835589C43571B&quot; width=&quot;740&quot; height=&quot;416&quot; filename=&quot;20161216_160709.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;기본찬은 배추김치와 단무지 밖에 없고 셀프 입니다.&lt;/p&gt;&lt;p&gt;근데, 배추김치 정말 정말 맵습니다. 엄청 매워서 어린 애들은 절대 못 먹을꺼에요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;얼큰 칼국수 2개를 주문했는데.. 여기서 약간 실망인게 주문 받고 &lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;음식 나오는 시간이 대략 1 시간&lt;/span&gt;&lt;/b&gt; 정도 걸립니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 740px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/241BEA36589C439E01&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F241BEA36589C439E01&quot; width=&quot;740&quot; height=&quot;416&quot; filename=&quot;20161216_163939.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 740px; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25146336589C43A315&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25146336589C43A315&quot; width=&quot;740&quot; height=&quot;416&quot; filename=&quot;20161216_164327.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1 시간의 기다림 끝에 드디어 나의 얼큰칼국수가 나왔습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;내용물은 바지락 듬뿍(진짜 많아요..), 다시마 이렇게 나옵니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 740px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2662C135589C44002B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2662C135589C44002B&quot; width=&quot;740&quot; height=&quot;416&quot; filename=&quot;20161216_165201.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;바지락 한 50개 들어있는 거 같네요. 처음에는 빼먹으려고 하다가 너무 많아서 그냥 버렸습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 740px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2260D634589C44222E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2260D634589C44222E&quot; width=&quot;740&quot; height=&quot;416&quot; filename=&quot;20161216_165205.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래도 완국(?) 했네요. 맛 평가를 하자면, 일반 칼국수와 전혀 다릅니다.&lt;/p&gt;&lt;p&gt;매우 얼큰하면서도 국물이 매우 시원합니다. 시원한 이유는 당연히 바지락이랑 다시마가 들어서 그렇구요.&lt;/p&gt;&lt;p&gt;국물은 매우 걸쭉한 편은 아니에요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다른 얼큰 칼국수와 맛이 다르고, 면 역시 국물의 맛이 깊게 베겨있어서 맛은 매우 좋습니다.&lt;/p&gt;&lt;p&gt;단지, 대기 시간 및 조리 시간 포함해서 최소 1 시간을 기다려서 먹을 자신은 없을 것 같네요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;시간이 넉넉하신 분에게는 추천해드리고 싶어요. 맛 하나는 일품 입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;iframe id=&quot;emap_936147&quot; src=&quot;/proxy/plusmapViewer.php?id=emap_936147&amp;amp;mapGb=V&quot; width=&quot;521&quot; height=&quot;451&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; mapdata=&quot;map_type=TYPE_MAP&amp;map_hybrid=false&amp;idx=1&amp;title=%EC%88%9C%EB%8C%95%EC%9D%B4%EB%84%A4%EC%96%BC%ED%81%B0%EC%88%98%EC%A0%9C%EB%B9%84&amp;addr=%EC%84%9C%EC%9A%B8%20%EA%B8%88%EC%B2%9C%EA%B5%AC%20%EB%8F%85%EC%82%B0%EB%8F%99%20160-17%20&amp;tel=02-852-3670&amp;mapX=477725&amp;mapY=1103580&amp;ifrW=490px&amp;ifrH=362px&amp;addtype=1&amp;map_level=6&amp;rcode=1154563000&amp;docid=&amp;confirmid=16794970&amp;mapWidth=490&amp;mapHeight=362&amp;mapInfo=%7B%22version%22%3A2%2C%22mapWidth%22%3A490%2C%22mapHeight%22%3A362%2C%22mapCenterX%22%3A477725%2C%22mapCenterY%22%3A1103580%2C%22mapLevel%22%3A6%2C%22coordinate%22%3A%22wcongnamul%22%2C%22markInfo%22%3A%5B%7B%22markerType%22%3A%22standPlace%22%2C%22coordinate%22%3A%22wcongnamul%22%2C%22x%22%3A477735%2C%22y%22%3A1103593%2C%22clickable%22%3Atrue%2C%22draggable%22%3Atrue%2C%22icon%22%3A%7B%22width%22%3A35%2C%22height%22%3A56%2C%22offsetX%22%3A17%2C%22offsetY%22%3A56%2C%22src%22%3A%22http%3A%2F%2Ft1.daumcdn.net%2Flocalimg%2Flocalimages%2F07%2F2012%2Fattach%2Fpc_img%2Fico_marker2_150331.png%22%7D%2C%22content%22%3A%22%EC%88%9C%EB%8C%95%EC%9D%B4%EB%84%A4%EC%96%BC%ED%81%B0%EC%88%98%EC%A0%9C%EB%B9%84%22%2C%22confirmid%22%3A16794970%7D%5D%2C%22graphicInfo%22%3A%5B%5D%2C%22roadviewInfo%22%3A%5B%5D%7D&amp;toJSONString=&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>서비의 사생활/맛집과 레시피</category>
      <category>금천구 맛집</category>
      <category>금천구 얼큰수제비</category>
      <category>금천구 얼큰칼국수</category>
      <category>독산동 맛집</category>
      <category>독산동 수제비</category>
      <category>독산동 칼국수</category>
      <category>서울 맛집</category>
      <category>서울 수제비</category>
      <category>서울 칼국수</category>
      <category>순댕이네</category>
      <category>순댕이네얼큰수제비</category>
      <category>순댕이네얼큰칼국수</category>
      <author>Seob</author>
      <guid isPermaLink="true">https://mslee89.tistory.com/186</guid>
      <comments>https://mslee89.tistory.com/186#entry186comment</comments>
      <pubDate>Thu, 9 Feb 2017 19:31:11 +0900</pubDate>
    </item>
  </channel>
</rss>