ืืื ืืืฉื ืฆื ืื ืืขืฆืืข
ืืงืืื
ืคืืจืืืืก ืืื ืืึธืก?
ืื ืืืืืืื ืืืึธืก ืคึผืจืึทืืคึผืืื ืืื ืื ืฆื ืึทื ืืืืืงืืขื CCM ืคึฟืึทืจ Yandex.Cloud ืืึธืจ ืฆืื ืืืคืคืึทืื ืืื ืื ืฉืืื ืืืกืงืจืืืื ืืื
ืืืึธืก ืคึผืื ืงื ืืื CCM?
ืืืคึผืืงืึทืืื, ืืืจ ืฆืืืจืืืื ืื ืกืืืืืืข ืึทืจืื ืืื ืื ืคึฟืึทืจ ืืขื ืงื ืืื ืคืื ืึทืจืืืก - ืคึฟืึทืจ ืืืึทืฉืคึผืื, ื ืืฆื Terraform. ืืืขืจ ืืื ืขืก ืืื ืึท ื ืืื ืฆื ืคืืจื ืื ืืืึธืืงื ืกืืืืืืข ืึทืจืื ืืื ืื ืคืื ืงื ืืื. ืื ืืขืืืขืืงืืื ืืื ืฆืืืขืฉืืขืื, ืืื ืขืก ืืื ืขืก ืืืึธืก ืืื ืืืคึผืืึทืืขื ืึทื
ืกืคึผืึทืกืืคืืงืื, ืงืืึธืื ืงืึธื ืืจืึธืืืขืจ ืืึทื ืึทืืขืจ ืืื ืคืื ืฃ ืืืืคึผื ืืืืคึผืก ืคืื ืื ืืขืจืึทืงืฉืึทื:
- ืื ืกืืึทื ืกืื - ืืืคึผืืึทืืึทื ืฅ ืึท 1:1 ืฉืืืืืช ืฆืืืืฉื ืึท ื ืึธืืข ืืืืคืขืฅ ืืื Kubernetes (
Node
) ืืื ืึท ืืืืจืืืึทื ืืึทืฉืื ืืื ืื ืืืึธืืงื ืฉืคึผืืึทืืขืจ. ืคึฟืึทืจ ืืขื ืืืจ:- ืคึผืืึธืืืืจื ืืื ืื ืคืขืื
spec.providerID
ืืื ืื ืืืืคืขืฅNode
. ืืืฉื, ืคึฟืึทืจ OpenStack CCM ืืขื ืคืขืื ืืื ืื ืคืืืืขื ืืข ืคึฟืึธืจืืึทื:openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0
. ืืืจ ืงืขื ืขื ืืขื ืื ื ืึธืืขื ืคืื ืื ืืืึธืืงื ืฉืคึผืืึทืืขืจ ืืื ืื ืืื ืฆืืง UUID ืคืื ืื ืกืขืจืืืขืจ (ืืืืจืืืึทื ืืึทืฉืื ืืื OpenStack) ืคืื ืื ืืืืคืขืฅ; - ืืขืจืืึทื ื
nodeInfo
ืืื ืื ืืืืคืขืฅNode
ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืืืืจืืืึทื ืืึทืฉืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืกืคึผืขืฆืืคืืฆืืจื ืืืึทืฉืคึผืื ืืืคึผ ืืื AWS; - ืืืจ ืงืึธื ืืจืึธืืืจื ืื ืืืึทืืืึทื ืคืื ืึท ืืืืจืืืึทื ืืึทืฉืื ืืื ืื ืืืึธืืงื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืื ืึท ืืืืคืขืฅ
Node
ืืขืืื ืืขื ืืื ืึท ืฉืืึทืNotReady
, ืืืจ ืงืขื ืขื ืงืึธื ืืจืึธืืืจื ืฆื ืื ืืืืจืืืึทื ืืึทืฉืื ืืืืืกืฅ ืืื ืื ืืืึธืืงื ืฉืคึผืืึทืืขืจ ืืืจืproviderID
. ืืืื ืขืก ืืื ื ืืฉื ืืึธืจื, ืืืกืืขืงื ืื ืืืืคืขืฅNode
, ืฐืขืืืข ืจ ืฐืื ื ืื ืืขืจ ืฉ ืคืืจืืืื ื ืื ื ืืข ืจ ืงื ื ื ืืฒืืืง ;
- ืคึผืืึธืืืืจื ืืื ืื ืคืขืื
- Zones - ืฉืืขืื ืื ืืืจืืคืึทื ืคืขืื ืคึฟืึทืจ ืื ืืืืคืขืฅ
Node
, ืึทืืื ืึทื ืื ืกืงืขืืืฉืืืขืจ ืงืขื ืขื ืืืืกืงืืืึทืื ืึท ื ืึธืืข ืคึฟืึทืจ ืื ืคึผืึธื ืืืื ืื ืืงืืืืช ืืื ืืึธื ืขืก ืืื ืื ืืืึธืืงื ืฉืคึผืืึทืืขืจ; - LoadBalancer - ืืืขื ืงืจืืืืืื ื ืึท ืืืืคืขืฅ
Service
ืืื ืืืคึผLoadBalancer
ืงืจืืืืฅ ืึท ืืื ืคืื ืืึทืืึทื ืกืขืจ ืืืึธืก ืืืขื ืคืืจื ืคืึทืจืงืขืจ ืคืื ืึทืจืืืก ืฆื ืื ืงื ืืื ื ืึธืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืื Yandex.Cloud ืืืจ ืงืขื ืขื ื ืืฆืNetworkLoadBalancer
ะธTargetGroup
ืคึฟืึทืจ ืื ืฆืืืขืงื; - ืืึทืจืฉืจืื - ืืืืขื ืึท ื ืขืฅ ืฆืืืืฉื ื ืึธืืื, ืืืืึทื ืืืื Kubernetes ืจืขืงืืืืจืขืืขื ืฅ, ืืขืืขืจ ืคึผืึธื ืืืื ืืึธืื ืืืื ืืืืืขื ืข IP ืึทืืจืขืก ืืื ืงืขื ืขื ืืขืจืืจืืืื ืงืืื ืื ืืขืจืข ืคึผืึธื. ืคึฟืึทืจ ืื ืฆืืืขืงื, ืืืจ ืงืขื ืขื ื ืืฆื ืึท ืึธืืืืขืจืืื ื ืขืฅ (VXLAN, GENEVE) ืึธืืขืจ ืฉืืขืื ืึท ืจืืืื ื ืืืฉ ืืืืึทื ืืื ืื ืืืืจืืืึทื ื ืขืฅ ืคืื ืื ืืืึธืืงื ืฉืคึผืืึทืืขืจ:
- ืืึทื ื - ืึทืืึทืื ืืื ืึทืืืฉ ืึธืจืืขืจืื ื ืคืื ืคึผืื ื ืืฆื ืคึผืืืง ืืื ืกืง. ืืืืืขืก, ืื ืคืึทื ืืงืฉืึทื ืึทืืืื ืืื ืืขืืืขื ืืืื ืคืื CCM, ืึธืืขืจ ืจืขืื ืฆื ืืืื ืืจืืืก ืงืึทืืคึผืืขืงืกืืื ืขืก ืืื ืืจืืืขืจืืขืคืืจื ืฆื ืึท ืืึทืืื ืืขืจ ืคึผืจืืืขืงื, Container Storage Interface (CSI). ืืืจ ืืึธืื ืืขืจืขืื ืืืขืื CSI ืืขืจ ืืื ืึทืืึธื
ะฟะธัะฐะปะธ ืืื, ืืื ืฉืืื ืืขืจืืื ื, ืืคืืืืืืคืจืืื CSI ืฉืึธืคืขืจ.
ืืื ืึทืืขืจ, ืึทืืข ืงืึธื ืื ืืขืจืึทืงืืื ื ืืื ืื ืืืึธืืงื ืืื ืืขืืืขื ืืืื ืืื ืื ืืืืคึผื Git ืจืืคึผืึทืืึทืืึธืจื ืคืื ืื Kubernetes ืคึผืจืืืขืงื ืืื k8s.io/kubernetes/pkg/cloudprovider/providers
, ืึธืืขืจ ืืื ืืึทืฉืืึธืกื ืฆื ืคืึทืจืืึธืื ืืขื ืจืขืื ืฆื ืืขืจ ืื ืงืึทื ืืืื ืืึทื ืก ืคืื ืืจืืขืื ืืื ืึท ืืจืืืก ืงืึธื ืืึทืืข. ืึทืืข ืึทืื ืืืคึผืืึทืืขื ืืืืฉืึทื ื ืืขื ืขื ืืจืืืขืจืืขืคืืจื ืฆื
ืืื ืืื CSI, ืคืืืข ืืจืืืก ืืืึธืืงื ืคึผืจืึทืืืืืืขืจื ืืึธืื ืฉืืื ืืืืืื ื ืืืืขืจ CCMs ืฆื ืืขืืืขืจืืืืฉ ืืืืืงื ืก ืืืืฃ Kubernetes. ืืืื ืืขืจ ืกืึทืคึผืืืืขืจ ืืื ื ืืฉื ืืึธืื CCM, ืึธืืขืจ ืึทืืข ืื ื ืืืืืง ืคืึทื ืืงืฉืึทื ื ืืขื ืขื ืืืจืขืืืืื ืืืจื ืึทืคึผื, ืืืจ ืงืขื ืขื ืื ืกืืจืืืขื ื CCM ืืื.
ืฆื ืฉืจืืึทืื ืืืื ืืืืืขื ืข ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื CCM, ืขืก ืืื ืืขื ืื ืฆื ืื ืกืืจืืืขื ื
ะ
ืืืคึผืืขืืขื ืืึทืืืึธื
ืืื ืืืกืื ืืขืงืืืขื ืฆื ืืขื
ืืืจ ืกืืึทืจืืขื ืึทื ืืืืืงืืื ื (ืึธืืขืจ ืืึทื ืฅ, ืืคืืื ื ืืฆื) ืืื
ืึธืืขืจ, ืืื ืืขื ืืืคึผืืึทืืขื ืืืืฉืึทื ืืืจ ืืขื ืขื ืคืขืื ืืืง:
- ืึธืืขื ืืึทืงืืืฉืึทื ืืืจื JWT IAM ืืึธืงืขื;
- ืกืขืจืืืืก ืงืึธื ืืจืึธืืืขืจ ืฉืืืฆื.
ืืื ืืขืกืงืขื ืืื ืืขื ืืืืจ (ืืืืกืื) ืืื ืืขืืขืืจืึทื, ืืืจ ืคืึธืจืงื ืืึทื ืืขืงืก-ืืืึธืืงื-ืงืึธื ืืจืึธืืืขืจ-ืคืึทืจืืืึทืืืขืจ ืืื ืฆืืืขืืขืื ืื ืคืขืื ืืืง ืคืึทื ืืงืฉืึทื ื.
ืฉืืืกื ืคึฟืขืึดืงืืืื
ืืขืจืืืืึทื, CCM ืฉืืืฆื ืื ืคืืืืขื ืืข ืื ืืขืจืคืืืกืื:
- ืื ืกืืึทื ืกืื;
- Zones;
- LoadBalancer.
ืืื ืืขืจ ืฆืืงืื ืคึฟื, ืืืขื Yandex.Cloud ืกืืึทืจืฅ ืืจืืขืื ืืื ืึทืืืึทื ืกืืจืืข VPC ืงืืืคึผืึทืืืืึทืืื, ืืืจ ืืืขืื ืืืืื ืึท ืฆืืืื ื ืจืึธืืืขืก.
LoadBalanacer ืืื ืืืืคึผื ืึทืจืืืกืจืืคื
ืืืืืขืก, ืืืจ ืืขืคืจืืืื, ืืื ืื ืืขืจืข CCM ืืืคึผืืึทืืึทื ืฅ, ืฆื ืฉืึทืคึฟื ืึท ืคึผืึธืจ ืคืื LoadBalancer
ะธ TargetGroup
ืคึฟืึทืจ ืึทืืขืืขื Service
ืืื ืืืคึผ LoadBalancer
. ืึธืืขืจ, Yandex.Cloud ืืืกืงืึทืืืขืจื ืืืื ืืฉืืงืึทืืืข ืืึทืืจืขื ืขืฆืื ื: ืืืจ ืงืขื ืขื ื ืืฉื ื ืืฆื TargetGroups
ืืื ืื ืืขืจืกืขืงืืื ื Targets
(ืืื SubnetID
- IpAddress
).
ืืขืจืืืขืจ, ืื ืื ืืืฉืืคื CCM, ืึท ืงืึธื ืืจืึธืืืขืจ ืืื ืืึธื ืืฉื, ืืืึธืก ืืืขื ืึทืืืืฉืขืงืฅ ืืืืฉื Node
ืงืึทืืขืงืฅ ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืึทืืข ืื ืืขืจืคืืืกืื ืืืืฃ ืืขืืขืจ ืืืืจืืืึทื ืืึทืฉืื, ืืจืืคึผืขืก ืืื ืืืื ืฆื ืืืืขืจ ืืขืืขืจื ืฆื ืืืืขืจ NetworkID
, ืงืจืืืืฅ ืืืจื TargetGroup
ืืืืฃ NetworkID
, ืืื ืืืื ืืึธื ืืืึธืจืก ืฉืืืืืช. ืืขืจื ืึธื, ืืืขื ืงืจืืืืืื ื ืึท ืืืืคืขืฅ Service
ืืื ืืืคึผ LoadBalanacer
ืืืจ ืคืฉืื ืฆืืืฉืขืคึผืขื ืึท ืคืึทืจ - ืืืฉืืคื TargetGroup
ืฆื ื ืืึท NetworkLoadBalanacer
ืืื.
ืืื ืฆื ืึธื ืืืืื ื ืืฆื?
CCM ืฉืืืฆื Kubernetes ืืืขืจืกืืข 1.15 ืืื ืืขืืขืจ. ืืื ืึท ืงื ืืื, ืคึฟืึทืจ ืขืก ืฆื ืึทืจืืขืื, ืขืก ืจืืงืืืืืขืจื ืึทื ืื ืคืึธื --cloud-provider=external
ืืื ืืึทืฉืืืื ืฆื true
ืคึฟืึทืจ ืงืื-ืึทืคึผืืกืขืจืืืขืจ, ืงืื-ืงืึธื ืืจืึธืืืขืจ-ืคืึทืจืืืึทืืืขืจ, ืงืื-ืกืงืขืืืฉืืืขืจ ืืื ืึทืืข ืงืืืขืืขืฅ.
ืึทืืข ื ืืืืืง ืกืืขืคึผืก ืคึฟืึทืจ ืื ืื ืกืืึทืืืจืื ื ืืื ืืขื ืขื ืืืกืงืจืืืื ืืื
ืฆื ื ืืฆื CCM ืืืจ ืืืขื ืืืื ืืึทืจืคึฟื:
-
ืึธื ืืืืึทืื ืืื ืื ืืึทืฉืืึทืืคึผืขืจืืขื ืื ืืืขืืืืืึทืืขืจ ืืืืขื ืืืคืืฆืืจื (folder-id
) Yandex.Cloud; - ืกืขืจืืืืก ืืฉืืื ืคึฟืึทืจ ืื ืืขืจืึทืงืืื ื ืืื ืื Yandex.Cloud API. ืืื ืื ืืึทื ืืคืขืกืืึธ
Secret
ืืื ื ืืืืืงืึทืจืืืขืจืคืืจื ืึธืืขืจืืืื ืฉืืืกืืขื ืคืื ืื ืกืขืจืืืืก ืืฉืืื. ืืื ืื ืืึทืงืืืืขื ืืืืฉืึทืืืืกืงืจืืืื , ืืื ืฆื ืฉืึทืคึฟื ืึท ืกืขืจืืืืก ืืฉืืื ืืื ืืึทืงืืืขื ืฉืืืกืืขื.
ืืืจ ืืืขืื ืืืื ืฆืืคืจืืื ืฆื ืืึทืงืืืขื ืืืื ืืึทืืขืจืงืื ืืขื ืืื
ืจืขืืืืืึทืื ืคืื
ืืืจ ืืึธืื ืฉืืื ื ืืฆื ืื ืืืคึผืืึทืืขื ืึทื CCM ืืื ืคืื ืฃ Kubernetes ืงืืึทืกืืขืจื ืืื ืื ืืขืฆืืข ืฆืืืื ืืืึธืื ืืื ืคึผืืึทื ืืจื ืฆื ืืงืกืคึผืึทื ื ืืืืขืจ ื ืืืขืจ ืฆื 20 ืืื ืื ืงืืืขื ืืืง ืืืืฉ. ืืืจ ืจืขืงืึธืืขื ืืืจื ื ืืฉื ืฆื ื ืืฆื CCM ืคึฟืึทืจ ืืจืืืก ืืื ืงืจืืืืฉ ืง8ืก ืื ืกืืึทืืืืฉืึทื ื.
ืืื ืืื ืืขื ืคืึทื ืคืื CSI, ืืืจ ืืืขืื ืืืื ืฆืืคืจืืื ืืืื ืืึทื ืืขืงืก ืืขืืืขืืึธืคึผืขืจืก ื ืขืืขื ืืืืฃ ืื ืึทื ืืืืืงืืื ื ืืื ืฉืืืฆื ืคืื ืืขื ืคึผืจืืืขืงื - ืืืจ ืืขื ืขื ืืจืืื ืฆื ืึทืจืืืขืจืคืืจื ืื ืจืืคึผืึทืืึทืืึธืจื ืืืืฃ ืืืืขืจ ืืงืฉื ืฆื ืืึทื ืืืขื ืืื ืืึทืกืงืก ืืืึธืก ืืขื ืขื ืืขืจ ืืึทืืืึทืืืง ืคึฟืึทืจ ืืื ืื.
ืคึผืก
ืืืืขื ืขื ืืืื ืืืืฃ ืืื ืืืขืจ ืืืึธื:
- ยซ
ืืื ืืืขืจ ืืขืจืคืึทืจืื ื ืืื ืืขืืืขืืึธืคึผืื ื ืึท CSI ืืจืืืืืขืจ ืืื Kubernetes ืคึฟืึทืจ Yandex.Cloud "; - ยซ
ืืื ืขืก ืืจืื ื ืืื ืืึทืงืืืขื ืฆื ืฆืืืจืืืื ืึท ืงืืืขืจื ืขืืขืก ืงื ืืื? ืึทื ืึทืื ืกืื ื ืึทืืืึธื-ืึธืคึผืขืจืึทืืึธืจ "; - ยซ
ืืงืกืคึผืึทื ืืื ื ืืื ืงืึทืืคึผืืึทืืขื ืืื ื Kubernetes (ืจืขืฆืขื ืืืข ืืื ืืืืืขื ืืึทืจืืื) '.
ืืงืืจ: www.habr.com