Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
joohanhong
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
JooHan Hong
joohanhong
Commits
f25dc4db
Commit
f25dc4db
authored
Mar 17, 2021
by
JooHan Hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
k8s migration init
parent
a2edc3da
Pipeline
#5216
passed with stages
in 46 seconds
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
96 additions
and
0 deletions
+96
-0
README.md
DOCKER/K8S/MIGRATION/CLUSTER/README.md
+96
-0
No files found.
DOCKER/K8S/MIGRATION/CLUSTER/README.md
View file @
f25dc4db
...
...
@@ -4,5 +4,101 @@
> Docker Swarm -> `K8s`로의 **클러스터 환경**에 대해 검토하고 검증한다.
-
Node 당 하나의 컨테이너만을 운용해야 한다.
-
Manager 또는 Master를 제외한 Node에만 컨테이너가 배포되어야 한다.
-
Front-end LB(HA-PROXY)와의 통신을 원활히 하도록 구성해야 한다.
## Conclusion k8s
> Swarm -> K8s로의 Migration은 검토결과 문제가 없다.
## Docker Swarm
-
**Node 당 하나의 컨테이너만을 운용해야 한다.**
```
python
...
중략
deploy
:
mode
:
global
```
> 이는 Swarm Cluster 외 단독 컨테이너 및 VM 환경에서 대한 리소스사용을 고려한 측면이다. 기본 값은 **Replicated** 다.
-
**Manager 제외한 Node에 컨테이너를 배포해야 한다.**
```
python
deploy
:
placement
:
onstraints
:
[
node
.
hostname
!=
TB2
-
DOCKER
]
```
> 이는 Manager Node에 Storage 운용 및 관리/제어를 위한 목적으로만 사용하기위한 측면이다.
-
**외부 LB와의 통신을 원활히 하도록 구성해야 한다.**
> N/A, 기본 **Overlay** 네트워크로 사용되어도 서비스운영에 문제가 없다.
## K8s
-
**Node 당 하나의 컨테이너만을 운용해야 한다.**
> k8s의 경우는 DaemonSet Object를 Define해서 사용해야 한다.
```
python
apiVersion
:
apps
/
v1
kind
:
DaemonSet
metadata
:
...
중략
```
> 세부적인 내역은 아래의 Link를 확인한다.
[
www.hongsnet.net k8s 구성내역
](
https://gitlab.hongsnet.net/joohan.hong/joohanhong/tree/master/DOCKER/K8S/HONGSNET
)
-
**Manager 제외한 Node에 컨테이너를 배포해야 한다.**
> k8s의 경우 Label을 통해 구분하면 된다.
```
python
apiVersion
:
apps
/
v1
kind
:
DaemonSet
metadata
:
...
spec
:
....
template
:
...
spec
:
...
nodeSelector
:
key
:
worker
```
등록은 다음과 같이 수행하며, 참고적으로 key는 임의의 변수 값이다.
```
bash
# kubectl label nodes cube02 key=worker
```
-
**외부 LB와의 통신을 원활히 하도록 구성해야 한다.**
다음과 같이 검증을 해보았으나, Front-end LB(HA-PROXY)와의 구성(
`NodePort`
) 상 timeout이 발생되는 부분이 발생되었다. 따라서 일반적인 구성은 아니지만,
`hostNetwork`
설정을 통해 이를 충족한다.
```
python
apiVersion
:
apps
/
v1
kind
:
DaemonSet
metadata
:
...
spec
:
...
template
:
...
spec
:
hostNetwork
:
true
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment