๋ชฉ์ฐจ
ย ETCD
Key-Value Store
ย Key-Value Store
โข
์ ๋ณด๋ฅผ ๋ฌธ์๋ ํ์ด์ง ํํ๋ก ์ ์ฅ
โข
ํ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ค๋ฅธ ๊ณณ์ ์ํฅ์ ๋ฏธ์น์ง ์์
โข
๋ค๋ฅธ ์ ์ฌํ ๋ฌธ์๋ฅผ ์
๋ฐ์ดํธํ ํ์์์ด ์ธ๋ถ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์
โข
๊ฐ๋จํ ํค์ ๊ฐ์ ์ ์ฅํ๊ณ ๊ฒ์์ด ๊ฐ๋ฅ
โข
๋ฐ์ดํฐ๊ฐ ๋ณต์กํด์ง๋ฉด JSON ๋๋ YAML ๊ฐ์ ๋ฐ์ดํฐ ํ์์ผ๋ก ํธ๋์ ์
ํจ
ย Operate ETCD
1.
Download Binaries
2.
Extract
3.
Run ETCD Service
โข
Port 2379 ์ ์ ํธ๋ฅผ ์๋์ผ๋ก ๋ฃ๋ ์๋น์ค๊ฐ ์์๋จ
โข
ํด๋ผ์ด์ธํธ๋ฅผ ์ฒจ๋ถํ์ฌ ์ ๋ณด๋ฅผ ์ ์ฅ ๋ฐ ๊ฒ์ํ ์ ์์
โฆ
๊ธฐ๋ณธ ํด๋ผ์ด์ธํธ๋ etctctl - ETCD์ ์ปค๋งจ๋๋ผ์ธ ํด๋ผ์ด์ธํธ
โช
ํค๊ฐ ์ ์ ์ฅ ๋ฐ ํ์ ๊ฐ๋ฅ
โช
์ ์ฅ: /etcdctl set key1 value1
โช
ํ์: /etcdctl get key1
โฆ
๋ฒ์ ๋ง๋ค ์ปค๋งจ๋๊ฐ ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ version์ ๋ฐ๋ฅธ ์ปค๋งจ๋ ํ์ธํ๋ ์ข์
โช
v2์ v3์์ ์ฐจ์ด๊ฐ ํผ - v3๋ถํฐ CNCF์์ ๊ด๋ฆฌํ๋ฉด์ API๊ฐ ๋ณ๊ฒฝ๋จ
โช
/etcdctl --version ์ปค๋งจ๋๋ก ๋ฒ์ ํ์ธ
โข
API version์ ํ์ธํด์ผ ํจ
โช
๋ฒ์ ๋ณ๊ฒฝ ์ปค๋งจ๋:
โข
ETCDCTL_API=3 ./etcdctl version
โข
export ETCDCTL_API=3 ./etcdctl version
ย Role
โข
ํด๋ฌ์คํฐ์ ๊ดํ ์ ๋ณด๋ฅผ ์ ์ฅ - Nodes, PODs, Configs, Secrets, Accounts, Roles, Bindings, Others
โข
kube controle์ ์คํํ ๋ ์ป๊ฒ ๋๋ ๋ชจ๋ ์ ๋ณด๊ฐ ETCD Server์์ ๊ฐ์ ธ์ ์ง
โฆ
ETCD์ ์
๋ฐ์ดํธ ๋ ๊ฒ๋ค๋ง ์๋ฃ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋จ
ย Deploy
ETCD๋ ํด๋ฌ์คํฐ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋ฐฐํฌ๋ ์ ์์
Manual
โข
ํด๋ฌ์คํฐ๋ฅผ ์ฒ์๋ถํฐ ์
์
ํ๋ ๊ฒฝ์ฐ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ง์ ๋ค์ด๋ก๋ํด ๋ฐฐํฌํด์ผ ํจ
โฆ
๋ง์คํฐ ๋
ธ๋์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ค์นํ์ฌ ์๋น์ค๋ก ๊ตฌ์ฑ
wget -q --https-only \
"https://github.com/coreos/etcd/releases/download/v3.3.9/etcd-v3.3.9-linux-amd64.tar.gz"
Bash
๋ณต์ฌ
โข
์๋น์ค ์ต์
โฆ
์๋น์๊ฐ ์ธ์ฆ์์ ๊ด๋ จ๋จ (TLS ์ธ์ฆ์)
โฆ
๋ค๋ฅธ ์น์
์ ํด๋ฌ์คํฐ๋ก์ etcd๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๊ดํ ๊ฒ
โช
HA๋ฅผ ์ค์ ํ ๋ ์ด ์ต์
๋ค์ด ํ์
โฆ
์ค์ ์ต์
์ etcd๊ฐ ์์ ํ๋ ์ฃผ์์ธ advertise-client-urls ์
โช
์๋ฒ์ ๋ด๋ถ IP์ 2379 ํฌํธ์ ์์นํจ
โช
kube API server์์ ๊ตฌ์ฑ๋ผ์ผ ํ๋ URL
kubeadm
โข
kubeadm์ ์ด์ฉํด ํด๋ฌ์คํฐ๋ฅผ ์ค์ ํ๋ฉด kubeadm์ด kube-system ์ด๋ ๋ค์์คํ์ด์ค์ ๊ทธ ์ธ ๊ธฐํ ์๋ฒ๋ฅผ pod๋ก ๋ฐฐํฌํจ
โฆ
์ด pod ๋ด์ etcd control utility๋ฅผ ํตํด etcd ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ํ ์ ์์
# ์์: ๋ชจ๋ key๋ฅผ ์กฐํํ๋ ๋ช
๋ น์ด
kubectl exec etcd-master -n kube-system etcdctl get / --prefix -keys-only
Bash
๋ณต์ฌ
โข
์ฟ ๋ฒ๋คํฐ์ค๋ ํน์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ
โฆ
๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ ๋ ์ง์คํธ๋ฆฌ๋ก, ๊ทธ ์๋์ ์ฟ ๋ฒ๋คํฐ์ค ๊ตฌ์ฑ์ฒด๊ฐ ์์ (minions, nodes, pods, โฆ)
โข
High Availability ํ๊ฒฝ์์ ํด๋ฌ์คํฐ์ ๋ง์คํฐ ๋
ธ๋๊ฐ ์ฌ๋ฟ์ธ๋ฐ, ๋ง์คํฐ ๋
ธ๋ ์ ์ฒด์ ์ฌ๋ฌ ๊ฐ์ etcd instance๊ฐ ํผ์ ธ ์กด์ฌํจ
โฆ
์ด ๊ฒฝ์ฐ etcd ์๋น์ค ๊ตฌ์ฑ์์ ํ๋ผ๋ฏธํฐ ์ค์ ์ ํตํด etcd instance๋ค์ด ์๋ก์ ๋ํด ์๋๋ก ํด์ผ ํจ