เชนเซ เชนเชฌเชฐ!
เชเชจเชพเชณเชพเชจเชพ เช
เชเชคเซ, เช
เชฎเซ เชคเชฎเชจเซ เชฏเชพเชฆ เชเชฐเชพเชตเชตเชพ เชฎเชพเชเชเซเช เชเซเช เชเซ เช
เชฎเซ เชตเชฟเชทเชฏ เชชเชฐ เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซเช เชเซเช
เชตเชพเชเชเชจ เชเชจเชเชฆ!
เช เชฒเซเช เชฒเชเชคเซ เชตเชเชคเซ, เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชเชเชฎเชฐ เชเชถเชฐเซ เชเซ.
Linux เชฎเชพเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชจเซ เช
เชฒเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชจเซเชเซเชจเชฐ เชเชพเชธ เชกเชฟเชเชพเชเชจ เชคเชฐเซเชเซ เชถเชฐเซ เชฅเชฏเซเช; เชเชจเซเชเซเชจเชฐ 2007 เชฅเซ เชธเชพเชฎเซเชฒ เชเซ
เชเซเชฌเชฐเชจเซเชเซเชธ เชถเชพ เชฎเชพเชเซ เชฒเซเชเชชเซเชฐเชฟเชฏ เชเซ เชคเซ เชธเชฎเชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ เชฅเซเชกเชพ เชชเซเชฐเชถเซเชจเซเชจเชพ เชเชตเชพเชฌ เชเชชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช. เชเซเชฒเซเชฒเซ เชตเชเชค เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฎเชพเชตเชตเชพ เชคเซ เช เชเชเซ เชธเชเชฎเชค เชฅเชตเชพ เชธเชเซเชทเชฎ เชนเชคเชพ? เชคเชฎเซ เชเซเชเชฒเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเชจเซ เชเชพเชฃเซ เชเซ เชเซ เชเซเช เชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชเชพเชฐเชฃ เชเซ เชคเซเช เชฌเซเชเซเชธเชจเซ เชฌเชนเชพเชฐ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ? เชเชเซ เชเซเชเชฒเชพ เชเซเชฒเชพเชเชก เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐเซเชธ เชเซ เชเซเช เชเชชเซเชฒเซเชเซเชถเชจ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ เชคเซ เชธเชฎเชเซ เชถเชเชคเชพ เชจเชฅเซ? เช เชฎเซ เช เชฒเซเชเชฎเชพเช เช เชชเซเชฐเชถเซเชจเซเชจเชพ เชเชตเชพเชฌเซ เชเซเชเชถเซเช.
YAML เชคเชฐเซเชเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ
เชตเชฟเชถเซเชตเชฎเชพเช เชเซ เชชเชชเซเช เช เชจเซ เชถเซเชซเชฅเซ เชเซเชฌเชฐเชจเซเชเชธ เชธเซเชงเซ เชเชฏเซเช เชนเชคเซเช, เชคเซเชฎเชพเชเชจเซ เชเช เชธเซเชฅเซ เชฎเซเชเซ เชซเซเชฐเชซเชพเชฐ เชนเชคเซ "เชเซเชก เชคเชฐเซเชเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ" เชฅเซ "เชกเซเชเชพ เชคเชฐเซเชเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ" เชคเชฐเชซ - เชเชพเชธ เชเชฐเซเชจเซ, YAML เชจเซ โโเชเซเชฎ. เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเชเชจเชพ เชคเชฎเชพเชฎ เชธเชเชธเชพเชงเชจเซ, เชเซเชฎเชพเช เชชเซเชกเซเชธ, เชฐเซเชชเชฐเซเชเชพเชเชเชจเซ, เชคเซเชจเชพเชค เชฆเชพเชเชฒเชพเช, เชตเซเชฒเซเชฏเซเชฎเซ เชตเชเซเชฐเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ, เชคเซ 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 เชเชชเชฐเซเชถเชจเซเชธ เชธเชเชธเซเชเชฐเชฃ เชจเชฟเชฏเชเชคเซเชฐเชฃ. เช เช เชญเชฟเชเชฎ เชคเชฎเชจเซ เชฌเชงเซ Kubernetes YAML เชซเชพเชเชฒเซเชจเซ เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเชเชฎเชพเช เชฐเชพเชเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เชเซเชฅเซ เชคเชฎเซ เชฌเชฐเชพเชฌเชฐ เชเซเชฐเซ เช เชเชฐเซ เชถเชเซ เชเซ เชซเซเชฐเชซเชพเชฐ เชเซเชฏเชพเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ, เชเซเชฃเซ เชเชฐเซเชฏเซ เช เชจเซ เชฌเชฐเชพเชฌเชฐ เชถเซเช เชฌเชฆเชฒเชพเชฏเซเช. เช เชธเชฎเชเซเชฐ เชธเชเชธเซเชฅเชพเชฎเชพเช เชเชพเชฎเชเซเชฐเซเชจเซ เชชเชพเชฐเชฆเชฐเซเชถเชฟเชคเชพเชฎเชพเช เชตเชงเชพเชฐเซ เชเชฐเซ เชเซ เช เชจเซ เช เชธเซเชชเชทเซเชเชคเชพเชจเซ เชฆเซเชฐ เชเชฐเซเชจเซ เชเชชเชฐเซเชถเชจเชฒ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชฎเชพเช เชธเซเชงเชพเชฐเซ เชเชฐเซ เชเซ, เชเชพเชธ เชเชฐเซเชจเซ เชเซเชฏเชพเช เชเชฐเซเชฎเชเชพเชฐเซเชเช เชคเซเชฎเชจเซ เชเชฐเซเชฐเซ เชธเชเชธเชพเชงเชจเซเชจเซ เชถเซเชง เชเชฐเชตเซ เชเซเชเช. เชคเซ เช เชธเชฎเชฏเซ, เชซเชเซเชค เชชเซเชฒ เชตเชฟเชจเชเชคเซเชจเซ เชฎเชฐเซเช เชเชฐเซเชจเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชธเชเชธเชพเชงเชจเซเชฎเชพเช เชเชชเชฎเซเชณเซ เชซเซเชฐเชซเชพเชฐเซ เชเชฐเชตเชพเชจเซเช เชธเชฐเชณ เชฌเชจเซ เชเซ.
- เชฎเชพเชชเชจเซเชฏเชคเชพ. เชเซเชฏเชพเชฐเซ เชธเชเชธเชพเชงเชจเซเชจเซ YAML เชคเชฐเซเชเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชเซเชฒเชธเซเชเชฐ เชเชชเชฐเซเชเชฐเซ เชฎเชพเชเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชฐเชฟเชธเซเชฐเซเชธเชฎเชพเช เชเช เช เชฅเชตเชพ เชฌเซ เชจเชเชฌเชฐเซ เชฌเชฆเชฒเชตเชพเชจเซเช เช เชคเซเชฏเชเชค เชธเชฐเชณ เชฌเชจเซ เชเซ, เชเซเชจเชพเชฅเซ เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชธเซเชเซเชฒ เชเชฐเซ เชเซ เชคเซ เชฌเชฆเชฒเชพเชฏ เชเซ. เชเซเชฌเชฐเชจเซเชเซเชธ เชชเซเชกเซเชธเชจเชพ เชเชกเชพ เชเชเซเชธเซเชเซเชฒเชฟเชเช เชฎเชพเชเซ เชเช เชฎเชฟเชเซเชจเชฟเชเชฎ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ, เชเซเชจเซ เชเชชเชฏเซเช เชจเซเชเชพ เช เชจเซ เชเชเซเช เชธเซเชคเชฐเชจเชพ เชเซเชฐเชพเชซเชฟเชเชจเซ เชนเซเชจเซเชกเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชเซเชเชธ เชเชฎเชพเชตเช เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช เชชเซเชกเซเชธเชจเซ เชจเซเชฏเซเชจเชคเชฎ เช เชจเซ เชฎเชนเชคเซเชคเชฎ เชธเชเชเซเชฏเชพ เชเซเชเชฒเซ เชเชฐเซเชฐเซ เชเซ เชคเซ เชจเชเซเชเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชพเชชเชฐเซ เชถเชเชพเชฏ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซ เชคเชฎเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเชฎเชพเชตเซเชฏเซเช เชนเซเชฏ เชเซ เชเซเชจเซ เชเซเชฐเชพเชซเชฟเชเชฎเชพเช เช เชเชพเชจเช เชตเชงเชพเชฐเซ เชฅเชตเชพเชจเซ เชเชพเชฐเชฃเซ เชตเชงเชพเชฐเชพเชจเซ เชเซเชทเชฎเชคเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ 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 เช เชฎเซเชฒเซเชฏเชพเชเชเชจ เชฎเชพเชเซ เชถเซเชฐเซเชทเซเช เชเซ เชเซ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชตเชธเซเชคเซเช เชเซเชตเซ เชฐเซเชคเซ เชเซเช เชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเซเชเซเชฏ เชธเซเชฐเชเซเชทเชพ เชเชฟเชเชคเชพ เช เชเซ เชเซ เชถเซเช เชคเชฎเชพเชฐเซเช เชตเชฐเซเชเชฒเซเชก เชฌเชฟเชจ-เชเชกเชฎเชฟเชจ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชคเชฐเซเชเซ เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ. เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เช
เชฎเชจเซ เชธเชพเชงเชจเซเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชถเชเซ เชเซ เชเซเชฎ เชเซ
เชนเชฐเซเชซเชพเช , YAML/JSON เชตเซเชฒเชฟเชกเซเชเชฐ, เชตเชคเซเชคเชพเชชเซเชฒเชฟเชธเซ เชเชเชจเซเช เชเซเชฒเซ , เชธเชเชฆเชฐเซเชญเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชจเซเชคเชฟ เชฎเชพเชจเซเชฏเชเชฐเซเชคเชพเชธเซเชฐเชเซเชทเชพ เชธเชเชฆเชฐเซเชญ เชคเชฎเชพเชฐเชพ เชตเชฐเซเชเชฒเซเชก เชเชจเซเชเซเชจเชฐเชจเซ เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐ เชตเชฟเชถเซเชทเชพเชงเชฟเชเชพเชฐเซ เชธเชพเชฅเซ เชเชฒเชพเชตเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชคเชพ เชจเชฅเซ. เชเซ เช เชเชฐเซเชฐเซ เชนเซเชฏ, เชคเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชเช เชธเชฐเชณ เชจเซเชคเชฟ เชฒเชพเชเซ เชเชฐเซ เชถเชเซ เชเซเชนเซเช เชชเซเชฐเชพเชฐเซเชฅเชจเชพ เชเชฐเซเช เชเซเช , เชเชจเซ เชเซเชฎ:
package main
deny[msg] {
input.kind = "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot = true
msg = "Containers must not run as root"
}
- เชเซเชฒเชพเชเชก เชชเซเชฐเชฆเชพเชคเชพ เชธเชพเชฅเซ เชเชเซเชเชฐเชฃ เชฎเชพเชเซเชจเชพ เชตเชฟเชเชฒเซเชชเซ. เชเชเชจเซ เชเชเซเช เชคเชเชจเซเชเชฎเชพเช เชธเซเชฅเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชตเชฒเชฃเซเชฎเชพเชเชจเซเช เชเช เชเชพเชนเซเชฐ เชเซเชฒเชพเชเชก เชชเซเชฐเชฆเชพเชคเชพเช เชชเชฐ เชตเชฐเซเชเชฒเซเชก เชเชฒเชพเชตเชตเชพเชจเซเช เชเซ. เชเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ
เชฎเซเช เชชเซเชฐเชฆเชพเชคเชพ Kubernetes เชเซเชเชชเชฃ เชเซเชฒเชธเซเชเชฐเชจเซ เชเซเชฒเชพเชเชก เชชเซเชฐเชฆเชพเชคเชพ เชธเชพเชฅเซ เชธเชเชเชฒเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ เชเซเชจเชพ เชชเชฐ เชคเซ เชเชพเชฒเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซ เชเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ AWS เชชเชฐ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฒเชพเชตเซ เชเซ เช เชจเซ เชคเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชธเซเชตเชพ เชฆเซเชตเชพเชฐเชพ เชเชเซเชธเชชเซเช เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ, เชคเซ เชเซเชฒเชพเชเชก เชชเซเชฐเชฆเชพเชคเชพ เชเชชเชฎเซเชณเซ เชธเซเชตเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ.LoadBalancer
เชเซ เชเชชเซเชเชช เชฒเซเชก เชฌเซเชฒเซเชจเซเชธเชฐ เชชเซเชฐเชฆเชพเชจ เชเชฐเชถเซเชเชฎเซเชเซเชจ เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเช เชฒเซเชก เชฌเซเชฒเซเชจเซเชธเชฐ เชเซเชฐเชพเชซเชฟเชเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเซเชกเซเชธ เชชเชฐ เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชเชฐเชตเชพ เชฎเชพเชเซ.
เชตเชฟเชธเซเชคเชฐเชฃเชเซเชทเชฎเชคเชพ
เชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชฌ เช เชเชเซเชธเซเชเซเชจเซเชธเชฟเชฌเชฒ เชเซ เช
เชจเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเชจเซ เชคเซ เชเชฎเซ เชเซ. เชคเซเชฏเชพเช เชเชชเชฒเชฌเซเชง เชธเชเชธเชพเชงเชจเซเชจเซ เชธเชฎเซเชน เชเซ เชเซเชฎ เชเซ เชถเซเชเชเซ, เชเชฎเชพเชตเช, 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
เชชเชพเชเชณเชฅเซ เชเชชเชฃเซ เชเชจเชพ เชเซเชตเซเช เชเชเชเช เชเซเชฐเซเชจเชเซเชฌ เชธเชเชธเชพเชงเชจ เชฌเชจเชพเชตเซ เชถเชเซเช เชเซเช:
apiVersion: "my.org/v1"
kind: CronTab
metadata:
name: my-cron-object
spec:
cronSpec: "* * * * */5"
image: my-cron-image
replicas: 5
เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชเชเซเชธเซเชเซเชจเซเชธเชฟเชฌเชฟเชฒเชฟเชเซ เชฎเชพเชเซเชจเซ เชฌเซเชเซ เชตเชฟเชเชฒเซเชช เช เชเซ เชเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ เชชเซเชคเชพเชจเชพ เชจเชฟเชตเซเชฆเชจเซ เชฒเชเซ เชถเชเซ เชเซ.
เชธเชฎเซเชฆเชพเชฏเชฎเชพเช เชเชตเชพ เชเชฃเชพ เชธเชพเชงเชจเซ เชเซ เชเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชคเซเชฎเชจเชพ เชชเซเชคเชพเชจเชพ เชเชชเชฐเซเชเชฐ เชฌเชจเชพเชตเชตเชพเชจเซเช เชธเชฐเชณ เชฌเชจเชพเชตเซ เชเซ. เชคเซเชฎเชจเซ เชตเชเซเชเซ -
$ operator-sdk new my-operator --repo github.com/myuser/my-operator
เช เชคเชฎเชพเชฐเชพ เชเชชเชฐเซเชเชฐ เชฎเชพเชเซ YAML เชซเชพเชเชฒเซ เช เชจเซ เชเซเชฒเชพเชเช เชเซเชก เชธเชนเชฟเชค เชคเชฎเชพเชฎ เชฌเซเชเชฒเชฐเชชเซเชฒเซเช เชเซเชก เชฌเชจเชพเชตเซ เชเซ:
.
|____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
เชชเชเซ เชคเชฎเซ เชเชฐเซเชฐเซ API เช เชจเซ เชจเชฟเชฏเชเชคเซเชฐเช เชเชฎเซเชฐเซ เชถเชเซ เชเซ, เชเซเชฎ เชเซ:
$ 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
เชเซ เชกเซเชตเชฒเชชเชฐ เชตเชงเซ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชเชเซเชเซ เชเซ, เชคเซ Go เชซเชพเชเชฒเซเชฎเชพเช เชฌเซเชเชฒเชฐเชชเซเชฒเซเช เชเซเชก เชฌเชฆเชฒเซ เชถเชเชพเชฏ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชจเชฟเชฏเชเชคเซเชฐเชเชจเซ เชตเชฟเชถเชฟเชทเซเชเชคเชพเชเชจเซ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเซ เชซเชพเชเชฒเชฎเชพเช เชซเซเชฐเชซเชพเชฐเซ เชเชฐเซ เชถเชเซ เชเซ controller.go
.
เชฌเซเชเซ เชชเซเชฐเซเชเซเชเซเช
$ kubectl kudo install zookeeper
$ kubectl kudo install kafka
เช เชจเซ เชชเชเซ เชคเซเชจเซ เชฌเซเชเชพ เชเชฆเซเชถ เชธเชพเชฅเซ เชเซเช เชตเซ:
$ 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
เชจเชตเซเชจเชคเชพ
เชเซเชฒเซเชฒเชพเช เชเซเชเชฒเชพเชเช เชตเชฐเซเชทเซเชฎเชพเช, เชฆเชฐ เชฅเซเชกเชพ เชฎเชนเชฟเชจเซ เชฎเซเชเซเชฏ เชเซเชฌเชฐเชจเซเชเซเชธ เชฐเชฟเชฒเซเช เชเชตเซ เชฐเชนเซ เชเซ - เชเชเชฒเซ เชเซ เชฆเชฐ เชตเชฐเซเชทเซ เชคเซเชฐเชฃเชฅเซ เชเชพเชฐ เชฎเซเชเซ เชฐเชฟเชฒเซเช. เชคเซเชฎเชพเชเชจเชพ เชฆเชฐเซเชเชฎเชพเช เชฐเชเซ เชเชฐเชพเชฏเซเชฒเซ เชจเชตเซ เชธเซเชตเชฟเชงเชพเชเชจเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชเชเชพเชกเซ เชฅเชคเซ เชจเชฅเซ. เชคเชฆเซเชชเชฐเชพเชเชค, เช เชฎเซเชถเซเชเซเชฒ เชธเชฎเชฏเชฎเชพเช เชชเชฃ เชงเซเชฎเซเช เชฅเชตเชพเชจเชพ เชเซเช เชธเชเชเซเชคเซ เชจเชฅเซ - เชเซเช เชนเชตเซ เชถเซเช เชธเซเชฅเชฟเชคเชฟ เชเซ
เชจเชตเซ เชเซเชทเชฎเชคเชพเช เชคเชฎเชจเซ เชตเชฟเชตเชฟเชง เชตเชฐเซเชเชฒเซเชกเชฎเชพเช เชตเชงเซ เชฒเชตเชเซเช เชฐเซเชคเซ เชเซเชฒเชธเซเชเชฐ เชเชพเชฎเชเซเชฐเซ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เช เชเชชเชฐเชพเชเชค, เชชเซเชฐเซเชกเชเซเชถเชจเชฎเชพเช เชธเซเชงเชพ เช เชเชชเซเชฒเซเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฐเซ เชตเชงเซ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชฎเซเชณเชตเซ เชเซ.
เชธเชฎเซเชฆเชพเชฏ
เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชฒเซเชเชชเซเชฐเชฟเชฏเชคเชพเชจเซเช เชฌเซเชเซเช เชฎเซเชเซเชฏ เชชเชพเชธเซเช เชคเซเชจเชพ เชธเชฎเซเชฆเชพเชฏเชจเซ เชถเชเซเชคเชฟ เชเซ. 2015 เชฎเชพเช, เชตเชฐเซเชเชจ 1.0 เชชเชฐ เชชเชนเซเชเชเซเชฏเชพ เชชเชเซ, เชเซเชฌเชฐเชจเซเชเซเชธ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชฏเซเชเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช
เชตเชฟเชตเชฟเชง เชธเชฎเซเชฆเชพเชฏเซ เชชเชฃ เชเซ
เชเซเชฒเชพเชเชก เชจเซเชเชฟเชต เชซเชพเชเชจเซเชกเซเชถเชจ CloudNativeCon/KubeCon เชจเซเช เชชเชฃ เชเชฏเซเชเชจ เชเชฐเซ เชเซ, เชเซ เชฒเชเชตเชพเชจเชพ เชธเชฎเชฏเซ, เชตเชฟเชถเซเชตเชจเซ เชธเซเชฅเซ เชฎเซเชเซ เชเชชเชจ เชธเซเชฐเซเชธ เชเซเชจเซเชซเชฐเชจเซเชธ เชเซ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชตเชฐเซเชทเชฎเชพเช เชคเซเชฐเชฃ เชตเชเชค เชฏเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ เชนเชเชพเชฐเซ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเชเซเชจเซ เชเชเชธเชพเชฅเซ เชฒเชพเชตเซ เชเซ เชเซเช เชเซเชฌเชฐเชจเซเชเซเชธ เช เชจเซ เชคเซเชจเซ เชเชเซเชธเชฟเชธเซเชเชฎเชจเซ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ, เชคเซเชฎเช เชฆเชฐ เชคเซเชฐเชฃ เชฎเชนเชฟเชจเซ เชฆเซเชเชพเชคเซ เชจเชตเซ เชธเซเชตเชฟเชงเชพเช เชถเซเชเซ เชเซ.
เชตเชงเซเชฎเชพเช, เชเซเชฒเชพเชเชก เชจเซเชเชฟเชต เชซเชพเชเชจเซเชกเซเชถเชจ เชชเชพเชธเซ เชเซ
เชเซเชตเชเซ, เชนเซเช เชฎเชพเชจเซเช เชเซเช เชเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชเชเชฒเซ เชธเชซเชณ เชจเชนเซเช เชฅเชพเชฏ เชเซเชเชฒเซ เชคเซ เชธเชฎเชเซเชฐ เชธเชฎเซเชฆเชพเชฏเชจเชพ เชธเชญเชพเชจ เชชเซเชฐเชฏเชพเชธเซ เชตเชฟเชจเชพ เชเซ, เชเซเชฏเชพเช เชฒเซเชเซ เชเช เชธเชพเชฅเซ เชตเชณเชเซ เชฐเชนเซ เชเซ เชชเชฐเชเชคเซ เชคเซ เช เชธเชฎเชฏเซ เชจเชตเชพ เชเชตเชจเชพเชฐเชพเชเชจเซ เชซเซเชฒเซเชกเชฎเชพเช เชเชตเชเชพเชฐเซ เชเซ.
เชญเชตเชฟเชทเซเชฏ
เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเช เชญเชตเชฟเชทเซเชฏเชฎเชพเช เชเซ เชฎเซเชเซเชฏ เชชเชกเชเชพเชฐเซเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเชถเซ เชคเซ เชเซ เชเซเชกเชจเซ เชตเชฟเชเชคเซ เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ, เช
เชจเซ เชคเซ เชเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชฎเชพเช เชเชพเชฒเซ เชเซ เชคเซเชจเชพ เชชเชฐ เชจเชนเซเช. เชคเซ เช เชตเชฒเชฃเซเชจเซ เชชเซเชฐเซเชฃ เชเชฐเซ เชเซ
เช เชฒเซเชเชฎเชพเช, เช
เชฎเซ เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟเชจเซ เชฎเชพเชคเซเชฐ เชธเชชเชพเชเซเชจเซ เช เชเชเชฐเชกเชพ เชเชฐเซ เชเซ - เชนเชเซเชเชคเชฎเชพเช, เชคเซ เชฎเชพเชคเซเชฐ เชเชเชธเชฌเชฐเซเชเชจเซ เชเซเช เชเซ. Kubernetes เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชชเชพเชธเซ เชคเซเชฎเชจเชพ เชจเชฟเชเชพเชฒ เชชเชฐ เช
เชจเซเชฏ เชเชฃเชพ เชธเชเชธเชพเชงเชจเซ, เชเซเชทเชฎเชคเชพเช เช
เชจเซ เชเซเช เชตเชฃเซเช เชเซ.
เชธเซเชฐเซเชธ: www.habr.com