ื›ื™ืฆื“ ืœื—ื‘ืจ ืืฉื›ื•ืœื•ืช Kubernetes ื‘ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื

ื›ื™ืฆื“ ืœื—ื‘ืจ ืืฉื›ื•ืœื•ืช Kubernetes ื‘ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื
ื‘ืจื•ื›ื™ื ื”ื‘ืื™ื ืœืกื“ืจืช ื”ื”ืชื—ืœื” ื”ืžื”ื™ืจื” ืฉืœ Kubernetes ืฉืœื ื•. ื–ื”ื• ื˜ื•ืจ ืงื‘ื•ืข ืขื ื”ืฉืืœื•ืช ื”ืžืขื ื™ื™ื ื•ืช ื‘ื™ื•ืชืจ ืฉืื ื• ืžืงื‘ืœื™ื ื‘ืื™ื ื˜ืจื ื˜ ื•ื‘ื”ื“ืจื›ื•ืช ืฉืœื ื•. ืชืฉื•ื‘ื•ืช ืžื•ืžื—ื” Kubernetes.

ื”ืžื•ืžื—ื” ืฉืœ ื”ื™ื•ื ื”ื•ื ื“ื ื™ืืœ ืคื•ืœื ืฆ'ื™ืง (ื“ื ื™ืืœ ืคื•ืœื ืฆ'ื™ืฅ'). ื“ื ื™ืืœ ืขื•ื‘ื“ ื›ืžื“ืจื™ืš ื•ืžืคืชื— ืชื•ื›ื ื” ื‘ Learnk8s.

ืื ืืชื” ืจื•ืฆื” ืœืขื ื•ืช ืขืœ ื”ืฉืืœื” ืฉืœืš ื‘ืคื•ืกื˜ ื”ื‘ื, ืคื ื” ืืœื™ื ื• ื‘ืžื™ื™ืœ ืื• ื˜ื•ื•ื™ื˜ืจ: @learnk8s.

ืคืกืคืกืชื ืคื•ืกื˜ื™ื ืงื•ื“ืžื™ื? ืžืฆื ืื•ืชื ื›ืืŸ.

ื›ื™ืฆื“ ืœื—ื‘ืจ ืืฉื›ื•ืœื•ืช Kubernetes ื‘ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื?

ื‘ืงืฆืจื”: Kubefed v2 ื‘ืงืจื•ื‘, ื•ืื ื™ ื’ื ืžืžืœื™ืฅ ืœืงืจื•ื ืขืœ ื”ืฉื•ืœื— ะธ ืคืจื•ื™ืงื˜ ืžืชื–ืžืŸ ืจื‘ ืืฉื›ื•ืœื•ืช.

ืœืขืชื™ื ืงืจื•ื‘ื•ืช, ืชืฉืชื™ืช ืžืฉื•ื›ืคืœืช ื•ืžื•ืคืฆืช ืขืœ ืคื ื™ ืื–ื•ืจื™ื ืฉื•ื ื™ื, ื‘ืžื™ื•ื—ื“ ื‘ืกื‘ื™ื‘ื•ืช ืžื‘ื•ืงืจื•ืช.

ืื ืื–ื•ืจ ืื—ื“ ืื™ื ื• ื–ืžื™ืŸ, ื”ืชื ื•ืขื” ืžื•ืขื‘ืจืช ืœืื—ืจ ื›ื“ื™ ืœืžื ื•ืข ื”ืคืจืขื•ืช.

ืขื Kubernetes, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืืกื˜ืจื˜ื’ื™ื” ื“ื•ืžื” ื•ืœื”ืคื™ืฅ ืขื•ืžืกื™ ืขื‘ื•ื“ื” ื‘ืื–ื•ืจื™ื ืฉื•ื ื™ื.

ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืฉื›ื•ืœ ืื—ื“ ืื• ื™ื•ืชืจ ืœื›ืœ ืฆื•ื•ืช, ืื–ื•ืจ, ืกื‘ื™ื‘ื” ืื• ืฉื™ืœื•ื‘ ืฉืœ ืืœืžื ื˜ื™ื ืืœื”.

ื ื™ืชืŸ ืœืืจื— ืืช ื”ืืฉื›ื•ืœื•ืช ืฉืœืš ื‘ืขื ื ื™ื ืฉื•ื ื™ื ื•ื‘ืžืงื•ื.

ืื‘ืœ ืื™ืš ืžืชื›ื ื ื™ื ืชืฉืชื™ืช ืœืคื™ื–ื•ืจ ื’ื™ืื•ื’ืจืคื™ ืฉื›ื–ื”?
ื”ืื ืืชื” ืฆืจื™ืš ืœื™ืฆื•ืจ ืืฉื›ื•ืœ ืื—ื“ ื’ื“ื•ืœ ืขื‘ื•ืจ ืžืกืคืจ ืกื‘ื™ื‘ื•ืช ืขื ืŸ ืขืœ ื’ื‘ื™ ืจืฉืช ืื—ืช?
ืื• ืฉื™ืฉ ืœืš ืืฉื›ื•ืœื•ืช ืงื˜ื ื™ื ืจื‘ื™ื ื•ืžื•ืฆืื™ื ื“ืจืš ืœืฉืœื•ื˜ ื•ืœืกื ื›ืจืŸ ืื•ืชื?

ืืฉื›ื•ืœ ืžื ื”ื™ื’ื•ืช ืื—ื“

ื™ืฆื™ืจืช ืืฉื›ื•ืœ ืื—ื“ ืขืœ ื’ื‘ื™ ืจืฉืช ืื—ืช ืื™ื ื” ื›ืœ ื›ืš ืงืœื”.

ืชืืจ ืœืขืฆืžืš ืฉื™ืฉ ืœืš ืชืื•ื ื”, ื”ืงื™ืฉื•ืจื™ื•ืช ื‘ื™ืŸ ืžืงื˜ืขื™ ืืฉื›ื•ืœ ืื‘ื“ื”.

ืื ื™ืฉ ืœืš ืฉืจืช ืจืืฉื™ ืื—ื“, ืžื—ืฆื™ืช ืžื”ืžืฉืื‘ื™ื ืœื ื™ื•ื›ืœื• ืœืงื‘ืœ ืคืงื•ื“ื•ืช ื—ื“ืฉื•ืช ืžื›ื™ื•ื•ืŸ ืฉื”ื ืœื ื™ื•ื›ืœื• ืœื™ืฆื•ืจ ืงืฉืจ ืขื ื”ืžืืกื˜ืจ.

ื•ื‘ืื•ืชื• ื”ื–ืžืŸ ื™ืฉ ืœืš ื˜ื‘ืœืื•ืช ื ื™ืชื•ื‘ ื™ืฉื ื•ืช (kube-proxy ืœื ื™ื›ื•ืœ ืœื”ื•ืจื™ื“ ื—ื“ืฉื™ื) ื•ืœืœื ืคื•ื“ื™ื ื ื•ืกืคื™ื (kubelet ืœื ื™ื›ื•ืœ ืœื‘ืงืฉ ืขื“ื›ื•ื ื™ื).

ื›ื“ื™ ืœื”ื—ืžื™ืจ ืืช ื”ืžืฆื‘, ืื Kubernetes ืœื ืจื•ืื” ืฆื•ืžืช, ื”ื•ื ืžืกืžืŸ ืื•ืชื• ื›ื™ืชื•ื ื•ืžืคื™ืฅ ืืช ื”ืชืจืžื™ืœื™ื ื”ื—ืกืจื™ื ืœืฆืžืชื™ื ืงื™ื™ืžื™ื.

ื›ืชื•ืฆืื” ืžื›ืš, ื™ืฉ ืœืš ืคื™ ืฉื ื™ื™ื ื™ื•ืชืจ ืชืจืžื™ืœื™ื.

ืื ืชื™ืฆื•ืจ ืฉืจืช ืจืืฉื™ ืื—ื“ ืœื›ืœ ืื–ื•ืจ, ื™ื”ื™ื• ื‘ืขื™ื•ืช ื‘ืืœื’ื•ืจื™ืชื ื”ืงื•ื ืฆื ื–ื•ืก ื‘ืžืกื“ ื”ื ืชื•ื ื™ื etcd. (ืžืฉื•ืขืจ. ed. - ืœืžืขืฉื”, ืžืกื“ ื”ื ืชื•ื ื™ื etcd ืœื ื‘ื”ื›ืจื— ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžืžื•ืงื ื‘ืฉืจืชื™ื ื”ืจืืฉื™ื™ื. ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืื•ืชื• ืขืœ ืงื‘ื•ืฆื” ื ืคืจื“ืช ืฉืœ ืฉืจืชื™ื ื‘ืื•ืชื• ืื–ื•ืจ. ื ื›ื•ืŸ, ื‘ืžืงื‘ื™ืœ ืžืงื‘ืœ ื ืงื•ื“ืช ื›ืฉืœ ืฉืœ ื”ืืฉื›ื•ืœ. ืื‘ืœ ืžื”ืจ.)

etcd ืฉื™ืžื•ืฉื™ื ืืœื’ื•ืจื™ืชื ืจืคืกื•ื“ื”ื›ื“ื™ ืœื ื”ืœ ืžืฉื ื•ืžืชืŸ ืขืœ ื”ืขืจืš ืœืคื ื™ ื›ืชื™ื‘ืชื• ืœื“ื™ืกืง.
ื›ืœื•ืžืจ, ืจื•ื‘ ื”ืžืงืจื™ื ื—ื™ื™ื‘ื™ื ืœื”ื’ื™ืข ืœืงื•ื ืฆื ื–ื•ืก ืœืคื ื™ ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœื›ืชื•ื‘ ืืช ื”ืžื“ื™ื ื” ืœ-etcd.

ืื ื”ื”ืฉื”ื™ื” ื‘ื™ืŸ ืžื•ืคืขื™ etcd ื’ื“ืœื” ื‘ืื•ืคืŸ ื“ืจืžื˜ื™, ื›ืžื• ื‘ืžืงืจื” ืฉืœ ืฉืœื•ืฉื” ืžื•ืคืขื™ etcd ื‘ืื–ื•ืจื™ื ืฉื•ื ื™ื, ืœื•ืงื— ื–ืžืŸ ืจื‘ ืœื ื”ืœ ืžืฉื ื•ืžืชืŸ ืขืœ ืขืจืš ื•ืœื›ืชื•ื‘ ืื•ืชื• ืœื“ื™ืกืง.
ื–ื” ื‘ื ืœื™ื“ื™ ื‘ื™ื˜ื•ื™ ื‘ื‘ืงืจื™ Kubernetes.

ืœืžื ื”ืœ ื”ื‘ืงืจ ืฆืจื™ืš ื™ื•ืชืจ ื–ืžืŸ ื›ื“ื™ ืœืœืžื•ื“ ืขืœ ื”ืฉื™ื ื•ื™ ื•ืœื›ืชื•ื‘ ืืช ื”ืชื’ื•ื‘ื” ืœืžืกื“ ื”ื ืชื•ื ื™ื.

ื•ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ื‘ืงืจ ืื—ื“, ืืœื ื›ืžื”, ื ื•ืฆืจืช ืชื’ื•ื‘ืช ืฉืจืฉืจืช ื•ื”ืืฉื›ื•ืœ ื›ื•ืœื• ืžืชื—ื™ืœ ืœืขื‘ื•ื“ ืœืื˜ ืžืื•ื“.

etcd ื›ืœ ื›ืš ืจื’ื™ืฉ ืœืื—ื‘ื™ื•ืŸ ื”ืชื™ืขื•ื“ ื”ืจืฉืžื™ ืžืžืœื™ืฅ ืœื”ืฉืชืžืฉ ื‘ื›ื•ื ื ื™ SSD ื‘ืžืงื•ื ื‘ื›ื•ื ื ื™ื ืงืฉื™ื—ื™ื ืจื’ื™ืœื™ื.

ื›ืจื’ืข ืื™ืŸ ื“ื•ื’ืžืื•ืช ื˜ื•ื‘ื•ืช ืœืจืฉืช ื’ื“ื•ืœื” ืœืืฉื›ื•ืœ ื‘ื•ื“ื“.

ื‘ืขื™ืงืจื•ืŸ, ืงื”ื™ืœืช ื”ืžืคืชื—ื™ื ื•ืงื‘ื•ืฆืช SIG-cluster ืžื ืกื•ืช ืœื”ื‘ื™ืŸ ืื™ืš ืœืชื–ืžืจ ืืฉื›ื•ืœื•ืช ื‘ืื•ืชื• ืื•ืคืŸ ืฉื‘ื• Kubernetes ืžืชื–ืžืจ ืงื•ื ื˜ื™ื™ื ืจื™ื.

ืืคืฉืจื•ืช 1: ืคื“ืจืฆื™ื™ืช ืืฉื›ื•ืœื•ืช ืขื kubefed

ืชื’ื•ื‘ื” ืจืฉืžื™ืช ืžืืช SIG-cluster - kubefed2, ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ื”ืœืงื•ื— ื•ื”ืžืคืขื™ืœ ื”ืžืงื•ืจื™ ืฉืœ ื”ืคื“ืจืฆื™ื” ืฉืœ kube.

ื‘ืคืขื ื”ืจืืฉื•ื ื”, ื ื™ืกื™ื ื• ืœื ื”ืœ ืื•ืกืฃ ืฉืœ ืืฉื›ื•ืœื•ืช ื›ืื•ื‘ื™ื™ืงื˜ ื‘ื•ื“ื“ ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืคื“ืจืฆื™ื” ืฉืœ kube.

ื”ื”ืชื—ืœื” ื”ื™ื™ืชื” ื˜ื•ื‘ื”, ืื‘ืœ ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื”ืคื“ืจืฆื™ื” ืฉืœ kube ืžืขื•ืœื ืœื ื”ืคื›ื” ืคื•ืคื•ืœืจื™ืช ื›ื™ ื”ื™ื ืœื ืชืžื›ื” ื‘ื›ืœ ื”ืžืฉืื‘ื™ื.

ื”ื•ื ืชืžืš ื‘ืžืฉืœื•ื—ื™ื ื•ืฉื™ืจื•ืชื™ื ืžืื•ื—ื“ื™ื, ืื‘ืœ ืœื ื‘-StatefulSets, ืœืžืฉืœ.
ื›ืžื• ื›ืŸ, ืชืฆื•ืจืช ื”ืคื“ืจืฆื™ื” ื”ื•ืขื‘ืจื” ื‘ืฆื•ืจื” ืฉืœ ื”ืขืจื•ืช ื•ืœื ื”ื™ื™ืชื” ื’ืžื™ืฉื”.

ืชืืจื• ืœืขืฆืžื›ื ื›ื™ืฆื“ ืชื•ื›ืœื• ืœืชืืจ ืืช ื—ืœื•ืงืช ื”ืขืชืง ืขื‘ื•ืจ ื›ืœ ืืฉื›ื•ืœ ื‘ืคื“ืจืฆื™ื” ื‘ืืžืฆืขื•ืช ื”ืขืจื•ืช ื‘ืœื‘ื“.

ื–ื” ื”ื™ื” ื‘ืœื’ืŸ ืžื•ื—ืœื˜.

SIG-cluster ืขืฉื” ืขื‘ื•ื“ื” ืจื‘ื” ืœืื—ืจ kubefed v1 ื•ื”ื—ืœื™ื˜ ืœื’ืฉืช ืœื‘ืขื™ื” ืžื–ื•ื•ื™ืช ืื—ืจืช.

ื‘ืžืงื•ื ื”ืขืจื•ืช, ื”ื ื”ื—ืœื™ื˜ื• ืœืฉื—ืจืจ ื‘ืงืจ ืฉืžื•ืชืงืŸ ืขืœ ืืฉื›ื•ืœื•ืช. ื ื™ืชืŸ ืœื”ืชืื™ื ืื•ืชื• ื‘ืืžืฆืขื•ืช ื”ื’ื“ืจื•ืช ืžืฉืื‘ื™ื ืžื•ืชืืžื•ืช ืื™ืฉื™ืช (CRDs).

ืขื‘ื•ืจ ื›ืœ ืžืฉืื‘ ืฉื™ื”ื™ื” ื—ืœืง ืžื”ืคื“ืจืฆื™ื”, ื™ืฉ ืœืš ื”ื’ื“ืจืช CRD ืžื•ืชืืžืช ืื™ืฉื™ืช ืขื ืฉืœื•ืฉื” ืกืขื™ืคื™ื:

  • ื”ื’ื“ืจื” ืกื˜ื ื“ืจื˜ื™ืช ืฉืœ ืžืฉืื‘, ืœืžืฉืœ ืคืจื™ืกื”;
  • ืกืขื™ืฃ placement, ืฉื‘ื• ืืชื” ืžื’ื“ื™ืจ ื›ื™ืฆื“ ื™ื—ื•ืœืง ื”ืžืฉืื‘ ื‘ืคื“ืจืฆื™ื”;
  • ืกืขื™ืฃ override, ืฉื‘ื• ืขื‘ื•ืจ ืžืฉืื‘ ืกืคืฆื™ืคื™ ืืชื” ื™ื›ื•ืœ ืœืขืงื•ืฃ ืืช ื”ืžืฉืงืœ ื•ื”ืคืจืžื˜ืจื™ื ืžื”ืžื™ืงื•ื.

ื”ื ื” ื“ื•ื’ืžื” ืœืžืกื™ืจื” ืžืฉื•ืœื‘ืช ืขื ืงื˜ืขื™ ืžื™ืงื•ื ื•ืขืงื™ืคื”.

apiVersion: types.federation.k8s.io/v1alpha1
kind: FederatedDeployment
metadata:
  name: test-deployment
  namespace: test-namespace
spec:
  template:
    metadata:
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
            - image: nginx
              name: nginx
  placement:
    clusterNames:
      - cluster2
      - cluster1
  overrides:
    - clusterName: cluster2
      clusterOverrides:
        - path: spec.replicas
          value: 5

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ื”ื™ืฆืข ืžืชื—ืœืง ืขืœ ืคื ื™ ืฉื ื™ ืืฉื›ื•ืœื•ืช: cluster1 ะธ cluster2.

ื”ืืฉื›ื•ืœ ื”ืจืืฉื•ืŸ ืžืกืคืง ืฉืœื•ืฉื” ื”ืขืชืงื™ื, ื•ื”ืฉื ื™ ืžื•ื’ื“ืจ ืœ-5.

ืื ืืชื” ืฆืจื™ืš ืฉืœื™ื˜ื” ืจื‘ื” ื™ื•ืชืจ ืขืœ ืžืกืคืจ ื”ืขืชืงื™ื, kubefed2 ืžืกืคืง ืื•ื‘ื™ื™ืงื˜ ื—ื“ืฉ ืฉืœ ReplicaSchedulingPreference ืฉื‘ื• ื ื™ืชืŸ ืœืฉืงืœืœ ื”ืขืชืงื™ื:

apiVersion: scheduling.federation.k8s.io/v1alpha1
kind: ReplicaSchedulingPreference
metadata:
  name: test-deployment
  namespace: test-ns
spec:
  targetKind: FederatedDeployment
  totalReplicas: 9
  clusters:
    A:
      weight: 1
    B:
      weight: 2

ืžื‘ื ื” ื”-CRD ื•ื”-API ืื™ื ื ืžื•ื›ื ื™ื ืขื“ื™ื™ืŸ, ื•ืขื‘ื•ื“ื” ืคืขื™ืœื” ืžืชื‘ืฆืขืช ื‘ืžืื’ืจ ื”ืคืจื•ื™ืงื˜ื™ื ื”ืจืฉืžื™.

ืฉื™ืžื• ืขื™ืŸ ืขืœ kubefed2, ืื‘ืœ ื–ื›ืจื• ืฉื”ื•ื ืขื“ื™ื™ืŸ ืœื ืžืชืื™ื ืœื™ื™ืฆื•ืจ.

ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ kubefed2 ืžืืช ืžืืžืจ ืจืฉืžื™ ืขืœ kubefed2 ื‘ื‘ืœื•ื’ ืขืœ Kubernetes ื•ื‘ ืžืื’ืจ ืจืฉืžื™ ืฉืœ ืคืจื•ื™ืงื˜ kubefed.

ืืคืฉืจื•ืช 2: ืฉื™ืœื•ื‘ ืืฉื›ื•ืœื•ืช ื‘ืกื’ื ื•ืŸ Booking.com

ื”ืžืคืชื—ื™ื ืฉืœ Booking.com ืœื ืขื‘ื“ื• ืขืœ kubefed v2, ืื‘ืœ ื”ื ื”ื’ื™ืขื• ืขื Shipper - ืžืคืขื™ืœ ืœืžืกื™ืจื” ื‘ืžืกืคืจ ืืฉื›ื•ืœื•ืช, ื‘ืžืกืคืจ ืื–ื•ืจื™ื ื•ื‘ื›ืžื” ืขื ื ื™ื.

ื”ืฉื•ืœื— ื“ื•ืžื” ื‘ืžืงืฆืช ืœ-kubefed2.

ืฉื ื™ ื”ื›ืœื™ื ืžืืคืฉืจื™ื ืœืš ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช ืืกื˜ืจื˜ื’ื™ื™ืช ื”ืคืจื™ืกื” ืžืจื•ื‘ืช ืืฉื›ื•ืœื•ืช ืฉืœืš (ื‘ืื™ื–ื” ืืฉื›ื•ืœื•ืช ืžืฉืชืžืฉื™ื ื•ื›ืžื” ื”ืขืชืงื™ื ื™ืฉ ืœื”ื).

ืื‘ืœ ื”ืžื˜ืจื” ืฉืœ ื”ืฉื•ืœื— ื”ื™ื ืœื”ืคื—ื™ืช ืืช ื”ืกื™ื›ื•ืŸ ืœื˜ืขื•ื™ื•ืช ื‘ืžื”ืœืš ื”ืžืกื™ืจื”.

ื‘-Shipper, ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืกื“ืจื” ืฉืœ ืฉืœื‘ื™ื ื”ืžืชืืจื™ื ืืช ื—ืœื•ืงืช ื”ื”ืขืชืงื™ื ื‘ื™ืŸ ื”ืคืจื™ืกื” ื”ืงื•ื“ืžืช ื•ื”ื ื•ื›ื—ื™ืช ื•ืืช ื ืคื— ื”ืชืขื‘ื•ืจื” ื”ื ื›ื ืกืช.

ื›ืืฉืจ ืืชื” ื“ื•ื—ืฃ ืžืฉืื‘ ืœืืฉื›ื•ืœ, ื‘ืงืจ ื”ืฉื™ืคืจ ืžื•ืฆื™ื ื‘ื”ื“ืจื’ื” ืืช ื”ืฉื™ื ื•ื™ ื”ื–ื” ืขืœ ืคื ื™ ื›ืœ ื”ืืฉื›ื•ืœื•ืช ื”ืžื—ื•ื‘ืจื™ื.

ื›ืžื• ื›ืŸ, ื”ืฉื•ืœื— ืžื•ื’ื‘ืœ ืžืื•ื“.

ืœื“ื•ื’ืžื”, ื”ื•ื ืžืงื‘ืœ ืชืจืฉื™ืžื™ ื”ื’ื” ื›ืงืœื˜ ื•ืื™ื ื• ืชื•ืžืš ื‘ืžืฉืื‘ื™ ื•ื ื™ืœ.
ื‘ืžื•ื ื—ื™ื ื›ืœืœื™ื™ื, Shipper ืขื•ื‘ื“ ื›ืš.

ื‘ืžืงื•ื ืžืกื™ืจื” ืจื’ื™ืœื”, ืขืœื™ืš ืœื™ืฆื•ืจ ืžืฉืื‘ ื™ื™ืฉื•ืžื™ื ื”ื›ื•ืœืœ ืชืจืฉื™ื ื”ื’ื”:

apiVersion: shipper.booking.com/v1alpha1
kind: Application
metadata:
  name: super-server
spec:
  revisionHistoryLimit: 3
  template:
    chart:
      name: nginx
      repoUrl: https://storage.googleapis.com/shipper-demo
      version: 0.0.1
    clusterRequirements:
      regions:
        - name: local
    strategy:
      steps:
        - capacity:
            contender: 1
            incumbent: 100
          name: staging
          traffic:
            contender: 0
            incumbent: 100
        - capacity:
            contender: 100
            incumbent: 0
          name: full on
          traffic:
            contender: 100
            incumbent: 0
    values:
      replicaCount: 3

Shipper ื”ื™ื ืืคืฉืจื•ืช ื˜ื•ื‘ื” ืœื ื™ื”ื•ืœ ืืฉื›ื•ืœื•ืช ืžืจื•ื‘ื™ื, ืื‘ืœ ื”ืงืฉืจ ื”ืงืจื•ื‘ ืฉืœื• ืขื Helm ืจืง ืžืคืจื™ืข.

ืžื” ืื ื›ื•ืœื ื• ื ืขื‘ื•ืจ ืžื”ืœื ืœ ืœื”ืกืชื›ืœ ืื• ืงืคื™ื˜ืŸ?

ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ Shipper ื•ื”ืคื™ืœื•ืกื•ืคื™ื” ืฉืœื• ื‘ื›ืชื•ื‘ืช ื”ื•ื“ืขื” ืจืฉืžื™ืช ืœืขื™ืชื•ื ื•ืช ื–ื•.

ืื ืืชื” ืจื•ืฆื” ืœื—ืคื•ืจ ื‘ืงื•ื“, ืขื‘ื•ืจ ืืœ ืžืื’ืจ ื”ืคืจื•ื™ืงื˜ื™ื ื”ืจืฉืžื™.

ืืคืฉืจื•ืช 3: ืžื™ื–ื•ื’ ืืฉื›ื•ืœื•ืช "ืงืกื".

Kubefed v2 ื•-Shipper ืขื•ื‘ื“ื™ื ืขื ืคื“ืจืฆื™ื™ืช ืืฉื›ื•ืœื•ืช, ื•ืžืกืคืงื™ื ืžืฉืื‘ื™ื ื—ื“ืฉื™ื ืœืืฉื›ื•ืœื•ืช ื‘ืืžืฆืขื•ืช ื”ื’ื“ืจืช ืžืฉืื‘ื™ื ืžื•ืชืืžืช ืื™ืฉื™ืช.

ืื‘ืœ ืžื” ืื ืืชื” ืœื ืจื•ืฆื” ืœืฉื›ืชื‘ ืืช ื›ืœ ื”ืžืฉืœื•ื—ื™ื, StatefulSets, DaemonSets ื•ื›ื•' ื›ื“ื™ ืœื”ืชืžื–ื’?

ื›ื™ืฆื“ ืœื›ืœื•ืœ ืืฉื›ื•ืœ ืงื™ื™ื ื‘ืคื“ืจืฆื™ื” ืžื‘ืœื™ ืœืฉื ื•ืช ืืช YAML?

multi-cluster-scheduler ื”ื•ื ืคืจื•ื™ืงื˜ ืื“ืžื™ืจืœื™ื•ืช, ื”ืขื•ืกืง ื‘ืชื–ืžื•ืŸ ืขื•ืžืกื™ ืขื‘ื•ื“ื” ื‘ืืฉื›ื•ืœื•ืช.

ืื‘ืœ ื‘ืžืงื•ื ืœื”ืžืฆื™ื ื“ืจืš ื—ื“ืฉื” ืœื™ืฆื•ืจ ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ืืฉื›ื•ืœ ื•ืœืขื˜ื•ืฃ ืžืฉืื‘ื™ื ื‘ื”ื’ื“ืจื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช, ืžืชื–ืžืŸ ืจื‘-ืืฉื›ื•ืœื•ืช ืžื•ื˜ื‘ืข ื‘ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ื”ืกื˜ื ื“ืจื˜ื™ ืฉืœ Kubernetes ื•ื™ื™ืจื˜ ืืช ื›ืœ ื”ืงืจื™ืื•ืช ืฉื™ื•ืฆืจื•ืช ืชืจืžื™ืœื™ื.

ื›ืœ ืชืจืžื™ืœ ืฉื ื•ืฆืจ ืžื•ื—ืœืฃ ืžื™ื“ ื‘ื“ืžื”.

ืฉื™ืžื•ืฉื™ื ื‘ืชื–ืžื•ืŸ ืจื‘-ืืฉื›ื•ืœื•ืช webhooks ืœืฉื™ื ื•ื™ ื’ื™ืฉื”ืœื™ื™ืจื˜ ืืช ื”ืฉื™ื—ื” ื•ืœื™ืฆื•ืจ ืชืจืžื™ืœ ื“ืžื” ืกืจืง.

ื”ืชืจืžื™ืœ ื”ืžืงื•ืจื™ ืขื•ื‘ืจ ืžื—ื–ื•ืจ ืชื›ื ื•ืŸ ื ื•ืกืฃ ืฉื‘ื•, ืœืื—ืจ ืกืงืจ ื”ืคื“ืจืฆื™ื” ื›ื•ืœื”, ืžืชืงื‘ืœืช ื”ื—ืœื˜ืช ืžื™ืงื•ื.

ืœื‘ืกื•ืฃ, ื”ืชืจืžื™ืœ ืžื•ืขื‘ืจ ืœืืฉื›ื•ืœ ื”ื™ืขื“.

ื›ืชื•ืฆืื” ืžื›ืš, ื™ืฉ ืœืš ืคื•ื“ ื ื•ืกืฃ ืฉืœื ืขื•ืฉื” ื›ืœื•ื, ืจืง ืชื•ืคืก ืžืงื•ื.

ื”ื™ืชืจื•ืŸ ื”ื•ื ืฉืœื ื”ื™ื™ืช ืฆืจื™ืš ืœื›ืชื•ื‘ ืžืฉืื‘ื™ื ื—ื“ืฉื™ื ื›ื“ื™ ืœืฉืœื‘ ืืกืคืงื”.

ื›ืœ ืžืฉืื‘ ืฉื™ื•ืฆืจ ืคื•ื“ ืžื•ื›ืŸ ืื•ื˜ื•ืžื˜ื™ืช ืœืžื™ื–ื•ื’.

ื–ื” ืžืขื ื™ื™ืŸ, ื›ื™ ืคืชืื•ื ื™ืฉ ืœืš ืืกืคืงื” โ€‹โ€‹ืžืคื•ื–ืจืช ืขืœ ืคื ื™ ื›ืžื” ืื–ื•ืจื™ื, ื•ืืคื™ืœื• ืœื ืฉืžืช ืœื‘. ืขื ื–ืืช, ื–ื” ื“ื™ ืžืกื•ื›ืŸ, ื›ื™ ื”ื›ืœ ื›ืืŸ ื ืฉืขืŸ ืขืœ ืงืกื.

ืื‘ืœ ื‘ืขื•ื“ ืฉ-Shipper ืžื ืกื” ื‘ืขื™ืงืจ ืœื”ืคื—ื™ืช ืืช ื”ื”ืฉืคืขื” ืฉืœ ืžืฉืœื•ื—ื™ื, ืžืชื–ืžืŸ ืจื‘-ืืฉื›ื•ืœื•ืช ืžื˜ืคืœ ื‘ืžืฉื™ืžื•ืช ื›ืœืœื™ื•ืช ื™ื•ืชืจ ื•ืื•ืœื™ ืžืชืื™ื ื™ื•ืชืจ ืœืขื‘ื•ื“ื•ืช ืืฆื•ื•ื”.

ืื™ืŸ ืœื• ืžื ื’ื ื•ืŸ ืžืฉืœื•ื— ื”ื“ืจื’ืชื™ ืžืชืงื“ื.

ื ื™ืชืŸ ืœืžืฆื•ื ืขื•ื“ ืขืœ ืžืชื–ืžืŸ ืจื‘ ืืฉื›ื•ืœื•ืช ื‘ื›ืชื•ื‘ืช ื“ืฃ ื”ืžืื’ืจ ื”ืจืฉืžื™.

ืื ืืชื” ืจื•ืฆื” ืœืงืจื•ื ืขืœ ืœื•ื— ื–ืžื ื™ื ืจื‘-ืืฉื›ื•ืœื•ืช ื‘ืคืขื•ืœื”, Admiralty ื™ืฉ ืžืงืจื” ืฉื™ืžื•ืฉ ืžืขื ื™ื™ืŸ ืขื ืืจื’ื• - ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื”, ืื™ืจื•ืขื™ื, CI ื•-CD Kubernetes.

ื›ืœื™ื ื•ืคืชืจื•ื ื•ืช ืื—ืจื™ื

ื—ื™ื‘ื•ืจ ื•ื ื™ื”ื•ืœ ืฉืœ ืžืกืคืจ ืืฉื›ื•ืœื•ืช ื”ื™ื ืžืฉื™ืžื” ืžื•ืจื›ื‘ืช, ื•ืื™ืŸ ืคืชืจื•ืŸ ืื•ื ื™ื‘ืจืกืœื™.

ืื ืชืจืฆื” ืœื—ืงื•ืจ ืืช ื”ื ื•ืฉื ื”ื–ื” ื™ื•ืชืจ, ื”ื ื” ื›ืžื” ืžืฉืื‘ื™ื:

ื–ื” ื”ื›ืœ ืœื”ื™ื•ื

ืชื•ื“ื” ืฉืงืจืืช ืขื“ ื”ืกื•ืฃ!

ืื ืืชื” ื™ื•ื“ืข ืื™ืš ืœื—ื‘ืจ ืžืกืคืจ ืืฉื›ื•ืœื•ืช ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ, ืชื’ื™ื“ ืœื ื•.

ื ื•ืกื™ืฃ ืืช ื”ืฉื™ื˜ื” ืฉืœืš ืœืงื™ืฉื•ืจื™ื.

ืชื•ื“ื” ืžื™ื•ื—ื“ืช ืœื›ืจื™ืก ื ืกื‘ื™ื˜-ืกืžื™ืช' (ื›ืจื™ืก ื ืกื‘ื™ื˜-ืกืžื™ืช') ื• ื•ื™ื ืกื ื˜ ื“ื” ืกืžื” (ื•ื™ื ืกื ื˜ ื“ื” ืกืžื˜) (ืžื”ื ื“ืก ืืžื™ื ื•ืช ื‘ swatmobile.io) ืœืงืจื™ืืช ื”ืžืืžืจ ื•ืฉื™ืชื•ืฃ ืžื™ื“ืข ืฉื™ืžื•ืฉื™ ืขืœ ืื•ืคืŸ ืคืขื•ืœืช ื”ืคื“ืจืฆื™ื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”