Hey Habr!
เปเบเบเบญเบเบเปเบฒเบเบเบญเบเบฅเบฐเบเบนเบฎเปเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเบทเบญเบเบเปเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเบทเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเบเปเบฝเบงเบเบฑเบเบซเบปเบงเบเปเป
เปเบเบตเบเปเบเบตเบเบเบฑเบเบเบฒเบเบญเปเบฒเบ!
เปเบเปเบงเบฅเบฒเบเบตเปเบเบฝเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบญเบฒเบเบธเบเบญเบ Kubernetes เปเบกเปเบเบเบฐเบกเบฒเบ.
เบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบเปเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฑเบเบเบฒเบเบญเบญเบเปเบเบเบเบดเปเบชเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบเบฐเบเบงเบเบเบฒเบเปเบ Linux; เบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบเปเบฅเบงเบกเปเบญเบปเบฒเบเบฑเปเบเปเบเปเบเบต 2007
เปเบเบทเปเบญเบเบฐเบเบฒเบเบฒเบกเปเบเบปเปเบฒเปเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบ Kubernetes เบเบถเปเบเปเบเบฑเบเบเบตเปเบเบดเบเบปเบกเบซเบผเบฒเบ, เปเบซเปเบฅเบญเบเบเบญเบเบเบณเบเบฒเบกเบชเบญเบเบชเบฒเบกเบเปเป. เปเบงเบฅเบฒเบชเบธเบเบเปเบฒเบเบเบตเปเบเบนเปเบเบฑเบเบเบฐเบเบฒเบชเบฒเบกเบฒเบเบเบปเบเบฅเบปเบเบเบฑเบเปเบเปเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบชเบนเปเบเบฒเบเบเบฐเบฅเบดเบ? เบกเบตเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบซเบผเบฒเบเบเบฒเบเปเบเบเบตเปเบเปเบฒเบเบฎเบนเปเบเบฑเบเบเบนเปเบเบตเปเปเบเปเปเบเบทเปเบญเบเบกเบทเบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบชเบฐเบซเบเบญเบเปเบซเปเบญเบญเบเบเบฒเบเบเปเบญเบ? เบกเบทเปเบเบตเปเบกเบตเบเบนเปเบเปเบฅเบดเบซเบฒเบเบเบฅเบฒเบงเบเบฑเบเบเบปเบเบเบตเปเบเปเปเปเบเบปเปเบฒเปเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบ? เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบดเปเบเบเปเบฒเบเบญเบเบเบญเบเบเปเบฒเบเบฒเบกเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบเบปเบเบเบงเบฒเบกเบเบตเป.
เปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเปเบเบฑเบ YAML
เปเบเปเบฅเบเบเบตเปเปเบเปเบเบฒเบ Puppet เปเบฅเบฐ Chef เปเบ Kubernetes, เบซเบเบถเปเบเปเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเปเบซเบเปเบเบตเปเบชเบธเบเปเบกเปเบเบเบฒเบเบเปเบฒเบเบเบฒเบ "เปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเปเบเบฑเบเบฅเบฐเบซเบฑเบ" เปเบ "เปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบ" เปเบเบเบชเบฐเปเบเบฒเบฐ, เปเบเบฑเปเบ YAML. เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเปเบปเบเปเบ Kubernetes, เปเบเบดเปเบเบฎเบงเบกเบกเบตเบเบญเบ, เบเบฒเบเบเบฑเปเบเบเปเบฒ, เบเบปเบงเบขเปเบฒเบเบเบตเปเบเบณเปเบเป, เบเบฐเบฅเบดเบกเบฒเบ เปเบฅเบฐ เบญเบทเปเบเป, เบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเปเบเปเบเปเบฒเบเปเบเปเบเบฅเป YAML. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
apiVersion: v1
kind: Pod
metadata:
name: site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
เบกเบธเบกเปเบเบดเปเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบเบนเปเบเปเบฝเบงเบเบฒเบเบเปเบฒเบ DevOps เบซเบผเบท SRE เปเบเบทเปเบญเบชเบฐเปเบเบเบญเบญเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเบเปเบฝเบงเบเบฑเบเบงเบฝเบเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฝเบเบฅเบฐเบซเบฑเบเปเบเบเบฒเบชเบฒเปเบเบฑเปเบ Python เบซเบผเบท Javascript.
เบเปเปเปเบเปเบเบฝเบเบญเบทเปเบเปเบเบญเบเบเบฒเบเบเบฑเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบเบเบฐเบเบญเบเบกเบต:
- GitOps เบซเบผเบท Git Operations Version Control. เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบฑเบเปเบเบฅเป Kubernetes YAML เบเบฑเบเปเบปเบเปเบงเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ git, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบกเปเบเปเบขเปเบฒเบเปเบเปเบเบญเบเบงเปเบฒเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบกเบทเปเบญเปเบ, เปเบเปเบเบฑเบเบเบนเปเบชเปเบฒเบ เปเบฅเบฐเบญเบฑเบเปเบเบเบทเบเบเปเบฝเบเปเบเบ. เบเบตเปเปเบเบตเปเบกเบเบงเบฒเบกเปเบเปเบเปเบชเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบปเปเบงเบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบเปเบฅเบฐเบเบฑเบเบเบธเบเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบเบเปเบฒเบเบฑเบเบเบงเบฒเบกเบเปเปเปเบเปเบเบญเบ, เปเบเบเบชเบฐเปเบเบฒเบฐเปเบเบเปเบญเบเบเบตเปเบเบฐเบเบฑเบเบเบฒเบเบเบงเบเบเบญเบเบซเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเบงเบเปเบเบปเบฒเบเปเบญเบเบเบฒเบ. เปเบเบเบฐเบเบฐเบเบฝเบงเบเบฑเบ, เบกเบฑเบเบเปเปเบเปเบฒเบเบเบถเปเบเบเบตเปเบเบฐเบเปเบฝเบเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ Kubernetes เปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเบเบฒเบเบฅเบงเบกเปเบญเบปเบฒเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบ.
- เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบฐเบซเบเบฒเบ. เปเบกเบทเปเบญเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบ YAML, เบกเบฑเบเบเบฐเบเบฒเบเปเบเบฑเบเปเบฅเบทเปเบญเบเบเปเบฒเบเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบตเปเบเบฐเบเปเบฝเบเบซเบเบถเปเบเบซเบผเบทเบชเบญเบเบเบปเบงเปเบฅเบเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ Kubernetes, เบเบฑเปเบเบเบฑเปเบเบเบถเปเบเบเปเบฝเบเบงเบดเบเบตเบเบฒเบเบเบฑเบเบเบฐเบซเบเบฒเบ. Kubernetes เบชเบฐเบซเบเบญเบเบเบปเบเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบซเบเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฒเบกเปเบเบงเบเบญเบเบเบญเบเบเบฑเบ, เปเบเบดเปเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเปเบขเปเบฒเบเบชเบฐเบเบงเบเปเบเบทเปเบญเบเปเบฒเบเบปเบเบงเปเบฒเบเปเบฒเบเบงเบ pods เบเปเบฒเปเบชเบธเบเปเบฅเบฐเบชเบนเบเบชเบธเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฐเปเบเบฒเบฐเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเปเบเบฅเบฐเบเบฑเบเบเปเปเบฒเปเบฅเบฐเบชเบนเบ. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเปเบฒเบเปเบเปเบเปเบฒเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบตเปเบกเปเบเบตเบกเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเปเบเบตเปเบกเบเบถเปเบเบขเปเบฒเบเบเบฐเบเบฑเบเบซเบฑเบ, maxReplicas เบชเบฒเบกเบฒเบเบเปเบฝเบเบเบฒเบ 10 เบซเบฒ 20:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: myapp
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp-deployment
minReplicas: 1
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
- เบเบงเบฒเบกเบเบญเบเปเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบ. YAML เปเบกเปเบเบเบตเปเบฅเบตเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเปเบกเบตเบเบงเปเบฒเบชเบดเปเบเบเบตเปเบเบทเบเบเบณเปเบเปเบขเบนเปเปเบ Kubernetes. เบเบปเบงเบขเปเบฒเบ, เบเบงเบฒเบกเบเบฑเบเบงเบปเบเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบกเปเบเปเบเบฑเบเบซเปเบงเบเบงเปเบฒเบงเบฝเบเบเบญเบเปเบเบปเปเบฒเบเปเบฒเบฅเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฑเบเบเบนเปเปเบเปเบเบตเปเบเปเปเปเบกเปเบเบเบนเปเปเบเบดเปเบเปเบเบเบเป? เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบญเบฒเบเบเบฐเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบเบกเบทเปเบเบฑเปเบ:
เบเบฒเบเปเบเปเบเบเบฑเบ , YAML/JSON validator, plusเปเบเบตเบเบเบปเบงเปเบเบเบเบฐเปเบเบเบฒเบ , เบเบนเปเบเบงเบเบชเบญเบเบเบฐเปเบเบเบฒเบเปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบชเบฐเบเบฒเบเบเบฒเบเปเบเบทเปเบญเปเบเบเบงเบฒเบกเบเบญเบเปเบ เบงเบฝเบเบเบฒเบเบเบญเบเปเบเบปเปเบฒเบเปเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฒเบเบฐเบเบฐเปเบฅเปเบเบเปเบงเบเบชเบดเบเบเบดเบเบญเบเบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบ. เบเปเบฒเบญเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบ, เบเบนเปเปเบเปเบชเบฒเบกเบฒเบเปเบเปเบเบฐเปเบเบเบฒเบเบเปเบฒเบเปเปเบเปเบฎเปเบญเบ , เปเบเบเบเบตเป:
package main
deny[msg] {
input.kind = "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot = true
msg = "Containers must not run as root"
}
- เบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเบเบฑเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบฅเบฒเบง. เบซเบเบถเปเบเปเบเบเปเบฒเบญเปเบฝเบเบเบตเปเบซเบเปเบฒเบชเบฑเบเปเบเบเบเบตเปเบชเบธเบเปเบเปเบเบฑเบเปเบเปเบฅเบขเบตเบชเบนเบเบเบญเบเบกเบทเปเบเบตเปเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบฑเบเบชเบฒเบเบฒเบฅเบฐเบเบฐ. เบเบฒเบเบเปเบฒเปเบเปเบญเบปเบเบเบฐเบเบญเบ
cloud-เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบ Kubernetes เบญเบฐโเบเบธโเบเบฒเบโเปเบซเปโเบเบธเปเบกโเปเบโเบซเบเบถเปเบโเปเบเบทเปเบญเบกโเปเบเบโเบเบฑเบโเบเบนเปโเปเบซเปโเบเปโเบฅเบดโเบโเบฅเบฒเบงโเบเบตเปโเบกเบฑเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโ. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบนเปเปเบเปเปเบฅเปเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบ Kubernetes เปเบ AWS เปเบฅเบฐเบเปเบญเบเบเบฒเบเปเบเบตเบเปเบเบตเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฑเปเบเบเปเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบฅเบฒเบงเบเปเบงเบเบชเปเบฒเบเบเปเบฅเบดเบเบฒเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ.LoadBalancer
เปเบเบดเปเบเบเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบAmazon Elastic Load Balancer เปเบเบทเปเบญเบเปเบฝเบเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเปเบเบซเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ pods.
เบเบฒเบเบเบฐเบซเบเบฒเบ
Kubernetes เปเบกเปเบเบเบฐเบซเบเบฒเบเปเบเปเบซเบผเบฒเบ เปเบฅเบฐเบเบนเปเบเบฑเบเบเบฐเบเบฒเบกเบฑเบเบกเบฑเบ. เบกเบตเบเบธเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบกเบตเบขเบนเปเปเบเบฑเปเบ: เบเบฑเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบ, StatefulSets
, เบเบงเบฒเบกโเบฅเบฑเบโ, ConfigMaps
, เปเบฅเบฐเบญเบทเปเบเป. เปเบเปเบเบดเบเปเบฅเปเบง, เบเบนเปเปเบเปเปเบฅเบฐเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบฑเบเบเบฐเบเบฒเบเบญเบเบญเบทเปเบเปเปเบเบฎเบนเบเปเบเบ
เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเปเบฒเบเบปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ CronTab
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: crontabs.my.org
spec:
group: my.org
versions:
- name: v1
served: true
storage: true
Schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
cronSpec:
type: string
pattern: '^(d+|*)(/d+)?(s+(d+|*)(/d+)?){4}$'
replicas:
type: integer
minimum: 1
maximum: 10
scope: Namespaced
names:
plural: crontabs
singular: crontab
kind: CronTab
shortNames:
- ct
เบเปเปเบกเบฒเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ CronTab เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:
apiVersion: "my.org/v1"
kind: CronTab
metadata:
name: my-cron-object
spec:
cronSpec: "* * * * */5"
image: my-cron-image
replicas: 5
เบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบ Kubernetes เปเบกเปเบเบงเปเบฒเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบชเบฒเบกเบฒเบเบเบฝเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบญเบเบเบปเบเปเบญเบ.
เบกเบตเปเบเบทเปเบญเบเบกเบทเบเปเบฒเบเบงเบเบซเบเบถเปเบเปเบเบเบธเบกเบเบปเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเปเบเบเบฒเบเบชเปเบฒเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบญเบเบเบปเบเปเบญเบ. เปเบโเบเบฑเบโเบเบฒโเบเบงเบโเปเบเบปเบฒ -
$ operator-sdk new my-operator --repo github.com/myuser/my-operator
เบเบตเปเบชเปเบฒเบเบฅเบฐเบซเบฑเบ boilerplate เบเบฑเบเบซเบกเบปเบเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบฐเบเบญเบเบเบฒเบเบเบญเบเบเปเบฒเบ, เบฅเบงเบกเบเบฑเบเปเบเบฅเป YAML เปเบฅเบฐเบฅเบฐเบซเบฑเบ Golang:
.
|____cmd
| |____manager
| | |____main.go
|____go.mod
|____deploy
| |____role.yaml
| |____role_binding.yaml
| |____service_account.yaml
| |____operator.yaml
|____tools.go
|____go.sum
|____.gitignore
|____version
| |____version.go
|____build
| |____bin
| | |____user_setup
| | |____entrypoint
| |____Dockerfile
|____pkg
| |____apis
| | |____apis.go
| |____controller
| | |____controller.go
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบก APIs เปเบฅเบฐเบเบปเบงเบเบงเบเบเบธเบกเบเบตเปเบเปเบญเบเบเบฒเบ, เปเบเบฑเปเบเบเบตเป:
$ operator-sdk add api --api-version=myapp.com/v1alpha1 --kind=MyAppService
$ operator-sdk add controller --api-version=myapp.com/v1alpha1 --kind=MyAppService
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบชเบธเบเบเปเบฒเบ, เบเบฐเบเบญเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบฅเบฐเบชเบปเปเบเปเบเบเบตเปเบเบฐเบเบฝเบเบเบญเบเบเบฑเบเบเบธเบเบญเบเบเปเบฒเบ:
$ operator-sdk build your.container.registry/youruser/myapp-operator
เบเปเบฒเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเปเบญเบเบเบฒเบเบเบฒเบเบเบงเบเบเบธเบกเบซเบผเบฒเบเบเบงเปเบฒเปเบเบปเปเบฒ, เบฅเบฐเบซเบฑเบ boilerplate เปเบเปเบเบฅเป Go เบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเป. เบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเบเบฑเบเปเบเบเบชเบฐเปเบเบฒเบฐเบเบญเบเบเบปเบงเบเบงเบเบเบธเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบฅเป controller.go
.
เปเบเบเบเบฒเบเบญเบทเปเบ
$ kubectl kudo install zookeeper
$ kubectl kudo install kafka
เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ configure เบกเบฑเบเบเปเบงเบเบเปเบฒเบชเบฑเปเบเบญเบทเปเบ:
$ kubectl kudo install kafka --instance=my-kafka-name
-p ZOOKEEPER_URI=zk-zookeeper-0.zk-hs:2181
-p ZOOKEEPER_PATH=/my-path -p BROKER_CPUS=3000m
-p BROKER_COUNT=5 -p BROKER_MEM=4096m
-p DISK_SIZE=40Gi -p MIN_INSYNC_REPLICAS=3
-p NUM_NETWORK_THREADS=10 -p NUM_IO_THREADS=20
เบเบฐเบงเบฑเบเบเบฐ เบเบณ
เปเบเปเบฅเบเบฐเบชเบญเบเบชเบฒเบกเบเบตเบเปเบฒเบเบกเบฒ, เบเบฒเบเบเปเบญเบ Kubernetes เบเบตเปเบชเปเบฒเบเบฑเบเปเบเปเบญเบญเบเบกเบฒเบเบธเบเปเบชเบญเบเบชเบฒเบกเปเบเบทเบญเบ - เบเบฑเปเบเปเบกเปเบ, เบชเบฒเบกเบซเบฒเบชเบตเปเบเบฒเบเบเปเบญเบเปเบซเบเปเบเปเปเบเบต. เบเปเบฒเบเบงเบเบเบญเบเบฅเบฑเบเบชเบฐเบเบฐเปเบซเบกเปเบเบตเปเบเปเบฒเบชเบฐเปเบซเบเบตเปเบเปเบเปเบฅเบฐเบเบงเบเบกเบฑเบเบเปเปเบซเบผเบธเบเบฅเบปเบ. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเปเปเบกเบตเบชเบฑเบเบเบฒเบเบเบตเปเบเบฐเบเปเบฒเบฅเบปเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบกเบตเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเป - เปเบเบดเปเบเบชเบดเปเบเบเบตเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเปเบเบเบฑเบเบเบธเบเบฑเบ
เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบซเบกเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบธเปเบกเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบตเปเบกเบตเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบซเบผเบฒเบเบเบถเปเบเปเบเบเบปเปเบงเบงเบฝเบเบเบตเปเบซเบผเบฒเบเบซเบผเบฒเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบฑเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบกเบตเบเบงเบฒเบกเบชเบธเบเปเบเบเบฒเบเบเบงเบเบเบธเบกเบซเบผเบฒเบเบเบงเปเบฒเปเบเบปเปเบฒเปเบกเบทเปเบญเบเปเบฒเปเบเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบเบเบปเบเบเบฑเบเบเบฒเบเบเบฐเบฅเบดเบ.
เบเบธเบกเบเบปเบ
เบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบชเปเบฒเบเบฑเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเบเบญเบเบเบงเบฒเบกเบเบดเบเบปเบกเบเบญเบ Kubernetes เปเบกเปเบเบเบงเบฒเบกเปเบเบฑเปเบกเปเบเบเบเบญเบเบเบธเบกเบเบปเบเบเบญเบเบเบปเบ. เปเบเบเบต 2015, เปเบกเบทเปเบญเปเบเบดเบเปเบงเบตเบเบฑเบ 1.0, Kubernetes เปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเปเบฑเบเบชเบฐเปเบนเบเปเบเบ
เบเบฑเบเบกเบตเบเบธเบกเบเบปเบเบเปเบฒเบเป
เบกเบนเบเบเบดเบเบด Cloud Native เบเบฑเบเปเบเบฑเบเปเบเบปเปเบฒเบเบฒเบ CloudNativeCon/KubeCon, เปเบเบดเปเบเปเบเปเบงเบฅเบฒเบเบฝเบ, เปเบเบฑเบเบเบญเบเบเบฐเบเบธเบกเปเบซเบผเปเบเปเบเบตเบเบเบตเปเปเบซเบเปเบเบตเปเบชเบธเบเปเบเปเบฅเบ. เปเบเบเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบถเปเบเบชเบฒเบกเบเบฑเปเบเบเปเปเบเบต, เบกเบฑเบเบเปเบฒเปเบญเบปเบฒเบเบนเปเบเปเบฝเบงเบเบฒเบเบซเบฅเบฒเบเบเบฑเบเบเบปเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบฑเบเบเบธเบ Kubernetes เปเบฅเบฐเบฅเบฐเบเบปเบเบเบดเปเบงเบเบเบญเบเบกเบฑเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบฎเบฝเบเบฎเบนเปเบฅเบฑเบเบชเบฐเบเบฐเปเบซเบกเปเบเบตเปเบเบฒเบเบปเบเปเบเบเบธเบเปเบชเบฒเบกเปเบเบทเบญเบ.
เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, Cloud Native Foundation เบกเบต
เบชเบธเบเบเปเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบทเปเบญเบงเปเบฒ Kubernetes เบเบฐเบเปเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบเบทเบเบฑเบเบงเปเบฒเบเปเปเบกเบตเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบชเบฐเบเบดเบเบญเบเบเบธเบกเบเบปเบเบเบฑเบเบซเบกเบปเบ, เบเปเบญเบเบเบตเปเบเบฐเบเบฒเบเบปเบเบขเบนเปเบฎเปเบงเบกเบเบฑเบเปเบเปเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบเบเบนเปเปเบซเบกเปเปเบเบปเปเบฒเบกเบฒ.
เบญเบฐเบเบฒเบเบปเบ
เบซเบเบถเปเบเปเบเบชเบดเปเบเบเปเบฒเบเบฒเบเบเบปเปเบเบเปเบเบตเปเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบฐเบเปเบญเบเบเบฑเบเบเบฒเบเบเบฑเบเปเบเบญเบฐเบเบฒเบเบปเบเปเบกเปเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบชเบธเบกเปเบชเปเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบปเบงเบกเบฑเบเปเบญเบ, เปเบฅเบฐเบเปเปเปเบกเปเบเบเปเบฝเบงเบเบฑเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบตเปเบกเบฑเบเบเปเบฒเปเบเบตเบเบเบฒเบ. เบกเบฑเบเบเบญเบเบชเบฐเบซเบเบญเบเปเบเบงเปเบเปเบกเปเบซเบผเบปเปเบฒเบเบตเป
เปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฝเบเปเบเปเบเบนเบเบเบทเปเบเบเบดเบงเบเบญเบเบชเบฐเบเบฒเบเบฐเบเบฑเบเบเบธเบเบฑเบเบเบญเบ Kubernetes - เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบกเบฑเบเปเบเบฑเบเบเบฝเบเปเบเปเบเบฒเบเบเบญเบเบเปเบญเบเบซเบตเบ. เบเบนเปเปเบเป Kubernetes เบกเบตเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เบเบงเบฒเบกเบชเบฒเบกเบฒเบ, เปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบญเบทเปเบเปเบเปเบฒเบเบงเบเบซเบผเบฒเบเปเบเบเบฒเบเบเปเบฒเบเบฑเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com