Calico ๋ฐ ๋ฉํธ๋ฆญ ์์ง ๊ตฌ์ฑ
- kkumtree
2024-09-15T18:40:22+09:00
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
1. Calico ์ค์น
์คํฐ๋์์ AWS CF ๋ฐ Calico ์ค์น ์คํฌ๋ฆฝํธ(Manifest)๋ฅผ ์ ๊ณตํ์๊ธฐ์, ์ด ๋ถ๋ถ์ ์ฐธ๊ณ ๋ง ํ์๊ธฐ ๋ฐ๋๋๋ค.
CNI๊ฐ ์ค์น๋์ง ์์๊ธฐ์ NotReady ์ํ์ ์๋ค๊ฐ, Calico ์ค์นํ๋ฉด CoreDNS๊ฐ ์ค์ ๋๋ฉฐ, Ready ์ํ๋ก ๋ณ๊ฒฝ๋๋ค.
-
Calico ์ค์น ์
# Control Plane and worker nodes are not ready (โ|HomeLab:default) root@k8s-m:~# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-m NotReady control-plane 32m v1.30.5 k8s-w0 NotReady <none> 31m v1.30.5 k8s-w1 NotReady <none> 31m v1.30.5 k8s-w2 NotReady <none> 31m v1.30.5 # Count for iptalbes rules for comparison (โ|HomeLab:default) root@k8s-m:~# iptables -t filter -L | wc -l 50 (โ|HomeLab:default) root@k8s-m:~# iptables -t nat -L | wc -l 48(โ|HomeLab:default) root@k8s-m:~# kubectl get pod -A --sort-by=.metadata.creationTimestamp NAMESPACE NAME READY STATUS RESTARTS AGE kube-system etcd-k8s-m 1/1 Running 0 35m kube-system kube-apiserver-k8s-m 1/1 Running 0 35m kube-system kube-controller-manager-k8s-m 1/1 Running 0 35m kube-system kube-scheduler-k8s-m 1/1 Running 0 35m kube-system coredns-55cb58b774-bscbt 0/1 Pending 0 35m kube-system coredns-55cb58b774-w22zq 0/1 Pending 0 35m kube-system kube-proxy-5hgmn 1/1 Running 0 35m kube-system kube-proxy-bnv77 1/1 Running 0 35m kube-system kube-proxy-xf8q7 1/1 Running 0 35m kube-system kube-proxy-hzsnk 1/1 Running 0 35m -
Calico ์ค์น ํ
KIND ํบ์๋ณด๊ธฐ
- kkumtree
2024-09-03T21:16:07+09:00
ํบ์๋ณด๋ค(์ฐ๋ฆฌ๋ง์) ๋ ์์ธ๋ก ํ์ค์ด๋ผ๊ณ ํฉ๋๋ค.
KIND ์ค์น ์ดํ์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ์ดํด๋ด ๋๋ค.
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
0. $KUBECONFIG
-
$KUBECONFIG ํ๊ฒฝ๋ณ์๊ฐ ์์ ๊ฒฝ์ฐ:
๋ณดํต์~/.kube๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋ฉ๋๋ค.
ํ์ธํด๋ณด๋, config ๊ฐ๊ณผ ๋๋ถ์ด,cache๋๋ ํ ๋ฆฌ๋ ํ์ธํ ์ ์์์ต๋๋ค.โฏ find ~/.kube -maxdepth 2 -type f -exec ls -ld "{}" \; -rw------- 1 kkumtree kkumtree 44 Sep 3 21:31 /home/kkumtree/.kube/config โฏ find ~/.kube -maxdepth 2 -type d -exec ls -ld "{}" \; drwxr-x--- 3 kkumtree kkumtree 4096 Sep 3 21:31 /home/kkumtree/.kube drwxr-x--- 4 kkumtree kkumtree 4096 Sep 3 21:11 /home/kkumtree/.kube/cache drwxr-x--- 5 kkumtree kkumtree 4096 Sep 3 21:28 /home/kkumtree/.kube/cache/discovery drwxr-x--- 3 kkumtree kkumtree 4096 Sep 3 21:28 /home/kkumtree/.kube/cache/http -
KIND์ฉ $KUBECONFIG ์ค์ :
๊ทธ๋์ ์๋์ฒ๋ผ, ๊ฒฝ๋ก๋ฅผ ๋ง๋ค๊ณ $KUBECONFIG ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํด์ฃผ์์ต๋๋ค.
๋ฆฌ๋ ์ค์ KIND ์ค์นํ๊ธฐ w/golang
- kkumtree
2024-09-02T00:33:19+09:00
Helm ์ค์น ์ถ๊ฐ
CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)์ ์ฐธ์ฌํ๊ฒ ๋๋ฉด์ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์์ต๋๋ค.
์ด๋ฒ์๋ kind(Kubernetes IN Docker)๋ฅผ Golang์ ํตํด ์ค์นํ๋ฉด์ ์ฝ๊ฐ์ ์?๋์ด ์์๋ ๋ถ๋ถ๋ง ๋ค๋ฃน๋๋ค.
1. KIND๋?
- ์๋ ์ฌ์ง์ผ๋ก ๋์ฒดํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Docs/Initial_design์์ ๋ณผ์ ์์ต๋๋ค.

2. KIND ์ค์นํ๊ธฐ
- Docs/Quick-start๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.
Linux์ ๊ฒฝ์ฐ, ํจํค์ง ๊ด๋ฆฌ์ ์ค์น๊ฐ ์์ด ๋ฐ์ด๋๋ฆฌ, ํน์ ์์ค๋ก ์ค์นํด์ผ ํฉ๋๋ค.
์๋ ๋ ๋ฌธ์ฅ์ ๋ญ๊ฐ ๋ฐ๋ํ์ฌ Go ์ธ์ด๋ก ์ค์น๋ฅผ ํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค.
If you are a go developer you may find the go install option convenient.
Otherwise we supply downloadable release binaries, community-managed packages, and a source installation guide.
3. ์ค์น๋ ๋งค์ฐ ๊ฐ๋จ
- Go ๊ฐ๋ฐ์๋ ์๋์ง๋ง, ์ ๊น๋ ค์์๊ณ ๊ทธ GOPATH ํ๊ฒฝ๋ณ์๋ ํ์ธ๋ฉ๋๋ค. ๋ฌด์จ์ผ์ด๋.
โฏ go version
go version go1.22.2 linux/amd64
โฏ go env GOPATH
/home/kkumtree/go
- Docs๋ฅผ ์ ์ฝ๊ณ , ์๋์ ๊ฐ์ด ์ค์นํ๋ฉด ๋ฉ๋๋ค.
go install sigs.k8s.io/[email protected]
4. ์ด๊ฑธ๋ก ๋ ์ผ๋ฆฌ๊ฐ ์๋ค. ํ๊ฒฝ๋ณ์ ์ค์
- ๊ทธ๋ฐ ๊ฑด ์กด์ฌํ์ง ์์ต๋๋ค. Go๋ฅผ ๊ฐ๋ฐ์ ์ฌ์ฉํด๋ณธ ์ ์ด ์์ผ๋ฉด ์๋์ฒ๋ผ Go ๋ฐ์ด๋๋ฆฌ๊ฐ PATH ํ๊ฒฝ๋ณ์์ ์ค์ ํฉ๋๋ค.
โฏ env | grep go
PATH=/home/kkumtree/go/bin:/home/kkumtree/.tfenv/bin:/home/kkumtree/.tfenv/bin:/home/kkumtree/.tfenv/bin:/home/kkumtree/.sdkman/candidates/java/current/bin:/home/kkumtree/.nvm/versions/node/v18.15.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
(a์) ~/.bashrc์ ์ ์ ์ง์
- ๋ณดํต ์ด๋ ๊ฒํ๋ฉด, ์ฌ์ฉํ๋๋ฐ ๋ณ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
echo 'export PATH=$PATH:/home/kkumtree/go/bin' >> ~/.bashrc
# zsh์ผ ๊ฒฝ์ฐ) exec bash
source ~/.bashrc
# zsh์ผ ๊ฒฝ์ฐ, ๋ค์ zsh๋ก ๋ณต๊ท) exec zsh
(b์) ~/.profile์ ๋์ ์ง์
- ๋ณ๋ค๋ฅธ ์ด์ ๋ ์๊ณ , profile์ ์กฐ๊ฑด ์ค์ ์ด ๋์ด์์ด์ ์ถ๊ฐํด๋ณด์์ต๋๋ค.
- ๋ง์ง๋ง 3์ค๋ง ์ถ๊ฐ๋ก ์์ฑ
# โฏ cat ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
# set PATH so it includes user's gopath if it exists
if [ -x "/usr/bin/go" ] && [ -d "$(/usr/bin/go env GOPATH)/bin" ] ; then
PATH="$(/usr/bin/go env GOPATH)/bin:$PATH"
fi
source ~/.profile๋ก ์ ์ฉํ ํ, kind version์ผ๋ก ์ค์น ํ์ธ.
Jenkins ์ปจํ ์ด๋์์ Host์ Docker ๋ฐ๋ชฌ ์ฌ์ฉํ๊ธฐ
- kkumtree
2024-09-01T09:02:15+09:00
์ต๊ทผ CloudNet@์์ ์งํํ๊ณ ์๋ K8s Advanced Network Study(์ดํ, KANS)์ ์ฐธ์ฌํ๊ฒ ๋์์ต๋๋ค.
๋์ด๋๋ฅผ ์๊ฐํ๋ฉด KH(Hardcore)NS๊ฐ ๋ ๋ง์๋ณด์ด์ง๋ง…
k8s๊ฐ ์๋ ์ธ๊ธฐ๊ฐ ๋ง๊ธฐ๋ ํ์ง๋ง, Pod ๊ฐ ํต์ ์๋ ๋ง์ ์ง์์ด ํฌ์ฌ๋๊ธฐ์ ์ด๋ฒ ๊ธฐํ์ ์ดํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค.

์ฒซ ์ฃผ์ฐจ๋, ๋ฐ๋ก Kubernetes์ ์ง์
ํ์ง ์๊ณ Containerization์ ๋ํ ์ดํด๋ฅผ ๋จผ์ ๋ค๋ค์ฃผ์
จ์ต๋๋ค.
์ฌํ ์ฟ ๋ฒ๋คํฐ์ค ๊ฐ์์ ๋ฌ๋ฆฌ 9์ฃผ ๊ฐ ๋งค์ฃผ ์ผ์์ผ์๋ง ์งํ๋๋ ์ธ์
์ธ๋ฐ๋, ๊ธฐ๋ฐ ๊ธฐ์ ์ ๋ค์ ์ง์ด์ฃผ์
์ ๊ฐ์ฌํ์ต๋๋ค.
1. AWS EC2 Instance ์ ์
CloudFormation์ ํตํด, EC2 ๋ฐ ์ ๋ฐ์ฌํญ์ ๊ตฌ์ฑํ์ฌ ์ฃผ์
จ์ต๋๋ค๋ง, ์ทจ๋ฏธ ์ผ์ Terraform ๋ณํ ์์
์ ํด๋ณด์์ต๋๋ค. ํ์ง ๋ง์์ด์ผํ๋๋ฐ… LoL