<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>_zero_.log</title>
        <link>https://velog.io/</link>
        <description>Security Compliance Engineer</description>
        <lastBuildDate>Tue, 14 Mar 2023 05:01:07 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>_zero_.log</title>
            <url>https://velog.velcdn.com/images/_zero_/profile/2474d501-0bc6-4f9e-a18f-a6f9fd9b5715/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. _zero_.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/_zero_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[WSL2 설치 ]]></title>
            <link>https://velog.io/@_zero_/WSL2-%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@_zero_/WSL2-%EC%84%A4%EC%B9%98</guid>
            <pubDate>Tue, 14 Mar 2023 05:01:07 GMT</pubDate>
            <description><![CDATA[<h2 id="1-wsl-설치">1. WSL 설치</h2>
<ul>
<li>OS 버전 확인<ul>
<li>window + R → winver 입력 → <code>20H1</code> 버전 이상인지 확인</li>
</ul>
</li>
</ul>
<ul>
<li>WSL 설치<ul>
<li>cmd에서 명령어 실행</li>
<li><code>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux</code></li>
</ul>
</li>
</ul>
<hr>
<h2 id="2-version2-변환">2. version2 변환</h2>
<ul>
<li>파워쉘 관리자 권한 실행<ul>
<li>명령어 실행</li>
<li><code>dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart</code></li>
<li><code>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</code></li>
</ul>
</li>
</ul>
<ul>
<li>재부팅</li>
</ul>
<ul>
<li>파워쉘 관리자 권한 실행<ul>
<li>명령어 실행</li>
<li><code>wsl --set-default-version 2</code></li>
</ul>
</li>
</ul>
<ul>
<li>윈도우용 리눅스 커널 설치(<a href="https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi">링크</a>)</li>
</ul>
<hr>
<h2 id="3-이미지-다운로드">3. 이미지 다운로드</h2>
<ul>
<li>window + S → microsoft store 입력 → 원하는 리눅스 이미지 검색 → 다운로드</li>
</ul>
<hr>
<h2 id="4-wsl-명령어">4. WSL 명령어</h2>
<ul>
<li>WSL 목록 확인 <code>wsl -l</code></li>
<li>상세 정보 확인 <code>wsl -l -v</code></li>
<li>WSL 종료 <code>wsl -t [wsl_name]</code></li>
</ul>
<hr>
<h2 id="5-참고">5. 참고</h2>
<ol>
<li><a href="https://gaesae.com/161#google_vignette">https://gaesae.com/161#google_vignette</a></li>
<li><a href="https://melonicedlatte.com/2020/07/05/200400.html">https://melonicedlatte.com/2020/07/05/200400.html</a></li>
<li><a href="https://webdir.tistory.com/541">https://webdir.tistory.com/541</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS Private subnet에 ALB 구성]]></title>
            <link>https://velog.io/@_zero_/AWS-Private-subnet%EC%97%90-ALB-%EA%B5%AC%EC%84%B1</link>
            <guid>https://velog.io/@_zero_/AWS-Private-subnet%EC%97%90-ALB-%EA%B5%AC%EC%84%B1</guid>
            <pubDate>Mon, 06 Mar 2023 14:41:49 GMT</pubDate>
            <description><![CDATA[<h2 id="1-구성도">1. 구성도</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/21e8a70a-dd0b-46de-a40d-1f8ed175bccf/image.png" alt=""></p>
<hr>
<h2 id="2-대상-그룹target-group-생성">2. 대상 그룹(Target Group) 생성</h2>
<ul>
<li>EC2 &gt; 대상 그룹 &gt; 대상 그룹 생성<ul>
<li>유형 인스턴스</li>
<li>대상(Private 인스턴스) 선택</li>
<li><img src="https://velog.velcdn.com/images/_zero_/post/7eb6191e-8080-4729-91f6-2c33cc1ebca2/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-alb-생성">3. ALB 생성</h2>
<ul>
<li>EC2 &gt; 로드밸런서 &gt; 로드밸런서 생성<ul>
<li>기본구성<img src="https://velog.velcdn.com/images/_zero_/post/6742b048-e798-453e-8961-6bec586a66f9/image.png" alt=""></li>
<li>네트워크 맵핑<img src="https://velog.velcdn.com/images/_zero_/post/18ebd3c0-9b34-485d-aa10-aadbcdc31510/image.png" alt=""></li>
<li>리스너<img src="https://velog.velcdn.com/images/_zero_/post/a59da24b-db34-4f56-b709-7be4b8a83fa6/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-참고">4. 참고</h2>
<ol>
<li><a href="https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8">https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS Bastion Host 및 NAT Gateway 구성]]></title>
            <link>https://velog.io/@_zero_/AWS-Bastion-Host-%EB%B0%8F-NAT-Gateway-%EA%B5%AC%EC%84%B1</link>
            <guid>https://velog.io/@_zero_/AWS-Bastion-Host-%EB%B0%8F-NAT-Gateway-%EA%B5%AC%EC%84%B1</guid>
            <pubDate>Thu, 02 Mar 2023 15:38:37 GMT</pubDate>
            <description><![CDATA[<h2 id="1-구성도">1. 구성도</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/6fd385ee-eba6-4cf4-b718-8fbfa909cc16/image.png" alt=""></p>
<hr>
<h2 id="2-private-subnet-ec2-생성">2. Private subnet EC2 생성</h2>
<ul>
<li>EC2 &gt; 인스턴스 &gt; 인스턴스 생성<ul>
<li>Bastion Host 접속용 키페어 생성<img src="https://velog.velcdn.com/images/_zero_/post/88bf83ad-4c01-474e-a8ab-959afb2ea17b/image.png" alt=""></li>
<li>Private subnet 설정 및 퍼블릭 IP 비활성화<img src="https://velog.velcdn.com/images/_zero_/post/b55bce8a-9d63-4984-aef1-27583d98fd67/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-private-subnet-ec2-접속">3. Private subnet EC2 접속</h2>
<ul>
<li>Public EC2 접속 후<ul>
<li>Bastion Host 접속용 키페어를 <code>.pem</code> 확장자로 복사</li>
<li>pem 파일 권한 수정 <code>chmod 400 key.pem</code></li>
<li>Private EC2 접속 <code>ssh -i key.pem [user_name]@[private_ec2_ip]</code><img src="https://velog.velcdn.com/images/_zero_/post/f5d6ff63-45ef-4a42-a641-c6583536d116/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-nat-gateway-구성">4. NAT Gateway 구성</h2>
<ul>
<li>VPC &gt; NAT 게이트웨이 &gt; NAT 게이트웨이 생성<ul>
<li>이름, 서브넷, EIP 등 설정<img src="https://velog.velcdn.com/images/_zero_/post/ba80c9e7-4e40-4c05-88f5-09b1c9209173/image.png" alt=""></li>
</ul>
</li>
<li>라우팅 테이블 설정<ul>
<li>Private subnet 라우팅 테이블에 NAT GW 추가<img src="https://velog.velcdn.com/images/_zero_/post/d10705db-2f8f-4ebe-8081-26470088e942/image.png" alt=""></li>
<li>NAT GW 구성 후 Private EC2에서 인터넷 통신 테스트<img src="https://velog.velcdn.com/images/_zero_/post/6d562ee4-1aaa-4bba-bb12-25b8b6954084/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="5-참고">5. 참고</h2>
<ol>
<li><a href="https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8">https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS ALB를 통한 이중화 구성]]></title>
            <link>https://velog.io/@_zero_/AWS-ALB%EB%A5%BC-%ED%86%B5%ED%95%9C-%EC%9D%B4%EC%A4%91%ED%99%94-%EA%B5%AC%EC%84%B1</link>
            <guid>https://velog.io/@_zero_/AWS-ALB%EB%A5%BC-%ED%86%B5%ED%95%9C-%EC%9D%B4%EC%A4%91%ED%99%94-%EA%B5%AC%EC%84%B1</guid>
            <pubDate>Wed, 01 Mar 2023 12:45:33 GMT</pubDate>
            <description><![CDATA[<h2 id="1-구성도">1. 구성도</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/9c9c62d8-d5a1-4fab-b462-fd42fd1d9e87/image.png" alt=""></p>
<hr>
<h2 id="2-target-group-생성">2. Target Group 생성</h2>
<ul>
<li>EC2 &gt; 대상그룹 &gt; 대상그룹 생성<ul>
<li>그룹 세부 정보 지정<img src="https://velog.velcdn.com/images/_zero_/post/d24c2019-35bd-47f2-ac15-c9579a29a174/image.png" alt=""></li>
<li>대상 등록<img src="https://velog.velcdn.com/images/_zero_/post/f0b58b5d-a301-4922-ad84-9d9bdc4d9cb1/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-alb-구성">3. ALB 구성</h2>
<ul>
<li>EC2 &gt; 로드밸런서 &gt; 로드밸런서 생성<img src="https://velog.velcdn.com/images/_zero_/post/75aef435-3090-4f53-93c0-faa8d050060c/image.png" alt=""></li>
<li>ALB 생성 확인<img src="https://velog.velcdn.com/images/_zero_/post/0e9f4d6d-2115-431d-9c50-ef75fd0d8e77/image.png" alt=""></li>
<li>ALB 작동 확인<img src="https://velog.velcdn.com/images/_zero_/post/044267ec-7b57-4c51-b4b3-da044da5c5ee/image.png" alt=""></li>
</ul>
<hr>
<h2 id="4-참고">4. 참고</h2>
<ol>
<li><a href="https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8">https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS EFS 파일시스템 구성]]></title>
            <link>https://velog.io/@_zero_/AWS-EFS-%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%84%B1</link>
            <guid>https://velog.io/@_zero_/AWS-EFS-%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%84%B1</guid>
            <pubDate>Wed, 01 Mar 2023 11:56:44 GMT</pubDate>
            <description><![CDATA[<h2 id="1-구성도">1. 구성도</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/f29375b6-99a5-4bc4-9822-414d9cea4595/image.png" alt=""></p>
<hr>
<h2 id="2-efs-통신을-위한-sg-생성">2. EFS 통신을 위한 SG 생성</h2>
<ul>
<li>EC2 &gt; 보안 그룹 &gt; EFS용 SG 생성(인스턴스에 적용된 SG를 인바운드 SRC로 설정)<img src="https://velog.velcdn.com/images/_zero_/post/e0fb999d-3ba3-471f-8d58-50df7931b02b/image.png" alt=""></li>
</ul>
<hr>
<h2 id="3-efs-구성">3. EFS 구성</h2>
<ul>
<li>EFS &gt; 파일 시스템 생성 &gt; 사용자 지정<ul>
<li>파일 시스템 설정(사용 목적에 따라 옵션을 다르게 설정 가능)<img src="https://velog.velcdn.com/images/_zero_/post/7b3decdf-649a-4b3d-b7a1-5887db2fafc9/image.png" alt=""></li>
<li>네트워크 액세스(퍼블릭 서브넷과 EFS SG 설정)<img src="https://velog.velcdn.com/images/_zero_/post/4afd6c90-671e-47db-b720-34693af7d664/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-인스턴스에-efs-마운트">4. 인스턴스에 EFS 마운트</h2>
<ul>
<li>인스턴스 설정<ul>
<li>EFS 유틸 설치
<code>yum install amazon-efs-utils -y</code></li>
<li>EFS 마운트 경로에 디렉터리 생성
<code>mkdir /var/www/html/efs</code></li>
</ul>
</li>
<li>EFS 연결 <ul>
<li>DNS를 통한 탑재 &gt; EFS 탑재 핼퍼 복사<img src="https://velog.velcdn.com/images/_zero_/post/17f1a29a-ff06-494e-bb5d-3b777cf64fab/image.png" alt=""></li>
<li>인스턴스에서 명령어 실행<img src="https://velog.velcdn.com/images/_zero_/post/d99fafd2-1e49-4298-9d23-c7e54a9888de/image.png" alt=""></li>
</ul>
</li>
<li>EFS 작동 테스트<ul>
<li>파일 다운<img src="https://velog.velcdn.com/images/_zero_/post/d396d6a8-7655-4310-80b7-dde6dac0efa9/image.png" alt=""></li>
<li>브라우저 접근 확인<img src="https://velog.velcdn.com/images/_zero_/post/3ae8a325-3601-4cdd-85f3-32be3a179492/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="5-efs-작동-확인">5. EFS 작동 확인</h2>
<ul>
<li>다른 인스턴스에 동일한 EFS 마운트</li>
<li>앞서 다운받은 파일이 존재하는지 확인</li>
</ul>
<hr>
<h2 id="6-참고">6. 참고</h2>
<ol>
<li><a href="https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8">https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS 커스텀 AMI 생성]]></title>
            <link>https://velog.io/@_zero_/AWS-%EC%BB%A4%EC%8A%A4%ED%85%80-AMI-%EC%83%9D%EC%84%B1</link>
            <guid>https://velog.io/@_zero_/AWS-%EC%BB%A4%EC%8A%A4%ED%85%80-AMI-%EC%83%9D%EC%84%B1</guid>
            <pubDate>Wed, 01 Mar 2023 09:02:36 GMT</pubDate>
            <description><![CDATA[<h2 id="1-커스텀-ami-생성">1. 커스텀 AMI 생성</h2>
<ul>
<li>EC2 &gt; 인스턴스 &gt; AMI를 생성할 인스턴스 선택 &gt; 작업 &gt; 이미지 및 템플릿 &gt; 이미지 생성<img src="https://velog.velcdn.com/images/_zero_/post/a02b7459-efd0-40ad-887d-2457f89a83cf/image.png" alt=""></li>
<li>이미지 정보 설정<img src="https://velog.velcdn.com/images/_zero_/post/964abe3e-2940-40a0-be00-449831a8a786/image.png" alt=""></li>
</ul>
<hr>
<h2 id="2-커스텀-ami를-활용한-인스턴스-배포">2. 커스텀 AMI를 활용한 인스턴스 배포</h2>
<ul>
<li>인스턴스 생성 시 커스텀 AMI 선택<img src="https://velog.velcdn.com/images/_zero_/post/c93ad101-84d6-4fe1-b759-8f7cf5f26c9e/image.png" alt=""></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS에 APM 웹서버 구성]]></title>
            <link>https://velog.io/@_zero_/AWS%EC%97%90-APM-%EC%9B%B9%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%84%B1</link>
            <guid>https://velog.io/@_zero_/AWS%EC%97%90-APM-%EC%9B%B9%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%84%B1</guid>
            <pubDate>Wed, 01 Mar 2023 08:44:01 GMT</pubDate>
            <description><![CDATA[<h2 id="1-구성도">1. 구성도</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/2501671c-7ecb-4c24-adb0-f9c7921290ec/image.png" alt=""></p>
<hr>
<h2 id="2-인스턴스-배포">2. 인스턴스 배포</h2>
<ul>
<li><p>EC2 &gt; 인스턴스 &gt; 인스턴스 시작</p>
<ul>
<li>인스턴스 이름 설정<img src="https://velog.velcdn.com/images/_zero_/post/6bcd56bb-9e5c-4782-9912-16d7de3dcf3d/image.png" alt=""></li>
<li>AMI 설정<img src="https://velog.velcdn.com/images/_zero_/post/57f69887-0cbc-4bf2-84db-8dc6ba080f76/image.png" alt=""></li>
<li>인스턴스 유형 설정<img src="https://velog.velcdn.com/images/_zero_/post/a48a4ad4-0c98-4cce-9a51-4c51a5121eae/image.png" alt=""></li>
<li>키 페어 설정(기존에 사용하던 키 페어가 없을 경우 생성)<img src="https://velog.velcdn.com/images/_zero_/post/f1fd80ea-c5dd-443f-b743-15fcd9efc72e/image.png" alt=""></li>
<li>네트워크 설정<img src="https://velog.velcdn.com/images/_zero_/post/98fade47-fa86-47f7-970b-c2566596a1b4/image.png" alt=""></li>
<li>SG 설정<img src="https://velog.velcdn.com/images/_zero_/post/f150cb11-6427-4820-8854-6500052754de/image.png" alt=""></li>
<li>스토리지 설정<img src="https://velog.velcdn.com/images/_zero_/post/e022f2ce-952f-4f5b-a38e-e545b4c8772b/image.png" alt=""></li>
<li>사용자 데이터 설정(아래 배시 입력)<pre><code>    #!/bin/bash
    yum update -y
    amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
    yum install -y httpd mariadb-server
    systemctl start httpd
    systemctl enable httpd
    usermod -a -G apache ec2-user
    chown -R ec2-user:apache /var/www
    chmod 2775 /var/www
    find /var/www -type d -exec chmod 2775 {} \;
    find /var/www -type f -exec chmod 0664 {} \;</code></pre></li>
</ul>
</li>
<li><p>Elastic IP 부여</p>
<ul>
<li>탄력적 IP &gt; 탄력적 IP 주소 할당 &gt; 할당<img src="https://velog.velcdn.com/images/_zero_/post/6b6eb392-316c-485b-8e26-89a078eceffd/image.png" alt=""></li>
<li>EIP 선택 &gt; 작업 &gt; EIP 주소 연결 &gt; 인스턴스 설정 &gt; 연결<img src="https://velog.velcdn.com/images/_zero_/post/8e8de703-e6ff-4598-b906-6655bbb70e46/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-인스턴스-접속">3. 인스턴스 접속</h2>
<ul>
<li>putty, xshell 등 터미널 도구를 활용해 인스턴스의 EIP로 접속<img src="https://velog.velcdn.com/images/_zero_/post/c0cb7efd-99bd-4bc3-9f1e-972207d37a4b/image.png" alt=""></li>
</ul>
<hr>
<h2 id="4-웹서버-접근">4. 웹서버 접근</h2>
<ul>
<li>브라우저에서 인스턴스의 EIP로 정상 접근 확인<img src="https://velog.velcdn.com/images/_zero_/post/2451d3f4-5fcc-4304-ba4b-3cbe9d460faf/image.png" alt=""></li>
</ul>
<hr>
<h2 id="5-참고">5. 참고</h2>
<ol>
<li><a href="https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8">https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[1분만에 AWS 기본 네트워크 구성]]></title>
            <link>https://velog.io/@_zero_/1%EB%B6%84%EB%A7%8C%EC%97%90-AWS-%EA%B8%B0%EB%B3%B8-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%84%B1</link>
            <guid>https://velog.io/@_zero_/1%EB%B6%84%EB%A7%8C%EC%97%90-AWS-%EA%B8%B0%EB%B3%B8-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%84%B1</guid>
            <pubDate>Wed, 01 Mar 2023 08:01:22 GMT</pubDate>
            <description><![CDATA[<h2 id="1-구성도">1. 구성도</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/07bd7ae5-5769-4d25-b6c3-da339522ced0/image.png" alt=""></p>
<hr>
<h2 id="2-vpc--subnet--internet-gateway--route-table-생성">2. VPC / Subnet / Internet Gateway / Route Table 생성</h2>
<ul>
<li>VPC &gt; VPC 생성 &gt; <code>VPC 등</code> 선택 <ul>
<li>VPC 설정 입력<img src="https://velog.velcdn.com/images/_zero_/post/4d5590c9-fd48-46b2-bfca-27b72ad4b3ec/image.png" alt=""></li>
<li>AZ 설정 입력<img src="https://velog.velcdn.com/images/_zero_/post/d0cebc66-0cf4-43de-9bba-56f07c725e96/image.png" alt=""></li>
<li>서브넷 설정 입력<img src="https://velog.velcdn.com/images/_zero_/post/41e8ccb9-7f0c-4bf8-876d-c8e8e9d3726f/image.png" alt=""></li>
<li>DNS 설정 <img src="https://velog.velcdn.com/images/_zero_/post/5119958f-49fb-41a1-b240-2fe5b9c41e08/image.png" alt=""></li>
<li>설정 결과 확인<img src="https://velog.velcdn.com/images/_zero_/post/5cfb9ee9-6d89-4c70-be01-000bdd58f024/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-참고">3. 참고</h2>
<ol>
<li><a href="https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8">https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[S3와 CloudFront를 활용한 정적 웹사이트 호스팅]]></title>
            <link>https://velog.io/@_zero_/S3%EC%99%80-CloudFront%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%A0%95%EC%A0%81-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%ED%98%B8%EC%8A%A4%ED%8C%85</link>
            <guid>https://velog.io/@_zero_/S3%EC%99%80-CloudFront%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%A0%95%EC%A0%81-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%ED%98%B8%EC%8A%A4%ED%8C%85</guid>
            <pubDate>Wed, 01 Mar 2023 06:47:34 GMT</pubDate>
            <description><![CDATA[<h2 id="1-구성도">1. 구성도</h2>
<h4 id="11-s3를-활용한-구성">1.1. S3를 활용한 구성</h4>
<p><img src="https://velog.velcdn.com/images/_zero_/post/62abfd9b-25b6-449f-b73b-61ee77a78c49/image.png" alt=""></p>
<h4 id="12-s3--cloudfront를-활용한-구성">1.2. S3 + CloudFront를 활용한 구성</h4>
<p><img src="https://velog.velcdn.com/images/_zero_/post/b7cf445f-30e7-46bf-a415-2331cf2a45a7/image.png" alt=""></p>
<hr>
<h2 id="2-s3-정적-웹사이트-구성">2. S3 정적 웹사이트 구성</h2>
<ul>
<li><p>S3 생성</p>
<ul>
<li>S3 &gt; 버킷 만들기 &gt; 버킷 이름과 리전 설정 &gt; 버킷 만들기(속도 테스트를 위해 대한민국과 지리적으로 먼 임의의 해외 리전 선택)<img src="https://velog.velcdn.com/images/_zero_/post/948a4291-c391-4a87-95ed-b9504bd441aa/image.png" alt=""></li>
<li>생성한 버킷에 파일 업로드<img src="https://velog.velcdn.com/images/_zero_/post/ff8f634f-bb5a-439d-b8ac-2056d05ed674/image.png" alt=""></li>
</ul>
</li>
<li><p>S3 호스팅 기능 활성화</p>
<ul>
<li>S3 &gt; 속성 &gt; <code>정적 웹 사이트 호스팅</code> 편집 &gt; <code>활성화</code> &gt; 인덱스 문서 설정 &gt; 변경사항 저장<img src="https://velog.velcdn.com/images/_zero_/post/d4d851c4-72d2-429c-80a1-b5ce27a673d1/image.png" alt=""></li>
<li>버킷 엔드포인트로 접근 시 403 확인<img src="https://velog.velcdn.com/images/_zero_/post/8202cf12-c335-47ca-84b8-0d7db733e649/image.png" alt=""></li>
</ul>
</li>
<li><p>버킷 접근권한 설정</p>
<ul>
<li>S3 &gt; 권한 &gt; <code>퍼블릭 액세스 차단(버킷 설정)</code> 편집 &gt; <code>모든 퍼블릭 액세스 차단</code> 체크 해제 &gt; 변경 사항 저장<img src="https://velog.velcdn.com/images/_zero_/post/dd73dfd2-1f0e-44ae-9f24-1d7bd3f9b478/image.png" alt=""></li>
</ul>
</li>
<li><p>오브젝트 접근권한 설정</p>
<ul>
<li>S3 &gt; 권한 &gt; <code>버킷 정책</code> 편집 &gt; 아래 정책 붙여넣기 &gt; 변경 사항 저장<pre><code>{
&quot;Id&quot;: &quot;Policy1677651198477&quot;,
&quot;Version&quot;: &quot;2012-10-17&quot;,
&quot;Statement&quot;: [
{
  &quot;Sid&quot;: &quot;Stmt1677651196313&quot;,
  &quot;Action&quot;: [
    &quot;s3:GetObject&quot;
  ],
  &quot;Effect&quot;: &quot;Allow&quot;,
  &quot;Resource&quot;: &quot;버킷 ARN 입력/*&quot;,
  &quot;Principal&quot;: &quot;*&quot;
}
]
}</code></pre></li>
<li>버킷 엔드포인트 정상 접근 확인<img src="https://velog.velcdn.com/images/_zero_/post/9b513fe3-ef00-43b3-acfd-b93f26cd3eba/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-cloudfront-추가-구성">3. CloudFront 추가 구성</h2>
<ul>
<li>CloudFront 생성<ul>
<li>CloudFront &gt; CloudFront 배포 생성 &gt; <code>원본 도메인</code>에 정적 호스팅용 버킷 선택 &gt; 웹 사이트 엔드포인트 사용 &gt; 배포 생성<img src="https://velog.velcdn.com/images/_zero_/post/cdc62a8c-aad8-4b1d-b7b5-0e49c89c4462/image.png" alt=""></li>
<li>배포 도메인을 통해 접근 확인<img src="https://velog.velcdn.com/images/_zero_/post/55d0d91b-4f4d-46d8-aa60-f641b0c1e002/image.png" alt=""></li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-s3-vs-cloudfront-속도-비교">4. S3 vs CloudFront 속도 비교</h2>
<ul>
<li>S3
<img src="https://velog.velcdn.com/images/_zero_/post/ba92229c-af22-49ec-8136-a3e368aa787d/image.png" alt=""><ul>
<li>S3로만 서빙할 경우 5초 ~ 9초 소요</li>
</ul>
</li>
</ul>
<ul>
<li>CloudFront
<img src="https://velog.velcdn.com/images/_zero_/post/3274d804-f9e0-49f4-aea1-2b33db690bf4/image.png" alt=""><ul>
<li>CloudFront를 구성하는 경우 1초 ~ 2초 소요</li>
</ul>
</li>
</ul>
<hr>
<h2 id="5-참고">5. 참고</h2>
<ol>
<li><a href="https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8">https://www.inflearn.com/course/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 Blue·Green / Canary 배포 방법]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-BlueGreen-Canary-%EB%B0%B0%ED%8F%AC-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-BlueGreen-Canary-%EB%B0%B0%ED%8F%AC-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Thu, 02 Feb 2023 16:09:49 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>Blue·Green 및 Canary 배포 전략에 대한 개념은 앞서 작성한 <a href="https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EB%B0%B0%ED%8F%AC-%EC%A0%84%EB%9E%B5RollingUpdate-BlueGreen-Canary-%EB%B0%8F-%EB%A1%A4%EB%B0%B1Rollback-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%84%A4%EC%A0%95">글</a> 참고</li>
<li><code>Blue·Green 배포</code> : Blue 리소스를 구성하고 Selector로 서비스와 맵핑한 상태에서 Green 리소스를 구성하고 서비스의 Selector를 Green으로 변경</li>
<li><code>Canary 배포</code> : v1과 v2 리소스를 구성하고 두 리소스를 Selector로 서비스와 맵핑한 상태에서 v2의 레플리카 개수를 점진적으로 증가시킴과 동시에 v1의 개수를 감소시키다 마지막에는 v1 리소스 삭제</li>
</ul>
<hr>
<h2 id="2-blue·green-배포">2. Blue·Green 배포</h2>
<ul>
<li>Blue에 해당하는 nginx 웹서버 리소스 구성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;apps<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Deployment</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;resource<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>blue</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;namespace:&nbsp;default</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;replicas:&nbsp;<span style="color:#0099cc">5</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">matchLabels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;resource<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>blue</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;strategy:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;rollingUpdate:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxSurge:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxUnavailable:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;RollingUpdate</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">template:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">labels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;resource<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>blue</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restartPolicy:&nbsp;Always</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>서비스 생성 및 selector를 통해 Blue 리소스와 맵핑<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Service</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;blue<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>green</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">ports:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;<span style="color:#63a35c">&quot;80&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;port:&nbsp;<span style="color:#0099cc">80</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;protocol:&nbsp;TCP</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;targetPort:&nbsp;<span style="color:#0099cc">80</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;resource<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>blue</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;type:&nbsp;NodePort</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>Blue 리소스 서비스 접근 테스트<img src="https://velog.velcdn.com/images/_zero_/post/6d0cbda7-dba3-4124-b2cd-b2353b66c8b7/image.png" alt=""></li>
<li>Green에 해당하는 아파치 웹서버 리소스 구성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;apps<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Deployment</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;resource<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>green</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;namespace:&nbsp;default</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;replicas:&nbsp;<span style="color:#0099cc">5</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">matchLabels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;resource<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>green</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;strategy:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;rollingUpdate:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxSurge:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxUnavailable:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;RollingUpdate</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">template:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">labels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;resource<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>green</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">image:</span>&nbsp;httpd</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;httpd</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restartPolicy:&nbsp;Always</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>서비스의 selector를 Green 리소스와 맵핑</li>
<li>Green 리소스 서비스 접근 테스트<img src="https://velog.velcdn.com/images/_zero_/post/0e050360-3e36-4cbc-96c0-71b40228f2df/image.png" alt=""></li>
</ul>
<hr>
<h2 id="3-canary-배포">3. Canary 배포</h2>
<ul>
<li>v1 리소스 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;apps<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Deployment</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;canary<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;namespace:&nbsp;default</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;replicas:&nbsp;<span style="color:#0099cc">5</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">matchLabels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;canary</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;strategy:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;rollingUpdate:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxSurge:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxUnavailable:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;RollingUpdate</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">template:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">labels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;canary</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restartPolicy:&nbsp;Always</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>v2 리소스 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;apps<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Deployment</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;canary<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>v2</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;namespace:&nbsp;default</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;replicas:&nbsp;<span style="color:#0099cc">1</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">matchLabels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;canary</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;strategy:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;rollingUpdate:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxSurge:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxUnavailable:&nbsp;<span style="color:#0099cc">25</span>%</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;RollingUpdate</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">template:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">labels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;canary</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">image:</span>&nbsp;httpd</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;httpd</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restartPolicy:&nbsp;Always</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>서비스 생성 및 selector를 통해 v1과 v2 리소스를 서비스에 맵핑<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Service</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;svc<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>canary</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">ports:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;<span style="color:#63a35c">&quot;80&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;port:&nbsp;<span style="color:#0099cc">80</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;protocol:&nbsp;TCP</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;targetPort:&nbsp;<span style="color:#0099cc">80</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;canary</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;type:&nbsp;NodePort</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>서비스 접근 테스트(현재 5:1 비율)<img src="https://velog.velcdn.com/images/_zero_/post/3f1e5d90-1d01-4b09-a7d6-4e7fd9bbf972/image.png" alt=""></li>
<li>v2 레플리카 증가 및 v1 레플리카 감소 및 서비스 접근 테스트(현재 1:5 비율)<img src="https://velog.velcdn.com/images/_zero_/post/3120323e-5e21-4092-9e64-0b0f2b355ab8/image.png" alt=""></li>
<li>v1 리소스 삭제</li>
</ul>
<hr>
<h2 id="4-참고">4. 참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-application-developer/">https://www.udemy.com/course/certified-kubernetes-application-developer/</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 Custom Resource 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Custom-Resource-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Custom-Resource-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Mon, 30 Jan 2023 15:25:05 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>디플로이먼트, 레플리카셋 등  기본적으로 정의된 리소스 외에 Custom Resource를 활용하여 관리자가 원하는 리소스를 정의하고 사용 가능</li>
</ul>
<hr>
<h2 id="2-custom-resource-생성">2. Custom Resource 생성</h2>
<ul>
<li>crd 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div><div style="line-height:130%">25</div><div style="line-height:130%">26</div><div style="line-height:130%">27</div><div style="line-height:130%">28</div><div style="line-height:130%">29</div><div style="line-height:130%">30</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;apiextensions.k8s.io<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;CustomResourceDefinition</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;internals.datasets.kodekloud.com</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;group:&nbsp;datasets.kodekloud.com</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;versions:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;served:&nbsp;<span style="color:#0099cc">true</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;storage:&nbsp;<span style="color:#0099cc">true</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;schema:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openAPIV3Schema:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;object</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;object</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internalLoad:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;string</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;integer</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;percentage:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;string</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;scope:&nbsp;Namespaced</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;names:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;plural:&nbsp;internals</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;singular:&nbsp;internal</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">kind:</span>&nbsp;Internal</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;shortNames:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;int</div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic"><a href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div><ul>
<li><code>.metadata.name</code> : crd의 이름. plural+group의 조합으로 구성</li>
<li><code>.spec.group</code> : API 이름</li>
<li><code>.spec.versions.name</code> : API 버전</li>
<li><code>.spec.versions.schema.openAPIV3Schema.properties.spec.properties</code> : crd에서 요구하는 값</li>
<li><code>.spec.scope</code> : crd 적용 범위. Namespaced 또는 Cluster</li>
<li><code>.spec.names.plural</code> : URL로 호출 시 사용할 alias</li>
<li><code>.spec.names.singular</code> : CLI로 핸들링 시 사용할 alias</li>
<li><code>.spec.names.kind</code> : crd 매니페스트 생성 시 기입할 kind. 일반적으로 singular를 카멜케이스 형식으로 작성</li>
<li><code>.spec.names.shortNames</code> : crd의 단축어 </li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-custom-resource-사용">3. Custom Resource 사용</h2>
<ul>
<li>생성한 crd에 맞춰 리소스 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Internal</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;datasets.kodekloud.com<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;crd<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>test<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>internal</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;namespace:&nbsp;default</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;internalLoad:&nbsp;<span style="color:#63a35c">&quot;high&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;range:&nbsp;<span style="color:#0099cc">80</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;percentage:&nbsp;<span style="color:#63a35c">&quot;50&quot;</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div><ul>
<li><code>.apiVersion</code> : .spec.group/.spec.versions.name</li>
<li><code>.spec</code> : .spec.versions.schema.openAPIV3Schema.properties.spec.properties에 정의한 값</li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-custom-resource-핸들링">4. Custom Resource 핸들링</h2>
<ul>
<li><code>k get crd</code> : Custom Resource 목록 확인<img src="https://velog.velcdn.com/images/_zero_/post/ca4e4b23-5d48-42e0-b72b-fdf4abcea125/image.png" alt=""></li>
<li><code>k describe crd [crd_name]</code> : Custom Resource 세부 정보 확인<img src="https://velog.velcdn.com/images/_zero_/post/cbf3ee26-1751-4da2-92f9-960c597414a3/image.png" alt=""></li>
<li><code>k delete crd [crd_name]</code> : Custom Resource 삭제<img src="https://velog.velcdn.com/images/_zero_/post/22491407-a969-4ed3-bdcb-a606cf867cbc/image.png" alt=""></li>
<li><code>k get [shortNames]</code> : crd를 통해 생성한 리소스 확인<img src="https://velog.velcdn.com/images/_zero_/post/2f71d07b-9374-4beb-8c30-8f3cc281219b/image.png" alt=""></li>
</ul>
<hr>
<h2 id="5-참고">5. 참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-application-developer/">https://www.udemy.com/course/certified-kubernetes-application-developer/</a></li>
<li><a href="https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/">https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 Admission Controller(Mutating / Validating) 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Admission-Controller-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Admission-Controller-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Sat, 28 Jan 2023 13:45:20 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>쿠버네티스에서 파드 등의 리소스를 생성하는 경우 접근권한은 3단계를 거치게 됨<ul>
<li><code>Authentication(인증)</code> → <code>Authorization(인가)</code> → <code>Admission Control</code></li>
</ul>
</li>
<li>인증·인가에서는 인가된 사용자인지, 적절한 권한이 있는지를 확인함</li>
<li>Admission Control은 인가되고 권한을 보유한 이용자의 액션에 대해 관리자가 정의한 설정을 적용하도록 강제함</li>
<li>Admission Control로 핸들링이 가능한 액션(플러그인)은 <a href="https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/">링크</a>에서 확인 가능</li>
</ul>
<hr>
<h2 id="2-admission-controller-예시">2. Admission Controller 예시</h2>
<ul>
<li>kube-api의 <code>--enable-admission-plugins</code>에 NamespaceAutoProvision 설정<img src="https://velog.velcdn.com/images/_zero_/post/c42365bd-7386-44f5-b1f4-b6f56a588285/image.png" alt=""></li>
<li>ns 목록 확인<img src="https://velog.velcdn.com/images/_zero_/post/69cee488-2082-482f-bf03-3400044b66fe/image.png" alt=""></li>
<li>존재하지 않는 ns에 파드 생성<img src="https://velog.velcdn.com/images/_zero_/post/91599253-8731-4ca8-92b5-96fc216ec758/image.png" alt=""></li>
<li>자동으로 ns가 생성 및 파드가 생성됨을 확인<img src="https://velog.velcdn.com/images/_zero_/post/bec16774-53aa-4ca7-bd0d-bc58fb3a6683/image.png" alt=""></li>
</ul>
<hr>
<h2 id="3-mutating--validating">3. Mutating / Validating</h2>
<ul>
<li>Admission Controller의 세부 동작 단계로서 Mutating이 먼저 수행되고 그 다음 Validating을 수행<ul>
<li><code>Mutating</code> : API 요청을 검사해 관리자가 정의한 규칙에 어긋나는 경우 요청 내용을 수정</li>
<li><code>Validating</code> : API 요청의 유효성을 검사하여 요청을 거절 또는 승인 </li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-참고">4. 참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-application-developer/">https://www.udemy.com/course/certified-kubernetes-application-developer/</a></li>
<li><a href="https://coffeewhale.com/kubernetes/admission-control/2021/04/28/opa1/">https://coffeewhale.com/kubernetes/admission-control/2021/04/28/opa1/</a></li>
<li><a href="https://passwd.tistory.com/entry/Validating-Mutating-Admission-Controllers">https://passwd.tistory.com/entry/Validating-Mutating-Admission-Controllers</a></li>
<li><a href="https://blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;blogId=alice_k106&amp;logNo=221546328906">https://blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;blogId=alice_k106&amp;logNo=221546328906</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 Statefulset 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Statefulset-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Statefulset-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Thu, 26 Jan 2023 15:49:34 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>파드에 저장된 데이터 또는 파드의 설정을 stateful하게 유지해야 하는 경우 Statefulset 활용</li>
<li>Statefulset으로 생성한 파드는 재생성 시에도 랜덤한 문자열 이름이 아닌 관리자가 정의한 특정 규칙의 이름으로 생성</li>
<li>Statefulset으로 생성한 파드의 스토리지는 PVC로만 연결 가능</li>
<li>Statefulset에 접근하기 위해서는 headless service 생성 필요</li>
</ul>
<hr>
<h2 id="2-statefulset-생성">2. Statefulset 생성</h2>
<ul>
<li>headless service 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Service</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;headless<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>svc</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">labels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;headless<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>svc</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">ports:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;http</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;port:&nbsp;<span style="color:#0099cc">80</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;clusterIP:&nbsp;None</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;test<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>sts</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>statefulset 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;apps<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;StatefulSet</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;test<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>sts</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">selector:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">matchLabels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;test<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>sts</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;serviceName:&nbsp;headless<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>svc</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;replicas:&nbsp;<span style="color:#0099cc">3</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">template:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">labels:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">app:</span>&nbsp;test<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>sts</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;zero</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">ports:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">containerPort:</span>&nbsp;<span style="color:#0099cc">8080</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
</ul>
<hr>
<h2 id="3-statefulset-확인">3. statefulset 확인</h2>
<ul>
<li>파드의 이름이 랜덤한 문자열이 아닌 statefulset 생성 시 설정한 <code>test-sts-n</code> 형식으로 생성<img src="https://velog.velcdn.com/images/_zero_/post/b5c46286-730b-4ef7-98d9-eddf01787890/image.png" alt=""></li>
<li>sts의 파드가 삭제되어도 순차적으로 삭제<img src="https://velog.velcdn.com/images/_zero_/post/87bc84d2-eac9-4521-91f4-b2add0324bf1/image.png" alt=""></li>
<li>headless 서비스를 통해 sts 파드 접근<img src="https://velog.velcdn.com/images/_zero_/post/cc408359-8974-4009-ad7c-7ada18f32274/image.png" alt=""></li>
</ul>
<hr>
<h2 id="4-참고">4. 참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-application-developer/">https://www.udemy.com/course/certified-kubernetes-application-developer/</a></li>
<li><a href="https://nearhome.tistory.com/107">https://nearhome.tistory.com/107</a></li>
<li><a href="https://malwareanalysis.tistory.com/338">https://malwareanalysis.tistory.com/338</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 Job, CronJob 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Job-CronJob-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Job-CronJob-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Tue, 17 Jan 2023 15:51:17 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>특정 작업을 수행하기 위한 목적으로 사용하는 오브젝트로, 특정 액션을 수행하는 임시 파드 정도로 생각하면 적절</li>
<li>주기적으로 특정 액션을 수행해야 할 경우 <code>cronjob</code>을 사용</li>
</ul>
<hr>
<h2 id="2-job-cronjob-설정">2. Job, CronJob 설정</h2>
<ul>
<li>Job<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;batch<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Job</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;pi</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">template:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;pi</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;perl:<span style="color:#0099cc">5.</span><span style="color:#0099cc">34.</span><span style="color:#0099cc">0</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command:&nbsp;[<span style="color:#63a35c">&quot;perl&quot;</span>,&nbsp;&nbsp;<span style="color:#63a35c">&quot;-Mbignum=bpi&quot;</span>,&nbsp;<span style="color:#63a35c">&quot;-wle&quot;</span>,&nbsp;<span style="color:#63a35c">&quot;print&nbsp;bpi(2000)&quot;</span>]</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restartPolicy:&nbsp;Never</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;backoffLimit:&nbsp;<span style="color:#0099cc">4</span></div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic"><a href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>CronJob<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;batch<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;CronJob</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;hello</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;schedule:&nbsp;<span style="color:#63a35c">&quot;* * * * *&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;jobTemplate:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">template:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;hello</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;busybox:<span style="color:#0099cc">1.</span><span style="color:#0099cc">28</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>sh</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>c</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;date;&nbsp;echo&nbsp;Hello&nbsp;from&nbsp;the&nbsp;Kubernetes&nbsp;cluster</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restartPolicy:&nbsp;OnFailure</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
</ul>
<hr>
<h2 id="3-세부-옵션">3. 세부 옵션</h2>
<ul>
<li><code>.spec.completions</code> : 몇개의 job이 complete되어야 완료된 것인지 정의 </li>
<li><code>.spec.parallelism</code> : 최초에 병렬적으로 생성할 job의 개수</li>
<li><code>.spec.backoffLimit</code> : job의 작업이 실패할 경우에 재시도할 횟수 </li>
<li><code>.spec.activeDeadlineSeconds</code> : job이 시작된 후 작동 가능한 유효 시간</li>
<li><code>.spec.template.spec.restartPolicy</code> : 에러 발생 시 재시작 옵션<ul>
<li><code>Always</code> : 항상 재시작</li>
<li><code>OnFailure</code> : 장애 발생 시 재시작</li>
<li><code>Never</code> : 재시작하지 않음</li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-참고">4. 참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-application-developer/">https://www.udemy.com/course/certified-kubernetes-application-developer/</a></li>
<li><a href="https://kubernetes.io/docs/concepts/workloads/controllers/job/">https://kubernetes.io/docs/concepts/workloads/controllers/job/</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 Probe(Readiness, Liveness, Startup) 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-ProbeReadiness-Liveness-Startup-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-ProbeReadiness-Liveness-Startup-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Mon, 16 Jan 2023 15:26:06 GMT</pubDate>
            <description><![CDATA[<h2 id="1-probe-개념">1. Probe 개념</h2>
<h4 id="11-readiness-startup">1.1. Readiness, Startup</h4>
<ul>
<li>파드의 상태를 체크 할 수 있는 2가지의 지표가 존재<ul>
<li>get을 통해 확인 가능한 <code>STATUS</code> 정보<img src="https://velog.velcdn.com/images/_zero_/post/7eddf5d3-f227-4066-a789-d6086d68e904/image.png" alt=""></li>
<li>describe을 통해 확인 가능한 <code>Conditions</code> 정보<img src="https://velog.velcdn.com/images/_zero_/post/654fa88c-20ee-417c-b6e1-1f87859ff153/image.png" alt=""></li>
</ul>
</li>
<li>STATUS와 Conditions이 Running/True 상태임에도 불구하고 컨테이너가 초기화 프로세스(cold start)를 거치는 경우 파드에 정상적으로 접근 불가</li>
<li>컨테이너 생성 및 HTTP 요청에 대한 응답을 할 수 있는지 확인하기 위해 <code>Readiness Probe</code>를 활용</li>
<li>컨테이너에 배포된 서비스의 초기화 프로세스(cold start)가 완료되어 서비스를 제공할 수 있는지 확인하기 위해 <code>Startup Probe</code>를 활용<h4 id="12-liveness">1.2. Liveness</h4>
</li>
<li>파드에 장애가 발생하는 경우 k8s 특성상 파드를 재생성 및 삭제함</li>
<li>하지만 파드 자체에는 문제가 없으나 컨테이너에 장애가 발생한 경우 파드는 복구되지 않고 접근이 불가능한 상태로 지속적으로 존재하게 됨</li>
<li>이러한 문제를 해결하기 위해 <code>Liveness Probe</code>를 활용</li>
<li>Liveness Probe를 설정할 경우 지속적으로 컨테이너의 상태를 체크하고 비정상일 경우 파드를 재생성<h4 id="13-한줄-요약">1.3. 한줄 요약</h4>
</li>
<li>probe는 컨테이너의 상태를 확인하기 위한 기능</li>
</ul>
<hr>
<h2 id="2-probe-핸들러">2. Probe 핸들러</h2>
<ul>
<li>컨테이너의 상태를 확인하는 주체는 kubelet이며, kubelet은 핸들러를 활용해 컨테이너의 상태를 확인</li>
<li>3종류의 핸들러 존재<ul>
<li><code>HttpGetAction</code> : 지정된 포트와 URL로 HTTP Get 요청을 전송해 응답 코드가 200 ~ 400 구간인 경우 성공 이외의 경우 실패<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;httpGet:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>healthcheck</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;port:&nbsp;probeport</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li><code>ExecAction</code> : 컨테이너에서 관리자가 지정한 명령어를 실행. 명령어 상태 코드가 0일 경우 성공 이외의 경우 실패<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;exec:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;command:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;cat</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>tmp<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>healthy</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li><code>TCPAction</code> : 지정된 포트로 TCP 소켓 연결 시도. 연결 성공 시 성공<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tcpSocket:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port:&nbsp;<span style="color:#0099cc">8080</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-probe-옵션">3. Probe 옵션</h2>
<ul>
<li>Probe 설정을 세밀하게 조정하기 위한 옵션이 존재</li>
<li>세부 내용은 <a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/">공식 문서</a> 참고<img src="https://velog.velcdn.com/images/_zero_/post/4b4ea283-69b2-414c-88f4-362e4f3d14e1/image.png" alt=""></li>
</ul>
<hr>
<h2 id="4-probe-설정">4. Probe 설정</h2>
<ul>
<li>Readiness, Liveness, Startup Probe 모두 설정 방법은 동일하며 probe 이름만 수정 필요</li>
<li>HTTP Probe 설정<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Pod</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;readinessTest</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;readinessProbe:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httpGet:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>healthcheck</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port:&nbsp;<span style="color:#0099cc">8080</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>exec Probe 설정<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Pod</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;readinessTest</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;readinessProbe:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;cat</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>tmp<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>healthy</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li>TCP Probe 설정<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Pod</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;readinessTest</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;readinessProbe:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tcpSocket:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port:&nbsp;<span style="color:#0099cc">8080</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
</ul>
<hr>
<h2 id="5-참고">5. 참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-application-developer/">https://www.udemy.com/course/certified-kubernetes-application-developer/</a></li>
<li><a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/">https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/</a></li>
<li><a href="https://medium.com/finda-tech/kubernetes-pod%EC%9D%98-%EC%A7%84%EB%8B%A8%EC%9D%84-%EB%8B%B4%EB%8B%B9%ED%95%98%EB%8A%94-%EC%84%9C%EB%B9%84%EC%8A%A4-probe-7872cec9e568">https://medium.com/finda-tech/kubernetes-pod%EC%9D%98-%EC%A7%84%EB%8B%A8%EC%9D%84-%EB%8B%B4%EB%8B%B9%ED%95%98%EB%8A%94-%EC%84%9C%EB%B9%84%EC%8A%A4-probe-7872cec9e568</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS에 ELK 스택 구축(7.x)]]></title>
            <link>https://velog.io/@_zero_/AWS%EC%97%90-ELK-7.x-%EC%8A%A4%ED%83%9D-%EA%B5%AC%EC%B6%95</link>
            <guid>https://velog.io/@_zero_/AWS%EC%97%90-ELK-7.x-%EC%8A%A4%ED%83%9D-%EA%B5%AC%EC%B6%95</guid>
            <pubDate>Sat, 07 Jan 2023 06:44:51 GMT</pubDate>
            <description><![CDATA[<h2 id="1-elk-스택-개념">1. ELK 스택 개념</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/4acafd50-0a4e-4c65-857b-6d72bad799d7/image.png" alt=""></p>
<ul>
<li>beats<ul>
<li>일종의 에이전트 역할로서 로그를 수집하고자 하는 서버에 설치</li>
<li>단순히 로그를 수집해서 output(전송)하는 역할</li>
</ul>
</li>
<li>logstash<ul>
<li>ELK 서버 또는 클러스터에 설치</li>
<li>beats로 부터 수신한 로그를 관리자가 원하는 형태로 재가공해서 es로 전송하는 역할</li>
</ul>
</li>
<li>elasticsearch<ul>
<li>ELK 서버 또는 클러스터에 설치</li>
<li>대용량의 로그를 저장하고 검색하는 역할</li>
</ul>
</li>
<li>kibana<ul>
<li>ELK 서버 또는 클러스터에 설치</li>
<li>수집한 로그를 다양하게 시각화해서 대시보드로 보여주는 역할</li>
</ul>
</li>
</ul>
<hr>
<h2 id="2-구성도">2. 구성도</h2>
<p> <img src="https://velog.velcdn.com/images/_zero_/post/9805d51d-55b8-46d3-af5b-ed4a6cebd8f8/image.png" alt=""></p>
<hr>
<h2 id="3-elk-스택-구축">3. ELK 스택 구축</h2>
<h4 id="31-elk-인스턴스-생성">3.1. ELK 인스턴스 생성</h4>
<ul>
<li>OS : Ubuntu 20.04 LTS 64bit x86</li>
<li>type : ELK가 메모리를 많이 요구하기 때문에 최소 t2.medium 이상</li>
</ul>
<h4 id="32-elasticsearch-설치">3.2. Elasticsearch 설치</h4>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div><div style="line-height:130%">25</div><div style="line-height:130%">26</div><div style="line-height:130%">27</div><div style="line-height:130%">28</div><div style="line-height:130%">29</div><div style="line-height:130%">30</div><div style="line-height:130%">31</div><div style="line-height:130%">32</div><div style="line-height:130%">33</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;java&nbsp;설치</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;update</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;apt&nbsp;install&nbsp;openjdk<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0099cc">11</span><span style="color:#a71d5d">-</span>jdk</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설치</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">wget&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>qO&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;https:<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span><span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>artifacts.elastic.co<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>GPG<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>KEY<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>elasticsearch&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">|</span>&nbsp;sudo&nbsp;gpg&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>dearmor&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>o&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>usr<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>share<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>keyrings<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>keyring.gpg</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;install&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>transport<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>https</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">echo</span>&nbsp;<span style="color:#63a35c">"deb&nbsp;[signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg]&nbsp;https://artifacts.elastic.co/packages/7.x/apt&nbsp;stable&nbsp;main"</span>&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">|</span>&nbsp;sudo&nbsp;tee&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>apt<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>sources.list.d<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elastic<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0099cc">7.</span>x.list</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;update&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">&amp;</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&amp;</span>&nbsp;sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;install&nbsp;elasticsearch</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;메모리&nbsp;수정</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>jvm.options</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>Xms256m</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>Xmx256m</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설정&nbsp;수정</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch.yml</div><div style="padding:0 6px; white-space:pre; line-height:130%">node.name:&nbsp;node<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0099cc">1</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">network.host:&nbsp;<span style="color:#0099cc">0.</span><span style="color:#0099cc">0.</span><span style="color:#0099cc">0.</span><span style="color:#0099cc">0</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">http.port:&nbsp;<span style="color:#0099cc">9200</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">discovery.seed_hosts:&nbsp;[<span style="color:#63a35c">"127.0.0.1"</span>]</div><div style="padding:0 6px; white-space:pre; line-height:130%">cluster.initial_master_nodes:&nbsp;[<span style="color:#63a35c">"node-1"</span>]</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;서비스&nbsp;등록&nbsp;및&nbsp;시작</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;daemon<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>reload</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;enable&nbsp;elasticsearch.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;start&nbsp;elasticsearch.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">curl&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>X&nbsp;GET&nbsp;<span style="color:#63a35c">"localhost:9200"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;상태&nbsp;확인</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">curl&nbsp;localhost:<span style="color:#0099cc">9200</span><span style="color:#a71d5d">/</span>_cat<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>indices?v</div><div style="padding:0 6px; white-space:pre; line-height:130%">curl&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>X&nbsp;GET&nbsp;localhost:<span style="color:#0099cc">9200</span><span style="color:#a71d5d">/</span>_cat<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>health?v</div><div style="padding:0 6px; white-space:pre; line-height:130%">curl&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>X&nbsp;GET&nbsp;localhost:<span style="color:#0099cc">9200</span><span style="color:#a71d5d">/</span>_cat<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>nodes?v</div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic"><a href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div>

<h4 id="33-kibana-설치">3.3. Kibana 설치</h4>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설치</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;update&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">&amp;</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&amp;</span>&nbsp;sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;install&nbsp;kibana</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설정&nbsp;변경</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>kibana<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>kibana.yml</div><div style="padding:0 6px; white-space:pre; line-height:130%">server.port:&nbsp;<span style="color:#0099cc">5601</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">server.host:&nbsp;<span style="color:#63a35c">"0.0.0.0"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">elasticsearch.hosts:&nbsp;[<span style="color:#63a35c">"http://[es_ip]:9200"</span>]</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;서비스&nbsp;등록&nbsp;및&nbsp;시작</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;daemon<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>reload</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;enable&nbsp;kibana.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;start&nbsp;kibana.service</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div>

<h4 id="34-logstash-설치">3.4. Logstash 설치</h4>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div><div style="line-height:130%">25</div><div style="line-height:130%">26</div><div style="line-height:130%">27</div><div style="line-height:130%">28</div><div style="line-height:130%">29</div><div style="line-height:130%">30</div><div style="line-height:130%">31</div><div style="line-height:130%">32</div><div style="line-height:130%">33</div><div style="line-height:130%">34</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설치</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">wget&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>qO&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;https:<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span><span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>artifacts.elastic.co<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>GPG<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>KEY<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>elasticsearch&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">|</span>&nbsp;sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>key&nbsp;add&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span></div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">echo</span>&nbsp;<span style="color:#63a35c">"deb&nbsp;https://artifacts.elastic.co/packages/7.x/apt&nbsp;stable&nbsp;main"</span>&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">|</span>&nbsp;sudo&nbsp;tee&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>a&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>apt<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>sources.list.d<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elastic<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0099cc">7.</span>x.list</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;update&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">&amp;</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&amp;</span>&nbsp;sudo&nbsp;apt<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>get&nbsp;install&nbsp;logstash</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설정</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>logstash<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>conf.d<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>logstash.conf</div><div style="padding:0 6px; white-space:pre; line-height:130%">input&nbsp;{</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;beats&nbsp;{</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;port&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">=</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&gt;</span>&nbsp;<span style="color:#0099cc">5044</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;host&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">=</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&gt;</span>&nbsp;<span style="color:#63a35c">"0.0.0.0"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;}</div><div style="padding:0 6px; white-space:pre; line-height:130%">}</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">filter&nbsp;{</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">}</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">output&nbsp;{</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;elasticsearch&nbsp;{</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;hosts&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">=</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&gt;</span>&nbsp;[<span style="color:#63a35c">"http://localhost:9200"</span>]</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">=</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&gt;</span>&nbsp;<span style="color:#63a35c">"%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#999999">#user&nbsp;=&gt;&nbsp;"elastic"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#999999">#password&nbsp;=&gt;&nbsp;"changeme"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;}</div><div style="padding:0 6px; white-space:pre; line-height:130%">}</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;서비스&nbsp;등록&nbsp;및&nbsp;시작</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;daemon<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>reload</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;enable&nbsp;logstash.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;start&nbsp;logstash.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;상태&nbsp;확인</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">tail&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>f&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>var<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>log<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>logstash<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>logstash<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>plain.log</div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic"><a href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div>

<h4 id="35-모니터링-대상-인스턴스에-filebeat-설치">3.5. 모니터링 대상 인스턴스에 Filebeat 설치</h4>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div><div style="line-height:130%">25</div><div style="line-height:130%">26</div><div style="line-height:130%">27</div><div style="line-height:130%">28</div><div style="line-height:130%">29</div><div style="line-height:130%">30</div><div style="line-height:130%">31</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설치</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">curl&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>L&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>O&nbsp;https:<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span><span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>artifacts.elastic.co<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>downloads<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>beats<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>filebeat<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>filebeat<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0099cc">7.</span><span style="color:#0099cc">17.</span><span style="color:#0099cc">8</span><span style="color:#a71d5d">-</span>amd64.deb</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;dpkg&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>i&nbsp;filebeat<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0099cc">7.</span><span style="color:#0099cc">17.</span><span style="color:#0099cc">8</span><span style="color:#a71d5d">-</span>amd64.deb</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;설정&nbsp;변경</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>filebeat<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>filebeat.yml</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;type:&nbsp;log</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;id:&nbsp;test_log</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;enabled:&nbsp;<span style="color:#0099cc">true</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;paths:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>var<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>log<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span><span style="color:#0086b3"></span><span style="color:#a71d5d">*</span>.log</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">filebeat.config.modules:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;path:&nbsp;${path.config}<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>modules.d<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span><span style="color:#0086b3"></span><span style="color:#a71d5d">*</span>.yml</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;reload.enabled:&nbsp;<span style="color:#0099cc">true</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">setup.dashboards.enabled:&nbsp;<span style="color:#0099cc">true</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">setup.kibana:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;host:&nbsp;<span style="color:#63a35c">"[kibana_ip]:5601"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">output.logstash:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;hosts:&nbsp;[<span style="color:#63a35c">"es_ip:5044"</span>]</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;모듈&nbsp;설정</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">filebeat&nbsp;modules&nbsp;list</div><div style="padding:0 6px; white-space:pre; line-height:130%">filebeat&nbsp;modules&nbsp;enable&nbsp;[모듈]</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;서비스&nbsp;등록&nbsp;및&nbsp;시작</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;daemon<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>reload</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>systemctl&nbsp;enable&nbsp;filebeat.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;start&nbsp;filebeat.service</div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic"><a href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div>

<hr>
<h2 id="4-elasticsearch--kibana-인증-설정">4. Elasticsearch / Kibana 인증 설정</h2>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div><div style="line-height:130%">22</div><div style="line-height:130%">23</div><div style="line-height:130%">24</div><div style="line-height:130%">25</div><div style="line-height:130%">26</div><div style="line-height:130%">27</div><div style="line-height:130%">28</div><div style="line-height:130%">29</div><div style="line-height:130%">30</div><div style="line-height:130%">31</div><div style="line-height:130%">32</div><div style="line-height:130%">33</div><div style="line-height:130%">34</div><div style="line-height:130%">35</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;서비스&nbsp;중지</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;stop&nbsp;elasticsearch.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;stop&nbsp;kibana.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;stop&nbsp;logstash.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;es&nbsp;설정&nbsp;추가</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch.yml</div><div style="padding:0 6px; white-space:pre; line-height:130%">xpack.security.enabled:&nbsp;<span style="color:#0099cc">true</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">xpack.security.transport.ssl.enabled:&nbsp;<span style="color:#0099cc">true</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;es&nbsp;서비스&nbsp;실행</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;start&nbsp;elasticsearch.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;패스워드&nbsp;설정&nbsp;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>usr<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>share<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>bin<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>elasticsearch<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>setup<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>passwords&nbsp;interactive</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;kibana&nbsp;설정&nbsp;수정</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>kibana<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>kibana.yml</div><div style="padding:0 6px; white-space:pre; line-height:130%">elasticsearch.username:&nbsp;<span style="color:#63a35c">"elastic"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">elasticsearch.password:&nbsp;<span style="color:#63a35c">"설정한&nbsp;패스워드"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;kibana&nbsp;서비스&nbsp;실행</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;start&nbsp;kibana.service</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;logstash&nbsp;설정&nbsp;추가&nbsp;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;vi&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>etc<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>logstash<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>conf.d<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>logstash.conf</div><div style="padding:0 6px; white-space:pre; line-height:130%">output&nbsp;{</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;elasticsearch&nbsp;{</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;user&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">=</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&gt;</span>&nbsp;<span style="color:#63a35c">"elastic"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;password&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">=</span><span style="color:#0086b3"></span><span style="color:#a71d5d">&gt;</span>&nbsp;<span style="color:#63a35c">"설정한&nbsp;패스워드"</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;}</div><div style="padding:0 6px; white-space:pre; line-height:130%">}</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#999999">#&nbsp;logstash&nbsp;서비스&nbsp;실행</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">sudo&nbsp;systemctl&nbsp;start&nbsp;logstash.service</div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic"><a href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div>

<hr>
<h2 id="5-aws-sg-설정">5. AWS SG 설정</h2>
<ul>
<li>ELK 인스턴스 SG에 다음의 인바운드 규칙 추가
<img src="https://velog.velcdn.com/images/_zero_/post/e22cdf7e-6a38-4c0b-9652-4b1b46003312/image.png" alt=""><ul>
<li>src : 모니터링 대상 인스턴스 또는 any / port : 5044 / proto : tcp</li>
<li>src : kibana 접근을 허용하고자 하는 IP / port : 5601 / proto : tcp</li>
<li>src : es 접근을 허용하고자 하는 IP 또는 any / port : 9200 / proto : tcp</li>
</ul>
</li>
</ul>
<hr>
<h2 id="6-elk-동작-확인">6. ELK 동작 확인</h2>
<ul>
<li>&quot;ELK 인스턴스 공인IP:5601&quot; 접속 후 id : elastic / pass : 설정한 비밀번호 입력
<img src="https://velog.velcdn.com/images/_zero_/post/a036df90-7733-4418-aac0-5d151490bfaf/image.png" alt=""></li>
<li>왼쪽 메뉴 → Discover 클릭
<img src="https://velog.velcdn.com/images/_zero_/post/83606868-9ca2-4f5c-b3d5-76b09d1cd64a/image.png" alt=""></li>
</ul>
<hr>
<h2 id="7-참고">7. 참고</h2>
<ul>
<li><a href="https://www.elastic.co/guide/en/elastic-stack/7.17/installing-elastic-stack.html">https://www.elastic.co/guide/en/elastic-stack/7.17/installing-elastic-stack.html</a></li>
<li><a href="https://liveyourit.tistory.com/46">https://liveyourit.tistory.com/46</a></li>
<li><a href="https://www.skyer9.pe.kr/wordpress/?p=158">https://www.skyer9.pe.kr/wordpress/?p=158</a></li>
<li><a href="https://potato-yong.tistory.com/142">https://potato-yong.tistory.com/142</a></li>
<li><a href="https://information-security-vlog.tistory.com/24">https://information-security-vlog.tistory.com/24</a></li>
<li><a href="https://soyoung-new-challenge.tistory.com/56">https://soyoung-new-challenge.tistory.com/56</a></li>
<li><a href="https://soyoung-new-challenge.tistory.com/99">https://soyoung-new-challenge.tistory.com/99</a></li>
<li><a href="https://brtech.tistory.com/148">https://brtech.tistory.com/148</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Certified Kubernetes Administrator(CKA) 자격증 취득 후기(22.12. 시험)]]></title>
            <link>https://velog.io/@_zero_/CKA-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%B7%A8%EB%93%9D-%ED%9B%84%EA%B8%B022.12.-%EA%B8%B0%EC%A4%80</link>
            <guid>https://velog.io/@_zero_/CKA-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%B7%A8%EB%93%9D-%ED%9B%84%EA%B8%B022.12.-%EA%B8%B0%EC%A4%80</guid>
            <pubDate>Sun, 11 Dec 2022 15:05:42 GMT</pubDate>
            <description><![CDATA[<h2 id="1-취득-계기">1. 취득 계기</h2>
<p><img src="https://velog.velcdn.com/images/_zero_/post/5e657a8a-5695-42d7-85fa-c0f53be2903f/image.png" alt=""></p>
<ul>
<li><p>MSA가 대세아닌 대세가 된 현 시점에서 K8s는 산업계 표준이라고 해도 무방할 정도로 현업 깊숙이 자리잡고 있습니다. </p>
</li>
<li><p>따라서 보안 엔지니어 입장에서 보안적인 측면을 이해하고 적용을 요청하기 위해 자의반 타의반으로 공부를 시작하게 되었는데요.</p>
</li>
<li><p>네트워크 엔지니어로 커리어를 시작해서인지 공부하는 과정이 상당히 즐거웠고 재밌었네요. </p>
</li>
<li><p>앞으로 남은 CKAD와 CKS까지 천천히 공부하려고 목표를 잡고 있는데 벌써부터 설레는 마음입니다.</p>
</li>
<li><p>취득 기간은 하루에 최소 1시간씩 주 4~5일씩 공부했고 총 6개월이 소요됐습니다. 파드랑 노드가 뭔지도 모르는 제로 베이스에서 시작한 것 치고는 적절한 시간이라고 생각해봅니다. ㅎㅎ </p>
</li>
</ul>
<h2 id="2-공부-방법">2. 공부 방법</h2>
<h4 id="1-강의">1. 강의</h4>
<ul>
<li><p>쿠버네티스에 대해 아무것도 모르는 상태였기 때문에 한글로 설명된 초보 수준에 맞는 강의를 듣고싶었고, 이런 조건에 부합하는 강의로서 조훈님의 강의를 처음 수강했었습니다.(<a href="https://www.inflearn.com/course/%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4/dashboard">링크</a>)</p>
</li>
<li><p>조훈님 강의는 최대한 쉽게 설명해주시려고 노력하시지만 제가 좋아하는 스타일과는 결이 달라서 1회차 완강을 하고 곧바로 유데미의 강의를 들었습니다.(<a href="https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/">링크</a>) </p>
</li>
<li><p>유데미 강의는 개념과 적절한 실습을 함께 공부할 수 있어서 도움이 많이 됐었고 해당 강의를 2회차 수강하고 블로그에 관련 내용을 정리하는 식으로 복습했습니다.</p>
</li>
</ul>
<h4 id="2-실습">2. 실습</h4>
<ul>
<li><p>유데미 강의에서 제공해주는 KodeKloud의 모든 실습 문제를 2회씩 풀었고 Lightning Labs와 Mock Exams를 각각 5번 넘게 풀어 봤습니다. </p>
</li>
<li><p>CKA 시험 등록 후 Linux Foundation에서 제공해주는 killer.sh의 경우 1회차는 시간내에 제한시간 동안 최대한 풀어보고, 못 푼 문제는 답지를 3번정도 정독 했습니다. </p>
</li>
<li><p>killer.sh 2회차 때도 마찬가지로 제한시간 내에 최대한 풀어보는 연습을 했구요. 다만 2회차에는 1회차 때보다 훨씬 많은 문제를 풀 수 있었습니다. </p>
</li>
</ul>
<h4 id="3-요약">3. 요약</h4>
<ul>
<li>유데미 강의 2회차 수강(모든 실습 문제 풀이) → 강의 내용 블로그 정리 → Lightning Labs, Mock Exams 각각 5회 이상 풀이 → killer.sh 1회차 풀이 → killer.sh 답지 3회 정독 및 부족한 개념 익숙하게 만들기 → killer.sh 2회차 풀이</li>
</ul>
<h2 id="3-팁">3. 팁</h2>
<ul>
<li><strong>시험 환경</strong> : 모든 CKA 시험 후기에서 언급되던 열악한 시험환경(커맨드 반응 속도 느림, 연결 끊김 등)에 대해 걱정을 많이했지만 저는 관련 문제를 경험하지 못했습니다. Linux Foundation이 성능을 개선한 것인지 아니면 제가 시험을 봤었던 시간대가 응시자가 적어서 성능 이슈가 없었던 건지는 모르겠지만요. 다행히 killer.sh에서 문제풀이하는 것과 같은 느낌으로 시험을 치를 수 있었습니다.</li>
<li><strong>시간 배분</strong> : K8s 도큐먼트를 참고해야 풀 수 있을 정도로 익숙하지 않은 문제는 플래그 체크하고 바로 넘어갔습니다. 의도한 것인지는 모르겠지만 쉬운 문제들이 모두 뒷쪽에 있었기 때문에 바로 풀 수 있는 것들부터 풀고 어려운 문제들은 천천히 도큐먼트를 보면서 침착하게 풀어 나갔습니다. 그덕분인지 저는 2시간의 시험 시간이 촉박하지 않았고 오히려 남았었습니다. </li>
<li><strong>문제 정독</strong> : 문제 지문을 꼼꼼히 읽어서 실수를 방지해야 합니다. 가령 특정 노드에만 설정을 적용한다거나, 특정 노드는 배제한다거나 하는 요구사항이 있기 때문에 실수하지 않도록 조심해야 합니다.</li>
<li><strong>SSH exit</strong> : 문제 지문에서 컨텍스트를 변경하는 명령어까지 제공해주고 있어 컨텍스트를 혼동할 위험은 없어졌으나, 노드에 ssh로 접근한 경우 다음 문제에서는 반드시 터미널을 exit해야 합니다. 자칫하면 왜 문제에서 말하는 네임스페이스가 없지? 왜 서비스가 없지? 하면서 엉뚱하게 시간 낭비를 할 수 있습니다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 Ingress 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Ingress-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Ingress-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Sun, 13 Nov 2022 14:58:12 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>NetworkPolicy의 Ingress와 개념은 같지만 컨셉이 다름</li>
<li>클러스터 외부에서 HTTP/s를 통한 클러스터 내부로의 요청을 처리하는 규칙</li>
<li>예를들어 클러스터에 <code>/member</code> 와 <code>/product</code> 두 개의 애플리케이션을 운영중이고 개별적인 요청을 핸들링하고자 할 때 Ingress 활용<img src="https://velog.velcdn.com/images/_zero_/post/8e1ee846-14ea-4f8f-b257-4a13f9ed6278/image.png" alt=""></li>
</ul>
<hr>
<h2 id="2-실습">2. 실습</h2>
<ul>
<li><a href="https://velog.io/@dojun527/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9D%B8%EA%B7%B8%EB%A0%88%EC%8A%A4Ingress">링크</a> 참고</li>
</ul>
<hr>
<h2 id="3-ingress-핸들링">3. Ingress 핸들링</h2>
<ul>
<li>Ingress 리소스 확인 : <code>kubectl get ingress -A</code><img src="https://velog.velcdn.com/images/_zero_/post/1ddf21c6-e1cf-4642-a0e5-c9ea9c4c02b3/image.png" alt=""></li>
<li>Ingress 리소스 설정 확인 : <code>kubectl describe ingress [인그레스_이름]</code>
<img src="https://velog.velcdn.com/images/_zero_/post/40e462ca-3db9-4af0-8b4b-b7e008a9a283/image.png" alt=""></li>
</ul>
<hr>
<h2 id="참고">참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/">https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/</a></li>
<li><a href="https://velog.io/@dojun527/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9D%B8%EA%B7%B8%EB%A0%88%EC%8A%A4Ingress">https://velog.io/@dojun527/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9D%B8%EA%B7%B8%EB%A0%88%EC%8A%A4Ingress</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 StorageClass 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-StorageClass-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-StorageClass-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Wed, 09 Nov 2022 15:35:46 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>PVC를 이용해 볼륨을 손쉽게 요청할 수 있으나 운영자는 PV로 사용할 볼륨을 수동으로 프로비저닝해 함(Static Provisioning 방식)</li>
<li>이런 불편함을 해결하기 위해 자동으로 볼륨을 생성·할당하는 StorageClass를 사용(Dynamic Provisioning 방식)</li>
</ul>
<hr>
<h2 id="2-storageclass-생성">2. StorageClass 생성</h2>
<ul>
<li>StorageClass 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;storage.k8s.io<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>v1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;StorageClass</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span>&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;demo<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>sc</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">volumeBindingMode:&nbsp;WaitForFirstConsumer&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">provisioner:&nbsp;kubernetes.io<span style="color:#0086b3"></span><span style="color:#a71d5d">/</span>aws<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>ebs</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%">parameters:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;type:&nbsp;io1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;iopsPerGB:&nbsp;<span style="color:#63a35c">&quot;10&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;fsType:&nbsp;ext4</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li><code>volumeBindingMode</code> : 볼륨이 언제 바운딩 될지 시기를 설정하는 옵션. 설정하지 않을 경우 Immediate가 기본값으로 설정되나 WaitForFirstConsumer 사용을 권장<ul>
<li><code>Immediate</code> : PVC가 생성되는 즉시 바인딩. 따라서 의도치않은 PVC가 바인딩 될 가능성 존재</li>
<li><code>WaitForFirstConsumer</code> : PVC를 사용할 파드가 생성될때까지 바인딩을 지연</li>
</ul>
</li>
<li><code>provisioner</code> : PV(볼륨)를 생성할 스토리지 종류. AWSElasticBlockStore, AzureFile 등 다양한 프로비저너가 존재. <a href="https://kubernetes.io/ko/docs/concepts/storage/storage-classes/#%ED%94%84%EB%A1%9C%EB%B9%84%EC%A0%80%EB%84%88">링크</a>에서 확인 가능</li>
<li><code>parameters</code> : provisioner가 동적으로 볼륨을 생성할 때 필요한 옵션</li>
</ul>
<hr>
<h2 id="3-pvc에-storageclass-적용">3. PVC에 StorageClass 적용</h2>
<ul>
<li>StorageClass를 요청하는 PVC 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;PersistentVolumeClaim</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;demo<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>pvc<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>for<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>sc</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;storageClassName:&nbsp;demo<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>sc</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;accessModes:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;ReadWriteOnce</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;resources:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;requests:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;storage:&nbsp;500Mi</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div><ul>
<li><code>storageClassName</code> : 사용하고자 하는 SC 설정</li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-storageclass-정보-확인">4. StorageClass 정보 확인</h2>
<ul>
<li>목록 및 상태 확인 : <code>kubectl get sc</code><img src="https://velog.velcdn.com/images/_zero_/post/508cf55a-17c5-42ca-947e-b35b96b9a23f/image.png" alt=""></li>
<li>세부정보 확인 : <code>kubectl describe sc [스토리지클래스_이름]</code>
<img src="https://velog.velcdn.com/images/_zero_/post/e9e50b26-3525-4836-add9-f9d246239b4e/image.png" alt=""></li>
</ul>
<hr>
<h2 id="참고">참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/">https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/</a></li>
<li><a href="https://kubernetes.io/ko/docs/concepts/storage/storage-classes">https://kubernetes.io/ko/docs/concepts/storage/storage-classes</a></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스 PV·PVC 개념 및 설정]]></title>
            <link>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-PVPVC-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-PVPVC-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Tue, 08 Nov 2022 15:42:42 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개념">1. 개념</h2>
<ul>
<li>영속성을 보장할 수 없는 파드에 데이터를 저장할 경우 언제든 데이터가 사라질 가능성 존재</li>
<li>따라서 파드의 생명주기와 무관하게 저장이 유지되는 데이터 저장소가 필요한데 이런 요구사항을 만족하기 위한 개념이 PV(PersistentVolume)와 PVC(PersistentVolumeClaim)</li>
<li><code>PV</code> : 데이터를 저장할 볼륨. 볼륨을 생성하고 이를 클러스터에 등록한 것</li>
<li><code>PVC</code> : 필요한 저장 공간·RW모드 등 요청사항을 기술한 명세로서 PV에 전달하는 요청. PV와 바인딩을 하는 목적으로 사용<img src="https://velog.velcdn.com/images/_zero_/post/45f7201a-f832-45f0-8a35-aeab908ecf4e/image.png" alt=""></li>
</ul>
<hr>
<h2 id="2-pv-생성">2. PV 생성</h2>
<ul>
<li>demo-pv라는 PV 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;PersistentVolume</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;demo<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>pv</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;capacity:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;storage:&nbsp;100Mi</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;accessModes:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;ReadWriteMany</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;hostPath:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;<span style="color:#63a35c">&quot;/pv/log&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;persistentVolumeReclaimPolicy:&nbsp;Retain</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li><code>capacity</code> : 볼륨 크기</li>
<li><code>accessModes</code> : 볼륨 RW 모드<ul>
<li>ReadWriteOnce : 하나의 노드에서만 RW 가능</li>
<li>ReadOnlyMany : 여러 노드에서 R 가능</li>
<li>ReadWriteMany : 여러 노드에서 RW 가능</li>
</ul>
</li>
<li><code>persistentVolumeReclaimPolicy</code> : PV 릴리즈(사용 종료) 시 볼륨에 저장된 데이터 삭제 옵션<ul>
<li>Retain : PVC가 삭제되어도 PV(볼륨)의 데이터를 보존. 하지만 해당 PV를 다른 PVC가 사용하지 못하고, 재사용하기 위해서는 수동으로 PV를 반환해야 함</li>
<li>Delete : PVC가 삭제되면 PV(볼륨)의 데이터를 비롯해 PV(볼륨) 자체를 삭제</li>
<li>Recycle : PVC가 삭제되면 PV(볼륨)의 데이터만 삭제하고 볼륨 자체는 보존하여 곧바로 다른 PVC에 사용 가능. 하지만 현재는 deprecated되어 사용을 권하지 않음</li>
</ul>
</li>
</ul>
<hr>
<h2 id="3-pvc-생성">3. PVC 생성</h2>
<ul>
<li>demo-pvc라는 PVC 생성<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;PersistentVolumeClaim</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;demo<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>pvc</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;accessModes:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;ReadWriteMany</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;resources:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;requests:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;storage:&nbsp;50Mi</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
<li><code>accessModes</code> : 사용하고자 하는 PV의 accessModes와 동일한 옵션을 사용해야 bound 가능</li>
<li><code>requests</code> : 사용을 원하는 볼륨의 요구조건을 명시<ul>
<li>storage : 사용하고자 하는 최소한의 크기로서 명시한 용량보다 큰 PV도 상관 없음</li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-pv-pvc-정보-확인">4. PV, PVC 정보 확인</h2>
<ul>
<li>목록 및 상태 확인 : <code>kubectl get persistentvolume | persistentvolumeclaims</code>
<img src="https://velog.velcdn.com/images/_zero_/post/1cbf0830-b6bd-439c-975c-fb4cb60fb74c/image.png" alt=""></li>
<li>세부정보 확인 : <code>kubectl describe persistentvolume [PV_이름] | [PVC_이름]</code>
<img src="https://velog.velcdn.com/images/_zero_/post/17dda294-564a-467d-b93f-a1501108f069/image.png" alt=""></li>
</ul>
<hr>
<h2 id="5-애플리케이션파드-디플로이먼트에서-볼륨-또는-pvc-마운트">5. 애플리케이션(파드, 디플로이먼트)에서 볼륨 또는 PVC 마운트</h2>
<ul>
<li>볼륨 마운트<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Pod</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;webapp</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;webapp</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;volumeMounts:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;log<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>vol</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mountPath:&nbsp;<span style="color:#63a35c">&quot;/log&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;volumes:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;log<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>vol</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;hostPath:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;<span style="color:#63a35c">&quot;/var/log/webapp&quot;</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
</ul>
<ul>
<li>PVC 마운트<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">apiVersion:</span>&nbsp;v1</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">kind:</span>&nbsp;Pod</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">metadata:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">name:</span>&nbsp;webapp</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;</div><div style="padding:0 6px; white-space:pre; line-height:130%"><span style="color:#066de2">spec:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#066de2">containers:</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;webapp</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#066de2">image:</span>&nbsp;nginx</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;volumeMounts:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;log<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>vol</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mountPath:&nbsp;<span style="color:#63a35c">&quot;/log&quot;</span></div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;volumes:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>&nbsp;<span style="color:#066de2">name:</span>&nbsp;log<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>vol</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;persistentVolumeClaim:</div><div style="padding:0 6px; white-space:pre; line-height:130%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;claimName:&nbsp;demo<span style="color:#0086b3"></span><span style="color:#a71d5d">-</span>pvc</div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div></li>
</ul>
<hr>
<h2 id="참고">참고</h2>
<ol>
<li><a href="https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/">https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/</a></li>
</ol>
]]></description>
        </item>
    </channel>
</rss>