ืืจืืืื ืืืืื ืืกืืจืช ืืืชืืื ืืืืืจื ืฉื Kubernetes ืฉืื ื. ืืื ืืืจ ืงืืืข ืขื ืืฉืืืืช ืืืขื ืืื ืืช ืืืืชืจ ืฉืื ื ืืงืืืื ืืืื ืืจื ื ืืืืืจืืืช ืฉืื ื. ืชืฉืืืืช ืืืืื Kubernetes.
ืืืืืื ืฉื ืืืื ืืื ืื ืืื ืคืืื ืฆ'ืืง (
ืื ืืื ืคืืื ืฆ'ืืฅ' ). ืื ืืื ืขืืื ืืืืจืื ืืืคืชื ืชืืื ื ืLearnk8s .
ืื ืืชื ืจืืฆื ืืขื ืืช ืขื ืืฉืืื ืฉืื ืืคืืกื ืืื,
ืคืกืคืกืชื ืคืืกืืื ืงืืืืื?
ืืืฆื ืืืืจ ืืฉืืืืืช Kubernetes ืืืจืืื ื ืชืื ืื ืฉืื ืื?
ืืงืฆืจื:
Kubefed v2 ืืงืจืื , ืืื ื ืื ืืืืืฅ ืืงืจืื ืขืืืฉืืื ะธืคืจืืืงื ืืชืืื ืจื ืืฉืืืืืช .
ืืขืชืื ืงืจืืืืช, ืชืฉืชืืช ืืฉืืืคืืช ืืืืคืฆืช ืขื ืคื ื ืืืืจืื ืฉืื ืื, ืืืืืื ืืกืืืืืช ืืืืงืจืืช.
ืื ืืืืจ ืืื ืืื ื ืืืื, ืืชื ืืขื ืืืขืืจืช ืืืืจ ืืื ืืื ืืข ืืคืจืขืืช.
ืขื Kubernetes, ืืชื ืืืื ืืืฉืชืืฉ ืืืกืืจืืืื ืืืื ืืืืคืืฅ ืขืืืกื ืขืืืื ืืืืืจืื ืฉืื ืื.
ืืชื ืืืื ืืงืื ืืฉืืื ืืื ืื ืืืชืจ ืืื ืฆืืืช, ืืืืจ, ืกืืืื ืื ืฉืืืื ืฉื ืืืื ืืื ืืื.
ื ืืชื ืืืจื ืืช ืืืฉืืืืืช ืฉืื ืืขื ื ืื ืฉืื ืื ืืืืงืื.
ืืื ืืื ืืชืื ื ืื ืชืฉืชืืช ืืคืืืืจ ืืืืืืจืคื ืฉืืื?
ืืื ืืชื ืฆืจืื ืืืฆืืจ ืืฉืืื ืืื ืืืื ืขืืืจ ืืกืคืจ ืกืืืืืช ืขื ื ืขื ืืื ืจืฉืช ืืืช?
ืื ืฉืืฉ ืื ืืฉืืืืืช ืงืื ืื ืจืืื ืืืืฆืืื ืืจื ืืฉืืื ืืืกื ืืจื ืืืชื?
ืืฉืืื ืื ืืืืืช ืืื
ืืฆืืจืช ืืฉืืื ืืื ืขื ืืื ืจืฉืช ืืืช ืืื ื ืื ืื ืงืื.
ืชืืจ ืืขืฆืื ืฉืืฉ ืื ืชืืื ื, ืืงืืฉืืจืืืช ืืื ืืงืืขื ืืฉืืื ืืืื.
ืื ืืฉ ืื ืฉืจืช ืจืืฉื ืืื, ืืืฆืืช ืืืืฉืืืื ืื ืืืืื ืืงืื ืคืงืืืืช ืืืฉืืช ืืืืืื ืฉืื ืื ืืืืื ืืืฆืืจ ืงืฉืจ ืขื ืืืืกืืจ.
ืืืืืชื ืืืื ืืฉ ืื ืืืืืืช ื ืืชืื ืืฉื ืืช (kube-proxy
ืื ืืืื ืืืืจืื ืืืฉืื) ืืืื ืคืืืื ื ืืกืคืื (kubelet ืื ืืืื ืืืงืฉ ืขืืืื ืื).
ืืื ืืืืืืจ ืืช ืืืฆื, ืื Kubernetes ืื ืจืืื ืฆืืืช, ืืื ืืกืื ืืืชื ืืืชืื ืืืคืืฅ ืืช ืืชืจืืืืื ืืืกืจืื ืืฆืืชืื ืงืืืืื.
ืืชืืฆืื ืืื, ืืฉ ืื ืคื ืฉื ืืื ืืืชืจ ืชืจืืืืื.
ืื ืชืืฆืืจ ืฉืจืช ืจืืฉื ืืื ืืื ืืืืจ, ืืืื ืืขืืืช ืืืืืืจืืชื ืืงืื ืฆื ืืืก ืืืกื ืื ืชืื ืื etcd. (ืืฉืืขืจ. ed. - ืืืขืฉื, ืืกื ืื ืชืื ืื etcd ืื ืืืืจื ืืืื ืืืืืช ืืืืงื ืืฉืจืชืื ืืจืืฉืืื. ื ืืชื ืืืคืขืื ืืืชื ืขื ืงืืืฆื ื ืคืจืืช ืฉื ืฉืจืชืื ืืืืชื ืืืืจ. ื ืืื, ืืืงืืื ืืงืื ื ืงืืืช ืืฉื ืฉื ืืืฉืืื. ืืื ืืืจ.)
etcd ืฉืืืืฉืื
ืืืืืจ, ืจืื ืืืงืจืื ืืืืืื ืืืืืข ืืงืื ืฆื ืืืก ืืคื ื ืฉื ืืชื ืืืื ืืืชืื ืืช ืืืืื ื ื-etcd.
ืื ืืืฉืืื ืืื ืืืคืขื etcd ืืืื ืืืืคื ืืจืืื, ืืื ืืืงืจื ืฉื ืฉืืืฉื ืืืคืขื etcd ืืืืืจืื ืฉืื ืื, ืืืงื ืืื ืจื ืื ืื ืืฉื ืืืชื ืขื ืขืจื ืืืืชืื ืืืชื ืืืืกืง.
ืื ืื ืืืื ืืืืื ืืืงืจื Kubernetes.
ืืื ืื ืืืงืจ ืฆืจืื ืืืชืจ ืืื ืืื ืืืืื ืขื ืืฉืื ืื ืืืืชืื ืืช ืืชืืืื ืืืกื ืื ืชืื ืื.
ืืืืืืื ืฉืืื ืืงืจ ืืื, ืืื ืืื, ื ืืฆืจืช ืชืืืืช ืฉืจืฉืจืช ืืืืฉืืื ืืืื ืืชืืื ืืขืืื ืืื ืืืื.
etcd ืื ืื ืจืืืฉ ืืืืืืื
ืืจืืข ืืื ืืืืืืืช ืืืืืช ืืจืฉืช ืืืืื ืืืฉืืื ืืืื.
ืืขืืงืจืื, ืงืืืืช ืืืคืชืืื ืืงืืืฆืช SIG-cluster ืื ืกืืช ืืืืื ืืื ืืชืืืจ ืืฉืืืืืช ืืืืชื ืืืคื ืฉืื Kubernetes ืืชืืืจ ืงืื ืืืื ืจืื.
ืืคืฉืจืืช 1: ืคืืจืฆืืืช ืืฉืืืืืช ืขื kubefed
ืชืืืื ืจืฉืืืช ืืืช SIG-cluster -
ืืคืขื ืืจืืฉืื ื, ื ืืกืื ื ืื ืื ืืืกืฃ ืฉื ืืฉืืืืืช ืืืืืืืงื ืืืื ืืืืฆืขืืช ืืื ืืคืืจืฆืื ืฉื 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 ืืืช
ืืคืฉืจืืช 2: ืฉืืืื ืืฉืืืืืช ืืกืื ืื Booking.com
ืืืคืชืืื ืฉื Booking.com ืื ืขืืื ืขื kubefed v2, ืืื ืื ืืืืขื ืขื Shipper - ืืคืขืื ืืืกืืจื ืืืกืคืจ ืืฉืืืืืช, ืืืกืคืจ ืืืืจืื ืืืืื ืขื ื ืื.
ืฉื ื ืืืืื ืืืคืฉืจืื ืื ืืืชืืื ืืืฉืืช ืืช ืืกืืจืืืืืช ืืคืจืืกื ืืจืืืช ืืฉืืืืืช ืฉืื (ืืืืื ืืฉืืืืืช ืืฉืชืืฉืื ืืืื ืืขืชืงืื ืืฉ ืืื).
ืืื ืืืืจื ืฉื ืืฉืืื ืืื ืืืคืืืช ืืช ืืกืืืื ืืืขืืืืช ืืืืื ืืืกืืจื.
ื-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?
ืืื ืืืงืื ืืืืฆืื ืืจื ืืืฉื ืืืฆืืจ ืืื ืืจืืงืฆืื ืขื ืืืฉืืื ืืืขืืืฃ ืืฉืืืื ืืืืืจืืช ืืืชืืืืช ืืืฉืืช, ืืชืืื ืจื-ืืฉืืืืืช ืืืืืข ืืืืืืจ ืืืืื ืืกืื ืืจืื ืฉื Kubernetes ืืืืจื ืืช ืื ืืงืจืืืืช ืฉืืืฆืจืืช ืชืจืืืืื.
ืื ืชืจืืื ืฉื ืืฆืจ ืืืืืฃ ืืื ืืืื.
ืฉืืืืฉืื ืืชืืืื ืจื-ืืฉืืืืืช
webhooks ืืฉืื ืื ืืืฉื ืืืืจื ืืช ืืฉืืื ืืืืฆืืจ ืชืจืืื ืืื ืกืจืง.
ืืชืจืืื ืืืงืืจื ืขืืืจ ืืืืืจ ืชืื ืื ื ืืกืฃ ืฉืื, ืืืืจ ืกืงืจ ืืคืืจืฆืื ืืืื, ืืชืงืืืช ืืืืืช ืืืงืื.
ืืืกืืฃ, ืืชืจืืื ืืืขืืจ ืืืฉืืื ืืืขื.
ืืชืืฆืื ืืื, ืืฉ ืื ืคืื ื ืืกืฃ ืฉืื ืขืืฉื ืืืื, ืจืง ืชืืคืก ืืงืื.
ืืืชืจืื ืืื ืฉืื ืืืืช ืฆืจืื ืืืชืื ืืฉืืืื ืืืฉืื ืืื ืืฉืื ืืกืคืงื.
ืื ืืฉืื ืฉืืืฆืจ ืคืื ืืืื ืืืืืืืืช ืืืืืื.
ืื ืืขื ืืื, ืื ืคืชืืื ืืฉ ืื ืืกืคืงื โโืืคืืืจืช ืขื ืคื ื ืืื ืืืืจืื, ืืืคืืื ืื ืฉืืช ืื. ืขื ืืืช, ืื ืื ืืกืืื, ืื ืืื ืืื ื ืฉืขื ืขื ืงืกื.
ืืื ืืขืื ืฉ-Shipper ืื ืกื ืืขืืงืจ ืืืคืืืช ืืช ืืืฉืคืขื ืฉื ืืฉืืืืื, ืืชืืื ืจื-ืืฉืืืืืช ืืืคื ืืืฉืืืืช ืืืืืืช ืืืชืจ ืืืืื ืืชืืื ืืืชืจ ืืขืืืืืช ืืฆืืื.
ืืื ืื ืื ืื ืื ืืฉืืื ืืืจืืชื ืืชืงืื.
ื ืืชื ืืืฆืื ืขืื ืขื ืืชืืื ืจื ืืฉืืืืืช ืืืชืืืช
ืื ืืชื ืจืืฆื ืืงืจืื ืขื ืืื ืืื ืื ืจื-ืืฉืืืืืช ืืคืขืืื, Admiralty ืืฉ
ืืืื ืืคืชืจืื ืืช ืืืจืื
ืืืืืจ ืื ืืืื ืฉื ืืกืคืจ ืืฉืืืืืช ืืื ืืฉืืื ืืืจืืืช, ืืืื ืคืชืจืื ืืื ืืืจืกืื.
ืื ืชืจืฆื ืืืงืืจ ืืช ืื ืืฉื ืืื ืืืชืจ, ืื ื ืืื ืืฉืืืื:
ืฆืืืืช ืืืช ืจื ืฆ'ืจ ืืื ืืื ืืืืืจ ืืื ืจืฉืชืืช ืฉืืืช-ืขื ืฉื ืืฉืืืืืช Kubernetes ืฉืื ืื.- ืจืฉืช ืงืืขืื ืืืช ืืืจื ืฉืืืืฉืื
Unimatrix ืืฉืืืื ืขื Spinnaker ืืื ืืชืืืจ ืคืจืืกื ืขื ืคื ื ืืฉืืืืืช ืืจืืืื . - ื ืกื ืืืฉืชืืฉ ื-IPV6 ื
ืจืฉืช ืืืช ืืืกืคืจ ืืืืจืื . - ืืชื ืืืื ืืืฉืชืืฉ ืืจืฉืช ืฉืืจืืช, ืืืฉื
Istio ืืืืืืจ ืืกืคืจ ืืฉืืืืืช . - Cilium, ืชืืกืฃ ืืืฉืง ืจืฉืช ืงืื ืืืื ืจ, ืืฆืืข
ืคืื ืงืฆืืืช ืจืฉืช ืืฉืืื , ืืืืคืฉืจ ืืฉืื ืืกืคืจ ืืฉืืืืืช
ืื ืืื ืืืืื
ืชืืื ืฉืงืจืืช ืขื ืืกืืฃ!
ืื ืืชื ืืืืข ืืื ืืืืจ ืืกืคืจ ืืฉืืืืืช ืืฆืืจื ืืขืืื ืืืชืจ,
ื ืืกืืฃ ืืช ืืฉืืื ืฉืื ืืงืืฉืืจืื.
ืชืืื ืืืืืืช ืืืจืืก ื ืกืืื-ืกืืืช' (
ืืงืืจ: www.habr.com