Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update #5088

Closed
wants to merge 73 commits into from
Closed

Update #5088

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
dbab5aa
Update _config.yml
lewisjlee Nov 20, 2024
d0fd15c
Create 2024-11-20-first.md
lewisjlee Nov 20, 2024
fa052f7
initial update!
lewisjlee Nov 20, 2024
57addce
구글 애널리틱스 추가
lewisjlee Nov 20, 2024
723b457
SNS 링크 추가
lewisjlee Nov 21, 2024
30c888d
카테고리, 태그 추가
lewisjlee Nov 22, 2024
cb77595
timezone 주석 처리
lewisjlee Nov 22, 2024
b374557
이미지 경로 수정
lewisjlee Nov 22, 2024
8dda779
목차, 404 페이지 추가
lewisjlee Nov 25, 2024
f0f3470
404 페이지 수정
lewisjlee Nov 25, 2024
5bac459
404 이미지 중앙 배치
lewisjlee Nov 25, 2024
05d0410
구글 검색엔진 추가
lewisjlee Nov 28, 2024
9b66ea8
네이버 검색 엔진 등록
lewisjlee Nov 28, 2024
826265c
사이드바, 검색 기능 추가
lewisjlee Nov 28, 2024
cb6850e
Noto Sans KR 폰트 적용
lewisjlee Nov 29, 2024
3f1828c
폰트 추가 부분 수정
lewisjlee Nov 29, 2024
b3ed595
폰트 크기 축소
lewisjlee Nov 29, 2024
9792bc2
공지사항 추가
lewisjlee Nov 29, 2024
0d23a5b
사이드바 목차가 일부 삭제되는 오류 해결을 위한 주석 제거
lewisjlee Nov 29, 2024
d25a280
포스팅 일부 수정
lewisjlee Dec 5, 2024
5f269d4
config.yaml 수정
lewisjlee Dec 5, 2024
4ae825f
config.yaml 수정2
lewisjlee Dec 5, 2024
be00efb
포스팅 재수정
lewisjlee Dec 5, 2024
c6495d4
포스팅 일부 수정
lewisjlee Dec 5, 2024
747ece5
불필요한 이미지 삭제
lewisjlee Dec 14, 2024
093cb20
포스팅 일부 수정정
lewisjlee Dec 14, 2024
1e5f149
DNS 포스팅 업로드드
lewisjlee Dec 17, 2024
106bed1
목차 임시 제거
lewisjlee Dec 17, 2024
bf4674f
포스팅 업데이트트
lewisjlee Dec 21, 2024
5838fc8
포스팅 일부 수정
lewisjlee Dec 21, 2024
4704131
포스팅 일부 수정
lewisjlee Dec 26, 2024
75eb9c5
포스팅 일부 수정
lewisjlee Dec 27, 2024
3ed5661
포스팅 일부 문장 수정정
lewisjlee Dec 28, 2024
746aed1
포스팅 일부 문장 수정2
lewisjlee Dec 28, 2024
f05ab9a
count for_each 포스팅 작성성
lewisjlee Dec 28, 2024
a48fb55
포스팅 일부 수정
lewisjlee Dec 28, 2024
10bff3f
2024-12-14-for_each_vs_count.md 업데이트
lewisjlee Dec 28, 2024
6b011fc
포스팅 일부 수정
lewisjlee Dec 28, 2024
cb5ea11
Merge branch 'master' of https://github.com/lewisjlee/lewisjlee.githu…
lewisjlee Dec 28, 2024
e1974ff
포스팅 일부 문장 보완
lewisjlee Dec 29, 2024
26059f8
포스팅 이미지 수정
lewisjlee Dec 29, 2024
59c71c0
2024-12-14-for_each_vs_count.md 업데이트
lewisjlee Dec 29, 2024
f80fba8
포스팅 및 글자 크기 수정정
lewisjlee Dec 30, 2024
c09ba8d
Merge branch 'master' of https://github.com/lewisjlee/lewisjlee.githu…
lewisjlee Dec 30, 2024
b006537
3-tier Architecture 포스팅 수정
lewisjlee Dec 30, 2024
e38b59e
포스팅 재수정
lewisjlee Dec 30, 2024
028e7a4
Update 2024-12-08-3_tier.md
lewisjlee Dec 30, 2024
b9a16a6
Update 2024-12-08-3_tier.md
lewisjlee Dec 30, 2024
cb77b2b
Update 2024-12-08-3_tier.md
lewisjlee Dec 30, 2024
e071ab3
파드 설정값 우선순위 포스팅
lewisjlee Dec 31, 2024
c74f95e
Merge branch 'master' of https://github.com/lewisjlee/lewisjlee.githu…
lewisjlee Dec 31, 2024
a887e28
파드 설정값 포스팅 제목 수정정
lewisjlee Dec 31, 2024
273499d
2024-12-17-priority_pod_config.md 업데이트
lewisjlee Jan 1, 2025
3486cb4
3-tier 게시글 일부 수정
lewisjlee Jan 4, 2025
b16451d
Merge branch 'master' of https://github.com/lewisjlee/lewisjlee.githu…
lewisjlee Jan 4, 2025
3766ef0
3-tier 게시글 일부 재수정
lewisjlee Jan 4, 2025
ee84c44
3-tier 포스팅 일부 수정정
lewisjlee Jan 4, 2025
e66efa5
3-tier 포스팅 일부 수정
lewisjlee Jan 5, 2025
b11692e
쿠버네티스 tls 포스팅 업로드
lewisjlee Jan 6, 2025
c4b523b
쿠버네티스 tls 포스팅 이미지 수정
lewisjlee Jan 6, 2025
fad8a94
쿠버네티스 tls 포스팅 일부 수정
lewisjlee Jan 6, 2025
4d3dfe4
쿠버네티스 tls 포스팅 수정
lewisjlee Jan 6, 2025
672e85a
쿠버네티스 tls 포스팅 일부 수정
lewisjlee Jan 6, 2025
b20a2c0
3-tier 포스팅 일부 수정
lewisjlee Jan 7, 2025
40a7ea4
3-tier 포스팅 일부 수정
lewisjlee Jan 7, 2025
2e838a9
3-tier 포스팅 일부 수정
lewisjlee Jan 7, 2025
9b3c462
3-tier 포스팅 수정
lewisjlee Jan 7, 2025
b7eed5f
포스팅 일부 수정
lewisjlee Jan 7, 2025
2df870a
쿠버네티스 tls 포스팅 일부 수정
lewisjlee Jan 7, 2025
ad55847
metrics-server troubleshooting 포스팅 추가
lewisjlee Jan 7, 2025
d19a999
metrics-server 포스팅 일부 수정
lewisjlee Jan 7, 2025
ee28ba3
포스팅 제목 수정
lewisjlee Jan 7, 2025
301b1a2
Merge branch 'mmistakes:master' into update
lewisjlee Jan 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
source "https://rubygems.org"
gemspec
gemspecs
gem "minimal-mistakes-jekyll"
gem 'tzinfo'
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
108 changes: 48 additions & 60 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,31 @@

# theme : "minimal-mistakes-jekyll"
# remote_theme : "mmistakes/minimal-mistakes"
minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"
minimal_mistakes_skin : "air" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"

# Site Settings
locale : "en-US"
locale : "ko-KR"
rtl : # true, false (default) # turns direction of the page into right to left for RTL languages
title : "Site Title"
title_separator : "-"
subtitle : # site tagline that appears below site title in masthead
name : "Your Name"
description : "An amazing website."
url : # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
title : "Scorpius"
title_separator : "|"
subtitle : "Better today than yesterday" # site tagline that appears below site title in masthead
name : "LewisJLee"
description : "Sophisticating DevOps Technician"
url : "https://lewisjlee.github.io"
baseurl : # the subpath of your site, e.g. "/blog"
repository : # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes"
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
logo : # path of logo image to display in the masthead, e.g. "/assets/images/88x88.png"
logo : "/assets/logo/scorpius.jpg" # path of logo image to display in the masthead, e.g. "/assets/images/88x88.png"
masthead_title : # overrides the website title displayed in the masthead, use " " for no title
breadcrumbs : # true, false (default)
breadcrumbs : "true" # true, false (default)
words_per_minute : 200
enable_copy_code_button : # true, false (default)
copyright : # "copyright" name, defaults to site.title
copyright_url : # "copyright" URL, defaults to site.url
comments:
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "giscus", "custom"
provider : "disqus" # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "giscus", "custom"
disqus:
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
shortname : "scorpius" # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
discourse:
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
facebook:
Expand Down Expand Up @@ -84,7 +84,7 @@ google:
# SEO Related
google_site_verification :
bing_site_verification :
naver_site_verification :
naver_site_verification : "de6b84793d74bf5d4bd7786bcad5550fe0b15427"
yandex_site_verification :
baidu_site_verification :

Expand All @@ -105,60 +105,44 @@ social:

# Analytics
analytics:
provider : # false (default), "google", "google-universal", "google-gtag", "custom"
provider : "google-gtag" # false (default), "google", "google-universal", "google-gtag", "custom"
google:
tracking_id :
anonymize_ip : # true, false (default)
tracking_id : "G-VL61527HF6"
anonymize_ip : false # true, false (default)


# Site Author
author:
name : "Your Name"
name : "LewisJLee"
avatar : # path of avatar image, e.g. "/assets/images/bio-photo.jpg"
bio : "I am an **amazing** person."
location : "Somewhere"
email :
bio : "SRE/DevOps Engineer | System Administrator"
location : "Sungnam South Korea"
links:
- label: "Email"
icon: "fas fa-fw fa-envelope-square"
# url: "mailto:your.name@email.com"
- label: "Website"
icon: "fas fa-fw fa-link"
url: "mailto:earthlive1102@gmail.com"
#- label: "Website"
# icon: "fas fa-fw fa-link"
# url: "https://your-website.com"
- label: "Twitter"
icon: "fab fa-fw fa-twitter-square"
# url: "https://twitter.com/"
- label: "Facebook"
icon: "fab fa-fw fa-facebook-square"
# url: "https://facebook.com/"
- label: "GitHub"
icon: "fab fa-fw fa-github"
# url: "https://github.com/"
- label: "Instagram"
icon: "fab fa-fw fa-instagram"
# url: "https://instagram.com/"
url: "https://github.com/lewisjlee"
#- label: "Instagram"
# icon: "fab fa-fw fa-instagram"
# url: "https://www.instagram.com/11gntlee02"

# Site Footer
footer:
links:
- label: "Twitter"
icon: "fab fa-fw fa-twitter-square"
# url:
- label: "Facebook"
icon: "fab fa-fw fa-facebook-square"
# url:
- label: "GitHub"
icon: "fab fa-fw fa-github"
url: "https://github.com/lewisjlee"
#- label: "Bitbucket"
# icon: "fab fa-fw fa-bitbucket"
# url:
- label: "GitLab"
icon: "fab fa-fw fa-gitlab"
# url:
- label: "Bitbucket"
icon: "fab fa-fw fa-bitbucket"
# url:
- label: "Instagram"
icon: "fab fa-fw fa-instagram"
# url:
#- label: "Instagram"
# icon: "fab fa-fw fa-instagram"
# url: "https://www.instagram.com/11gntlee02"


# Reading Files
Expand Down Expand Up @@ -227,7 +211,7 @@ sass:

# Outputting
permalink: /:categories/:title/
timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# timezone: Asia/Seoul # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones


# Pagination with jekyll-paginate
Expand Down Expand Up @@ -290,16 +274,16 @@ tag_archive:
type: liquid
path: /tags/
# https://github.com/jekyll/jekyll-archives
# jekyll-archives:
# enabled:
# - categories
# - tags
# layouts:
# category: archive-taxonomy
# tag: archive-taxonomy
# permalinks:
# category: /categories/:name/
# tag: /tags/:name/
jekyll-archives:
enabled:
- categories
- tags
layouts:
category: archive-taxonomy
tag: archive-taxonomy
permalinks:
category: /categories/:name/
tag: /tags/:name/


# HTML Compression
Expand All @@ -320,6 +304,10 @@ defaults:
layout: single
author_profile: true
read_time: true
comments: # true
comments: true
share: true
related: true
show_date: true
toc: false
toc_sticky: false
date_format: "%Y-%m-%d"
16 changes: 14 additions & 2 deletions _data/navigation.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
# main links
main:
- title: "Quick-Start Guide"
url: https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/
- title: "Categories"
url: /categories/
- title: "Tag"
url: /tags/
- title: "Search"
url: /search/

docs:
- title: "AWS"
children:
- title: "S3"
url: /categories/#s3
- title: "EKS"
url: /categories/#eks
# - title: "About"
# url: https://mmistakes.github.io/minimal-mistakes/about/
# - title: "Sample Posts"
Expand Down
12 changes: 12 additions & 0 deletions _pages/404.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "Page Not Found"
excerpt: "Page not found. Your pixels are in another canvas."
sitemap: false
permalink: /404.html
---

<img title="" src="../../assets/404/404.jpg" alt="" data-align="center" width="678">
<style>
img{display:block;
margin:auto;}
</style>
9 changes: 9 additions & 0 deletions _pages/category-archive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---

title: "Categories"
layout: categories
permalink: /categories/
author_profile: true
sidebar_main: true

---
5 changes: 5 additions & 0 deletions _pages/search.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: Search
layout: search
permalink: /search/
---
9 changes: 9 additions & 0 deletions _pages/tag-archive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---

title: "Tag"
layout: tags
permalink: /tags/
author_profile: true
sidebar_main: true

---
71 changes: 71 additions & 0 deletions _posts/2024-11-09-nlb_debug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
layout: single
title: "Load Balancer Controller를 통한 NLB 배포 중 오류가 발생한다고?"
categories: EKS
tag: [AWS, aws, 쿠버네티스, Kubernetes, EKS, eks]
author_profile: false
sidebar:
nav: "docs"
---

**[공지사항]**
이전부터 학습하고 연구한 내용들을 함께 나누기 위해 최근 기술블로그를 개설하고 지속적으로 업로드하고 있습니다. 많은 관심과 피드백 부탁드립니다! 감사합니다 :)
{: .notice--success}

## 공식 문서대로 진행했는데 오류가 발생한다면

새로운 플랫폼이나 오픈 소스를 도입할 때 흔히 공식 문서를 참고하곤 합니다. 하지만 사용하려는 기술의 벤더가 제공하는 공식 문서대로 따라했는데 원하는 방식대로 동작하지 않았던 경험을 다들 한번쯤 겪어보셨을 수도 있습니다.

저는 AWS EKS 클러스터를 공부하던 중 Load Balancer를 배포하기 위해 관련 AWS Documentation들을 참고하여 sample 실습을 진행하였습니다. CSP가 직접 제공하는 매뉴얼이라서 순서대로 따라하기만 하면 될 줄 알았지만, 결과는 그렇지 않았습니다. NLB를 배포하기 위해 Load Balancer Controller를 설치하고 로드밸런서 서비스 매니페스트를 적용했는데, 서비스와 NLB 자체는 생성됐지만 고유의 external-ip 주소를 가져야 할 서비스에 주소가 mapping되지 않았고 대상 그룹에 sample 디플로이먼트 내 파드들 또한 추가되지 않았습니다. 당연히 외부에서 서비스에 접근할 수도 없었고요.

![스크린샷 2024-11-18 133938.png](../../images/2024-11-09-nlb_debug/6297016d372b587b610a7efb8260a6a20c7e4544.png)

![스크린샷 2024-11-18 134433.png](../../images/2024-11-09-nlb_debug/9135e185725429890b082bb9f8fcbac8daa02f11.png)

### Load Balancer Controller 설치 및 NLB 배포 공식 문서 링크

[AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/lbc-helm.html)

[Network Load Balancing](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html)

##### AWS Load Balancer Controller

EKS 클러스터 내 LoadBalancer 서비스를 생성하면 AWS API를 통해 ELB를 생성하고 통합할 수 있도록 지원하는 컨트롤러입니다. 정의된 LoadBalancer 매니페스트 내 Annotations 값을 참조하여 ELB를 생성하는 역할을 합니다.

##### Network Load Balancer

외부 요청을 L4 기반으로 각 타겟에 분산하는 로드밸런서로 주로 게임 혹은 미디어 스트리밍 서비스에 사용되고 있습니다. 고정 IP를 갖고 특정한 형식의 도메인과 mapping할 수 있습니다.

### 원인 분석

공식적으로 제공된 문서를 따라했는데 오류가 발생하였다는 점이 당황스러웠지만 차근차근 원인을 분석해보기로 했습니다. 설치한 Load Balancer Controller 파드 로그와 로드밸런서 서비스를 describe했을 때 출력되는 이벤트를 확인한 결과 다음과 같은 메시지를 공통적으로 출력하는 것을 확인할 수 있었습니다.

```bash
kubectl logs -n nlb-sample-app [Load Balancer Controller 파드명]
```

```bash
kubectl describe svc -n nlb-sample-app nlb-sample-service
```

**"is not authorized to perform: elasticloadbalancing:DescribeListenerAttributes because no identity-based policy allows the elasticloadbalancing:DescribeListenerAttributes action"**

Load Balancer Controller를 설치할 때 첫번째로 NLB를 배포하기 위한 IAM 역할(ServiceAccount)을 생성하게 됩니다. 이 역할에 연결하기 위한 정책을 공식 문서에 명시된 레포지토리에서 JSON 파일을 다운로드 받은 다음 생성하게 되는데,

정책 파일에 'elasticloadbalancing:DescribeListenerAttributes' 액션이 허용되어 있지 않아 리스너의 정보를 읽어올 수 없다는 메시지를 확인할 수 있었습니다.

### 해결

![20241109_AWSLoadBalancerControllerIAMPolicy_수정.png](../../images/2024-11-09-nlb_debug/bf1bab5ac2feef46e2ceceff264396796aba56c8.png)

AWS 콘솔에서 직접 연결된 IAM 정책에 해당 액션을 추가해주니 정상적으로 external-ip가 mapping되고 리스너가 트래픽을 전달하는 대상 그룹에 sample 파드가 추가되는 것을 확인할 수 있었습니다.

![loading-ag-237](../../images/2024-11-09-nlb_debug/45863d12b409acb0e4c107a5ff0e7f4a79b02c5f.png)

![스크린샷 2024-11-18 135602.png](../../images/2024-11-09-nlb_debug/a7d33bdf6c72e2b951172d0dc3aa68bf8cddd0b0.png)

### 결론

때로는 공식 문서가 정답이 아닌 경우가 생길 수 있습니다. 가장 신뢰할 만한 지침서가 되지만 기술 벤더의 사정에 따라 Deprecate된 기능의 문서를 여전히 지원하기도 하고 완전한 표준이 될 만한 문서 또한 개인 환경에 따라 정상적으로 적용되지 않기도 합니다. 각자 프로젝트를 진행하는 환경에서 매뉴얼을 정확하게 따라했음에도 불구하고 오류가 발생한다면 그럼에도 불구하고 이를 해결할 수 있는 방법은 스스로 아는 관련 배경 지식이나 공식 문서 상의 다른 페이지, 다른 팀원과의 토의로 충분히 해결하고 적용해보면 좋은 경험치가 될 수 있습니다.


Loading
Loading