Kubernetes์ ์ํ ์ ์ฅ ์ ํ๋ฆฌ์ผ์ด์ ๋ฌธ์
์ํ ๋น์ ์ฅ์ผ๋ก ๋ถ๋ฅ๋ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋น์ค์ ๊ตฌ์ฑ, ์คํ ๋ฐ ์ถ๊ฐ ํ์ฅ์ด ์ฝ์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๊ณ . ํ์ค API๋ฅผ ์ฌ์ฉํ์ฌ Kubernetes์์ ์ด๋ฌํ ์๋น์ค๋ฅผ ์คํํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ํ์ค ๊ตฌ์ฑ์ ๋ฐ๋ผ ์ธ๋ถ ์ฌํญ์ด๋ ๋ง๋ฒ์ ์ฌ์ฉํ์ง ์๊ณ "์ฆ์" ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฐ๋จํ ๋งํด์, ์ปจํ ์ด๋ ํด๋ฌ์คํฐ์์ PHP/Ruby/Python์ผ๋ก ๋ฐฑ์๋ ๋ณต์ฌ๋ณธ 5๊ฐ๋ฅผ ๋ ์์ํ๋ ค๋ฉด ์ ์๋ฒ๋ฅผ XNUMX๋ฒ ์ค์ ํ๊ณ ์์ค๋ฅผ ๋ณต์ฌํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์์ค ์ฝ๋์ init ์คํฌ๋ฆฝํธ๊ฐ ๋ชจ๋ ์ด๋ฏธ์ง์ ์์ผ๋ฏ๋ก ์ํ ๋น์ ์ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ ์์ ํ ๊ธฐ๋ณธ์ด ๋ฉ๋๋ค. ์ปจํ ์ด๋์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ ํฌ์ด๋ผ๋ฉด ์ ์๊ฒ ์ง๋ง, ์ด๋ ค์์ ์ํ ์ ์ฅ ์ฑ, ์ฆ. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์บ์(MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra...)์ ๊ฐ์ ๋ฐ์ดํฐ ์ง์์ฑ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ์ด๋ ์ฟผ๋ผ ํด๋ฌ์คํฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ตฌํํ๋ ์ํํธ์จ์ด(์: Percona XtraDB ๋ฐ Cassandra)์ ๋ณ๋์ ๊ด๋ฆฌ ์ ํธ๋ฆฌํฐ๊ฐ ํ์ํ ์ํํธ์จ์ด(์: Redis, MySQL, PostgreSQL...) ๋ชจ๋์ ์ ์ฉ๋ฉ๋๋ค.
์์ค ์ฝ๋์ ์๋น์ค ์์๋ง์ผ๋ก๋ ๋ ์ด์ ์ถฉ๋ถํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ช ๊ฐ์ง ๋จ๊ณ๋ฅผ ๋ ์ํํด์ผ ํฉ๋๋ค. ์ต์ํ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๊ฑฐ๋ ํด๋ฌ์คํฐ์ ๊ฐ์
ํ์ธ์. ๋ณด๋ค ์ ํํ๊ฒ๋ ์ด๋ฌํ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ฐ์ดํฐ ์์ค์ด๋ ์ผ์์ ์ธ ์ฌ์ฉ ๋ถ๊ฐ ์์ด ์๋น์ค๋ฅผ ์ ์ ํ๊ฒ ํ์ฅ, ์
๋ฐ์ดํธ ๋ฐ ์ฌ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ดํดํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ๊ณ ๋ คํ๋ ๊ฒ์ "์ด์ ์ง์"์ด๋ผ๊ณ ํฉ๋๋ค.
CoreOS ์ด์์
์ด์ ์ง์์ "ํ๋ก๊ทธ๋๋ฐ"ํ๊ธฐ ์ํด ์๋
๋ง CoreOS ํ๋ก์ ํธ
Kubernetes์ ํต์ฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ํ์ฅํ๋ ์ด์์(ํฌํจ) StatefulSet, ์๋ ์ฐจ์ด์ ์ฐธ์กฐ) DevOps ์ ๋ฌธ๊ฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ด์ ์ง์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ด์์์ ๋ชฉ์ โ ๋ด๋ถ ๋ด์ฉ(์ด๋ค ๋ฐ์ดํฐ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌด์์ ํด์ผ ํ๋์ง, ํด๋ฌ์คํฐ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ํด ์ด๋ค ๋ช ๋ น์ ์คํํด์ผ ํ๋์ง)์ ๋ํด ์๊ฐํ์ง ์๊ณ Kubernetes ํด๋ฌ์คํฐ์์ ์ฌ๋ฌ ์ํ ์ ์ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ํฐํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ API๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํฉ๋๋ค. ). ์ค์ ๋ก Operator๋ ํด๋ฌ์คํฐ ๋ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ต๋ํ ๋จ์ํํ์ฌ ์ด์ ์ ์๋์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ ์ด์ ์์ ์ ์คํ์ ์๋ํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ด์์์ ์๋ ๋ฐฉ์
๋ ํ๋ฆฌ์นด์ธํธ Kubernetes๋ฅผ ์ฌ์ฉํ๋ฉด ์ํ๋ ์คํ Pod ์๋ฅผ ์ง์ ํ ์ ์์ผ๋ฉฐ ์ปจํธ๋กค๋ฌ๋ Pod ์์ฑ ๋ฐ ์ญ์ ๋ฅผ ํตํด ํด๋น ์๊ฐ ์ ์ง๋๋๋ก ๋ณด์ฅํฉ๋๋ค. Operator๋ ๋น์ทํ ๋ฐฉ์์ผ๋ก ์๋ํ์ฌ ํ์ํ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ํฐํฐ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ถ๊ฐ ์์ ์ ์ํํ ์ ์๋๋ก ํ์ค Kubernetes ๋ฆฌ์์ค ๋ฐ ์ปจํธ๋กค๋ฌ์ ์ผ๋ จ์ ์ด์ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์? StatefulSet, ๋ฐ์ดํฐ ์ ์ฅ์๋ ๊ณ ์ IP์ ๊ฐ์ ์ํ ์ ์ฅ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ํด๋ฌ์คํฐ๊ฐ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ์ค๊ณ๋์์ต๋๊น? ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์ด์์๋ ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. StatefulSet (๋์ ๋ ํ๋ฆฌ์นด์ธํธ)๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต ์ถ๊ฐ ์๋ํ: ์ถฉ๋ ๋ฐ์ ์ ํ์ํ ์กฐ์น๋ฅผ ์ํํ๊ณ , ๋ฐฑ์ ์ ๋ง๋ค๊ณ , ๊ตฌ์ฑ์ ์ ๋ฐ์ดํธํ๋ ๋ฑ์ ์์ ์ ์ํํฉ๋๋ค.
๋ฐ๋ผ์, ์ด ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํฉ๋๊น? ์ด์์๋ ๋ค์์ ์ํํ๋ ๊ด๋ฆฌ์ ๋ฐ๋ชฌ์ ๋๋ค.
- Kubernetes์ ์ด๋ฒคํธ API๋ฅผ ๊ตฌ๋ ํฉ๋๋ค.
- ์์คํ ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค. ๋ ํ๋ฆฌ์นด์ธํธ, ๊ผฌํฌ๋ฆฌ, ์๋น์ค ๋ฑ๋ฑ.);
- ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ต๋๋ค ํ์ฌ ๋ฆฌ์์ค (์๋ ์ ์ฐธ์กฐ)
- ์ธ๋ชจ/๋ณํ์ ๋ฐ์ ํ์ฌ ๋ฆฌ์์ค (์๋ฅผ ๋ค์ด ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ฒ์ ์ ๋ณ๊ฒฝํ๋ ๋ฑ)
- ์์คํ ์ํ์ ๋ณํ์ โโ๋ฐ์ํฉ๋๋ค. ๋ ํ๋ฆฌ์นด์ธํธ, ๊ผฌํฌ๋ฆฌ, ์๋น์ค ๋ฑ๋ฑ.);
- ๊ฐ์ฅ ์ค์ :
- Kubernetes API๋ฅผ ํธ์ถํ์ฌ ํ์ํ ๋ชจ๋ ๊ฒ์ ์์ฑํฉ๋๋ค(๋ค์ ๋งํ์ง๋ง ์์ฒด ๋ ํ๋ฆฌ์นด์ธํธ, ๊ผฌํฌ๋ฆฌ, ์๋น์ค...),
- ๋ช ๊ฐ์ง ๋ง๋ฒ์ ์ํํฉ๋๋ค(๊ฐ๋จํ ๋งํ๋ฉด Operator๊ฐ Pod ์์ฒด์ ๋ค์ด๊ฐ์ ๋ช ๋ น์ ํธ์ถํ๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํด๋ฌ์คํฐ์ ๊ฐ์ ํ๊ฑฐ๋ ๋ฒ์ ์ ์ ๋ฐ์ดํธํ ๋ ๋ฐ์ดํฐ ํ์์ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ ๋๋ค).
์ค์ ๋ก ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด ์ฟ ๋ฒ๋คํฐ์ค์๋ ๋จ์ํ ๋ณ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ถ๊ฐ๋๋ค(์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
). ์ ๊ฐ ั ๋ ํ๋ฆฌ์นด์
)๋ฅผ ์ฐ์ฐ์๋ผ๊ณ ํฉ๋๋ค. ์ด๋ ์ผ๋ฐ ๊ผฌํฌ๋ฆฌ(๋ณดํต ๋จ ํ๋)์ ๊ฑฐ์ฃผํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ํด๋น ๊ผฌํฌ๋ฆฌ์๋ง ์ฑ
์์ด ์์ต๋๋ค. ๋ค์ ์คํ์ด์ค. ์ด ์ด์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ง์ ์ ์ผ๋ก๋ ์๋์ง๋ง API๋ฅผ ํตํด API๋ฅผ ๊ตฌํํฉ๋๋ค. ํ์ฌ ๋ฆฌ์์ค ์ฟ ๋ฒ๋คํฐ์ค์์.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ํ ๋ค์ ์คํ์ด์ค ์ด์์๋, ์ถ๊ฐํ๊ฒ ์ต๋๋ค ํ์ฌ ๋ฆฌ์์ค.
etcd์ ์ (์์ธํ ๋ด์ฉ์ ์๋ ์ฐธ์กฐ):
apiVersion: etcd.coreos.com/v1beta1
kind: Cluster
metadata:
name: example-etcd-cluster
spec:
size: 3
version: 3.1.0
Elasticsearch์ ์:
apiVersion: enterprises.upmc.com/v1
kind: ElasticsearchCluster
metadata:
name: example-es-cluster
spec:
client-node-replicas: 3
master-node-replicas: 2
data-node-replicas: 3
zones:
- us-east-1c
- us-east-1d
- us-east-1e
data-volume-size: 10Gi
java-options: "-Xms1024m -Xmx1024m"
snapshot:
scheduler-enabled: true
bucket-name: elasticsnapshots99
cron-schedule: "@every 2m"
storage:
type: gp2
storage-class-provisioner: kubernetes.io/aws-ebs
์ด์์ ์๊ตฌ ์ฌํญ
CoreOS๋ ์์ง๋์ด๊ฐ Operator ์์ ์ ํ๋ฉด์ ์ป์ ์ฃผ์ ํจํด์ ๊ณต์ํํ์ต๋๋ค. ๋ชจ๋ Operator๊ฐ ๊ฐ๋ณ์ ์ด๋ผ๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ (๊ณ ์ ํ ํน์ฑ๊ณผ ์๊ตฌ ์ฌํญ์ด ์๋ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ์์ฑ๋จ) ์ด๋ค์ ์์ฑ์ ๋ค์ ์๊ตฌ ์ฌํญ์ ๋ถ๊ณผํ๋ ์ผ์ข ์ ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ผ ํฉ๋๋ค.
- ์ค์น๋ ๋จ์ผ ๊ฒฝ๋ก๋ฅผ ํตํด ์ํ๋์ด์ผ ํฉ๋๋ค. ์ ๊ฐ: kubectl create -f SOME_OPERATOR_URL/deployment.yaml - ์ถ๊ฐ ์กฐ์น๊ฐ ํ์ํ์ง ์์ต๋๋ค.
- Kubernetes์ Operator๋ฅผ ์ค์นํ ๋ ์๋ก์ด ํ์ฌ ์ ํ์ ์์ฑํด์ผ ํฉ๋๋ค. (ํ์ฌ ๋ฆฌ์์ค). ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค(ํด๋ฌ์คํฐ ์ธ์คํด์ค)๋ฅผ ์์ํ๊ณ ์ถ๊ฐ๋ก ๊ด๋ฆฌ(๋ฒ์ ์ ๋ฐ์ดํธ, ํฌ๊ธฐ ์กฐ์ ๋ฑ)ํ๋ ค๋ฉด ์ด ์ ํ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ฐ๋ฅํ ๋๋ง๋ค ๋ค์๊ณผ ๊ฐ์ด Kubernetes์ ๋ด์ฅ๋ ๊ธฐ๋ณธ ์์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๋น์ค ะธ ๋ ํ๋ฆฌ์นด์ธํธ์ ํ ์คํธ๋๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- Operators์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด ํ์ํ๊ณ ์ฌ์ฉ์๊ฐ ์์ฑํ ๋ฆฌ์์ค์ ์ด์ ๋ฒ์ ์ ๋ํ ์ง์์ด ํ์ํฉ๋๋ค.
- Operator๊ฐ ์ ๊ฑฐ๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๋ ๋ณ๊ฒฝ ์์ด ๊ณ์ ์๋ํด์ผ ํฉ๋๋ค.
- ์ฌ์ฉ์๋ ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ์ ์ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ๋ฐ์ดํธ๋ฅผ ์กฐ์ ํ ์ ์์ด์ผ ํฉ๋๋ค. ์ํํธ์จ์ด ์ ๋ฐ์ดํธ ๋ถ์กฑ์ ์ด์ ๋ฐ ๋ณด์ ๋ฌธ์ ์ ์ผ๋ฐ์ ์ธ ์์ธ์ด๋ฏ๋ก ์ด์์๋ ์ด ๋ฌธ์ ์ ๋ํด ์ฌ์ฉ์๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค.
- ์ด์์๋ Pod, ๊ตฌ์ฑ ๋ฐ ๋คํธ์ํฌ์ ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ์๋ณํ๋ Chaos Monkey์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํด์ผ ํฉ๋๋ค.
etcd ์ฐ์ฐ์
์ฐ์ฐ์ ๊ตฌํ ์ - etcd ์ด์์,
๊ทธ๋ฆฌ๊ณ etcd๋ CoreOS์์ ์์ฑ๋์๊ธฐ ๋๋ฌธ์ ํด๋น Operator๊ฐ ๋จผ์ ๋ํ๋๋ ๊ฒ์ ๋งค์ฐ ๋ ผ๋ฆฌ์ ์ด์์ต๋๋ค. ๊ทธ๋ ์ด๋ป๊ฒ ์ผํฉ๋๊น? ์ฐ์ฐ์ ๋ก์ง etcd ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค.
- ๊ด์ฐฐํ๋ค. ์ด์์๋ Kubernetes API๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ๋ถ์. ํ์ฌ ์ํ์ ์ํ๋ ์ํ(์ฌ์ฉ์ ๊ตฌ์ฑ์ ์ํด ์ ์๋จ) ์ฌ์ด์ ์ฐจ์ด์ ์ ์ฐพ์ต๋๋ค.
- ํ๋. etcd ๋ฐ/๋๋ Kubernetes ์๋น์ค API๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ง๋ ์ฐจ์ด์ ์ ํด๊ฒฐํฉ๋๋ค.
์ด ๋ก์ง์ ๊ตฌํํ๊ธฐ ์ํด Operator์ ํจ์๊ฐ ์ค๋น๋์์ต๋๋ค. ์์ฑ/ํ๊ดด (etcd ํด๋ฌ์คํฐ ๋ฉค๋ฒ ์์ฑ ๋ฐ ์ญ์ ) ๋ฐ ํฌ๊ธฐ ์กฐ์ (ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ์ ๋ณ๊ฒฝ) ์๋์ ์ ํ์ฑ์ Netflix์ Chaos Monkey์ ์ ์ฌํ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธ๋์์ต๋๋ค. etcd ํฌ๋๋ฅผ ๋ฌด์์๋ก ์ข
๋ฃํฉ๋๋ค.
etcd์ ์ ์ฒด ์๋์ ์ํด Operator๋ ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ฐฑ์ (๋ฐฑ์ ๋ณต์ฌ๋ณธ ์์ฑ์ด ์๋์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ณด์ด์ง ์์ - ๊ตฌ์ฑ์์๋ ๋ฐฑ์ ๋ณต์ฌ๋ณธ ์์ฑ ๋น๋์ ์ ์ฅํ ๊ฐ์๋ฅผ ๊ฒฐ์ ํ๊ณ ์ดํ์ ํด๋น ๋ณต์ฌ๋ณธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํจ) ์ ๊ทธ๋ ์ด๋ (๋ค์ดํ์ ์์ด etcd ์ค์น ์ ๋ฐ์ดํธ)
์คํผ๋ ์ดํฐ์ ํจ๊ป ์ผํ๋ ๊ฒ์ ์ด๋ค ๋ชจ์ต์ธ๊ฐ์?
$ kubectl create -f https://coreos.com/operators/etcd/latest/deployment.yaml
$ kubectl create -f https://coreos.com/operators/etcd/latest/example-etcd-cluster.yaml
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
etcd-cluster-0000 1/1 Running 0 23s
etcd-cluster-0001 1/1 Running 0 16s
etcd-cluster-0002 1/1 Running 0 8s
etcd-cluster-backup-tool-rhygq 1/1 Running 0 18s
etcd Operator์ ํ์ฌ ์ํ๋ ๋ฒ ํ ๋ฒ์ ์ด๋ฉฐ ์คํํ๋ ค๋ฉด Kubernetes 1.5.3+ ๋ฐ etcd 3.0+๊ฐ ํ์ํฉ๋๋ค. ์์ค ์ฝ๋์ ๋ฌธ์(์ฌ์ฉ ์ง์นจ ํฌํจ)๋ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
CoreOS์ ๋ ๋ค๋ฅธ ๊ตฌํ ์๊ฐ ์์ฑ๋์์ต๋๋ค.
ํํฉ ๋ฐ ์ ๋ง
์ฟ ๋ฒ๋คํฐ์ค ์คํผ๋ ์ดํฐ ๋ฐํ ์ดํ 5๊ฐ์์ด ์ง๋ฌ์ต๋๋ค. ๊ณต์ CoreOS ์ ์ฅ์์๋ ์์ง ๋ ๊ฐ์ง ๊ตฌํ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค(etcd ๋ฐ Prometheus์ฉ). ๋ ๋ค ์์ง ์์ ์ ์ธ ๋ฒ์ ์ ๋๋ฌํ์ง ์์์ง๋ง ์ปค๋ฐ์ ๋งค์ผ ๊ด์ฐฐ๋ฉ๋๋ค.
๊ฐ๋ฐ์๋ "์ฌ์ฉ์๊ฐ Kubernetes ํด๋ฌ์คํฐ์ Postgres Operator, Cassandra Operator ๋๋ Redis Operator๋ฅผ ์ค์นํ๊ณ ์ค๋๋ ์ํ ๋น์ ์ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ ๋ณธ์ ๋ฐฐํฌํ๋ ๊ฒ์ฒ๋ผ ์ฝ๊ฒ ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ ๊ฐ๋ฅํ ์ํฐํฐ์ ์์ ํ๋ ๋ฏธ๋"๋ฅผ ๊ตฌ์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ํ์ฌ ๊ฐ๋ฐ์์ ์ฐ์ฐ์ ์ ๋ง ๋ํ๋๊ธฐ ์์ํ์ด์:
-
Elasticsearch ์ด์์ UPMC ๊ธฐ์ ์์; -
PostgreSQL ์ฐ์ฐ์ Crunchy Data์์(2017๋ XNUMX์ ๋ง ๋ฐํ); -
๋ฃจํฌ ์คํผ๋ ์ดํฐ Ceph ๊ธฐ๋ฐ ๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ ์์คํ ์์ฑ์(Rook์ ์ํ ์ํ) -
์คํ์คํ ์ด์์ SAP CCloud์์.
2017๋
XNUMX์ ๋ธ๋คผ์
์์ ์ด๋ฆฐ ์ ๋ฝ ์ต๋ ์์ ์ํํธ์จ์ด ์ปจํผ๋ฐ์ค FOSDEM์์ CoreOS์ Josh Wood๋ Operators๋ฅผ ๋ฐํํ์ต๋๋ค.
PS ๊ธฐ์ฌ์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค! ์ฐ๋ฆฌ ํ๋ธ๋ฅผ ๊ตฌ๋
ํ์ธ์, DevOps ๋ฐ GNU/Linux ์์คํ
๊ด๋ฆฌ์ ๋ํ ์๋ก์ด ์๋ฃ์ ๋ ์ํผ๋ฅผ ๋์น์ง ์๊ธฐ ์ํด ์ ๊ธฐ์ ์ผ๋ก ๊ฒ์ํ ์์ ์
๋๋ค!
์ถ์ฒ : habr.com