áá±áž áá¬á!
ááœá±áá¬áá®áá¡áá¯á¶ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá±á«ááºážá
ááºááᯠáááºáááºáá¯ááºáá±á¬ááºááẠááá·áºá¡á¬áž ááááá±ážááá¯áá«áááºá
á
á¬áááºááá¬ááá¯ááŸá
áºáááºáá«áááº
á€áá±á¬ááºážáá«ážááá¯áá±ážáá¬ážáá»áááºááœáẠKubernetes áá¡áááºááẠááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áºááŒá
áºáááºá
ááœááºááááºáá¬áá»á¬ážááẠLinux ááŸá áá¯ááºáááºážá
ááºáá»á¬ážááᯠáá®ážááŒá¬ážááœá²áá¯ááºáááºá¡ááœáẠá¡áá°ážáá®ááá¯ááºážá¡ááŒá
Ạá
áááºáá²á·áááºá ááœááºááááºáá¬áá»á¬ážááẠáááá áá¯ááŸá
áºááááºážá áá«áááºáááºá
Kubernetes ááẠá¡áááºááŒá±á¬áá·áº á€áá»áŸáá±áááºážá á¬ážáááºááᯠáá¬ážáááºááẠááŒáá¯ážá á¬ážáááºá áá±ážááœááºážá¡áá»áá¯á·ááᯠááŒá±ááŒáá·áºááŒáá«á áá¯á·á á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáá¯ááºáá¯ááºáá±ážááœáẠáááºááá¯á·á¡áá¯á¶ážáá»ááááºááᯠáá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬áá»á¬ážá ááá±á¬áá°áá®ááá¯ááºáá²á·ááá·áº áá±á¬ááºáá¯á¶ážá¡áá»áááºáá¬áž áááºááá·áºá¡áá»áááºááœáẠááŒá áºááááºážá áááááá¬á¡á á¯á¶á¡áááºááᯠááœááºáááºá¡ááŒááºááœáẠáá¶á·ááá¯ážáá±ážáá¬ážááá·áºá¡ááá¯ááºáž developer áááºáá»áŸá¡áá¯á¶ážááŒá¯áááºááᯠáááºáááá«ááá¬ážá ááá±á·áá±ááºááœáẠá¡ááá®áá±ážááŸááºážáá»á¬áž á¡áá¯ááºáá¯ááºáá¯á¶ááᯠáá¬ážááááºáá±á¬ cloud á á®áá¶ááá·áºááœá²áá° áááºáá»áŸááŸáááááºážá á€áá±ážááœááºážáá»á¬ážá¡ááœáẠá¡ááŒá±áá»á¬ážááᯠá€áá±á¬ááºážáá«ážááœáẠááŒáá·áºááŸá¯áá«áááºá
YAML á¡áá±ááŒáá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ
Puppet ááŸáá·áº Chef á០Kubernetes ááá¯á·ááŒá±á¬ááºážááœá¬ážáá±á¬ááá¹áá¬ááœááºá á¡ááŒá®ážáá¬ážáá¯á¶ážááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯ááŸá¬ "infrastructure as code" á០"infrastructure as data" ááá¯á·ááŒá±á¬ááºážááŒááºážâá¡áá°ážáááŒáá·áº YAML áá²á·ááá¯á·ááŒá áºáááºá podsá configurationsá deployed instancesá volumes á¡á ááŸááááºááá¯á·áá«áááºááá·áº 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 áá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯á á€áááºážáááºážááẠááá·áºá¡á¬áž Kubernetes YAML ááá¯ááºá¡á¬ážáá¯á¶ážááᯠgit repositories ááœáẠááááºážáááºážáá¬ážááá¯ááºáá±á¬ááŒá±á¬áá·áº á¡ááŒá±á¬ááºážá¡áá²áá áºáá¯ááŒá¯áá¯ááºááá·áºá¡áá«á áááºáá°á áááºážááá¯ááŒá¯áá¯ááºáá²á·áááºááŸáá·áº á¡ááá¡áá»ááŒá±á¬ááºážáá²ááœá¬ážáááºááᯠá¡ááá¡áá»ááŒá±áá¬áá¶ááá¯ááºáá«áááºá áááºážááẠá¡ááœá²á·á¡á ááºážáá áºááŸááºážáá¯á¶ážááŸá áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážá ááœáá·áºáááºážááŒááºáá¬ááŸá¯ááᯠááá¯ážááŒáá·áºáá¬á á±ááŒá®áž á¡áá°ážáááŒáá·áº áááºáááºážáá»á¬ážááẠáááºážááá¯á·ááá¯á¡ááºááá·áº á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááŸá¬ááœá±ááá·áºááá·áºáá±áá¬ááœáẠáááŸááºážáááºážááŸá¯áá»á¬ážááᯠáááºááŸá¬ážááŒááºážááŒáá·áº áá¯ááºáááºážáá±á¬ááºááœááºááŸá¯ááá¯ááºáᬠá áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá±ážáá«áááºá áá áºáá»áááºáááºážááŸá¬áááºá ááœá²áá°áá±á¬ááºážááá¯ááŸá¯áá áºáá¯ááᯠáá±á«ááºážá ááºážáá¯á¶ááŒáá·áº 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 ááá¬ážáááºá áá áºá á¡áá±á«ááºážáá°áá«áá¡á±ážáá»áá·áºááœáá·áºáá«á á áá¬ážá ááºááŒá±á¬ááºáž áá±áá»á¬á á±ááẠáá°áá«á ááŸááºáááºáá°áá¯á¶ááŒá¯á¶áá±ážá¡ááŒá±á¬ááºážá¡áᬠáááºáá¡áá¯ááºáá¬áááºáá»á¬ážááẠá á®áá¶ááá·áºááœá²áá°á¡ááœáá·áºáá°ážáá»á¬ážááŒáá·áº ááœááºááááºáá¬ááá¯áááºáááºááẠááœáá·áºáááŒá¯áá«á ááá¯á¡ááºáá«á á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠááá¯ážááŸááºážáá±á¬áá°áá«áááᯠáá»áá·áºáá¯á¶ážááá¯ááºáááºááá»áœááºáá±á¬áºáá¯áá±á¬ááºážáá«ááẠ, áá®ááá¯áá»áá¯áž:
package main
deny[msg] {
input.kind = "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot = true
msg = "Containers must not run as root"
}
- cloud áááºáá±á¬ááºááŸá¯áá±ážáá°ááŸáá·áº áá±á«ááºážá
ááºážááŒááºážá¡ááœáẠááœá±ážáá»ááºá
áá¬áá»á¬ážá ááá±á·áá±áẠáááºážááá¬ááŒáá·áºáá¬ážááŸá¯ááœáẠá¡áááºááŸá¬ážáá¯á¶ážáá±á¬ áá±ááºáá±á
á®ážááŒá±á¬ááºážáá»á¬ážáá²á០áá
áºáá¯ááẠá¡áá»á¬ážáá°ááŸá¬ cloud áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážáá±á«áºááœáẠá¡áá¯ááºáá»á¬ážáá¯ááºáá±á¬ááºáááºááŒá
áºáááºá á¡á
áááºá¡ááá¯ááºážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá
cloud-áá¶á·ááá¯ážáá±ážáá° Kubernetes ááẠáááºááá·áº á¡á á¯á¡áá±ážááá¯áááᯠáááºážáááºáááºáá±áá±á¬ cloud áááºáá±á¬ááºááŸá¯áá±ážáá°ááŸáá·áº áá±á«ááºážá ááºážááẠááœáá·áºááŒá¯áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá¯á¶ážááŒá¯áá°áá áºáŠážááẠAWS ááœáẠKubernetes ááœáẠá¡ááá®áá±ážááŸááºážáá áºáá¯á¡á¬áž áá¯ááºáá±á¬ááºááŒá®áž ááá¯á¡ááºááºá¡á¬áž áááºáá±á¬ááºááŸá¯áá áºáá¯ááŸáá áºááá·áº áá±á¬áºáá¯ááºááá¯áá«á cloud áááºáá±á¬ááºááŸá¯áá±ážáá°á áááºáá±á¬ááºááŸá¯ááᯠá¡ááá¯á¡áá»á±á¬ááºáááºáá®ážáá±ážáá«áááºáLoadBalancer
áááºážááẠload balancer ááá¯á¡ááá¯á¡áá»á±á¬ááºáá±ážáááá·áºáááºáAmazon Elastic Load Balancer á¡ááá®áá±ážááŸááºáž pods ááá¯á· áááºážááŒá±á¬ááºážááŒá±á¬ááºážáááºá
áá»á²á·ááœááºááá¯ááºááŸá¯
Kubernetes ááẠá¡ááœááºáá»ááºááŒáá·áºááŒá®áž developer áá»á¬ážá áááºážááá¯ááŸá
áºáááºáááºá áááŸáááá¯ááºáá±á¬á¡áááºážá¡ááŒá
áºáá»á¬ážááŒá
áºááá·áº podsá ááŒáá·áºáá»ááºááŸá¯áá»á¬ážá StatefulSets
áá»áŸáá¯á·ááŸááºáá»ááºáá»á¬ážá ConfigMaps
á
áááºááá¯á· á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááŸáá·áº developer áá»á¬ážááẠáá±á¬ááºááœáẠá¡ááŒá¬ážá¡áááºážá¡ááŒá
áºáá»á¬ážááᯠááá·áºááá¯ááºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºážá¡ááŒá
áºáá
áºáá¯ááᯠáááºááŸááºááá¯áá»áŸáẠ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
áááºážááẠ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 ááŸáá·áº controller ááᯠá€áá²á·ááá¯á· ááá·áºááá¯ááºáááºá
$ 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 áá¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááá¯ááœááºážáá¶áááºá áááºáááºááá¯ááºááá¯ááŒá±á¬ááºážáá²ááá¯ááºáááºá controller.go
.
áá±á¬ááºááẠááá±á¬áá»ááºáá
áºáá¯
$ kubectl kudo install zookeeper
$ kubectl kudo install kafka
ááŒá®ážáá»áŸáẠáááºážááᯠá¡ááŒá¬áž command ááŒáá·áº 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 Foundation ááẠá á¬áá±ážáá±áá»áááºááœáẠááá¹áá¬áá±á«áºááœáẠá¡ááŒá®ážáá¯á¶áž open source ááœááºáááá·áºááŒá áºááá·áº CloudNativeCon/KubeCon ááá¯áááºáž áááºáá¶áá»ááºážááá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áº áá áºááŸá áºáá»áŸáẠáá¯á¶ážááŒáááºáá»ááºážááá±á·ááŸáááŒá®áž Kubernetes ááŸáá·áº áááºážááá±áá áá áºááᯠááŒáŸáá·áºáááºááá¯áá±á¬ áá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬áá±á¬ ááá±á¬áºáááºááŸááºáááºáá»á¬ážááᯠá á¯á ááºážáᬠáá¯á¶ážááá áºááŒáááºáá±á«áºáá¬ááá·áº áááºáá±á¬ááºááŸá¯á¡áá áºáá»á¬ážááᯠáá±á·áá¬áá«á
áá«á·á¡ááŒáẠCloud Native Foundation áááºáž ááŸááá«áááºá
áá±á¬ááºáá¯á¶ážá¡áá±áá²á·á áá°ááœá±á ááá®áááœááºáááºáž áááºááœá²áá±ááŒáá±ááá·áº áá áºáá»áááºáááºážááŸá¬áá² áá°áá áºááœá±ááᯠááŒáá¯ááá¯áá²á· á¡ááá¯ááºá¡áááºážáá áºáá¯áá¯á¶ážáá²á· áááááŸáááŸá¯ááœá±ááá«áá² Kubernetes áá±á¬áẠá¡á±á¬ááºááŒááºááŸá¬ááá¯ááºáá°ážááá¯á· áá»áœááºáá±á¬áºáá¯á¶ááŒááºáá«áááºá
á¡áá¬áááºááŸá¬
á¡áá¬áááºááœáẠdeveloper áá»á¬áž áááºááá¯ááºáááá·áº á¡áááá
áááºáá±á«áºááŸá¯áá»á¬ážáá²ááŸáá
áºáá¯ááŸá¬ áá¯ááºáá¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºážááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááá¯ááºááá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á¡áá±á«áºááá¯ááºáá² á¡á¬áá¯á¶á
áá¯ááºááá¯ááºááŸá¯ááŒá
áºáááºá áááºážááẠá€áááºážááŒá±á¬ááºážáá»á¬ážááŸáá·áº ááá¯ááºáá®áá«áááºá
á€áá±á¬ááºážáá«ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠKubernetes á áááºááŸáá¡ááŒá±á¡áá±á áá»ááºááŸá¬ááŒááºááᯠááŒá
áºááá¯ááºáááºâááááºáá±á¬á·á áááºážááẠáá±áá²áá±á¬ááºáá¡á
áœááºá¡áá»á¬ážáá»áŸáá¬ááŒá
áºáááºá Kubernetes á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááœáẠá¡ááŒá¬ážá¡áááºážá¡ááŒá
áºáá»á¬ážá á
áœááºážáá±á¬ááºáááºáá»á¬ážááŸáá·áº á
á®á
ááºáááºááŸááºááŸá¯áá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááŸááááºá
source: www.habr.com