Kubernetes рдореЗрдВ KubeDirector рдЬрдЯрд┐рд▓ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ

рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред рдЙ: рдореВрд▓ рд▓реЗрдЦ рдмреНрд▓реВрдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╡реАрдПрдорд╡реЗрдпрд░ рдХреЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрдВрдкрдиреА рдереАред рд╡рд╣ рдмрд┐рдЧ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди (рдЖрд╕рд╛рди, рддреЗрдЬ, рд╕рд╕реНрддрд╛) рдмрдирд╛рдиреЗ рдореЗрдВ рдорд╛рд╣рд┐рд░ рд╣реИрдВред BlueK8s рдирд╛рдордХ рдХрдВрдкрдиреА рдХреА рд╣рд╛рд▓рд┐рдпрд╛ рдкрд╣рд▓, рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдЦрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреВрд▓реНрд╕ рдХреА рдПрдХ рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ "рд░рд╛рдЬреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП," рдЗрд╕реЗ рднреА рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдЦ рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИ - рдХреНрдпреВрдмрдбрд╛рдпрд░реЗрдХреНрдЯрд░, рдЬреЛ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд┐рдЧ рдбреЗрдЯрд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдЙрддреНрд╕рд╛рд╣реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ Kubernetes рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирд╣реАрдВ рд╣реИ, K8s рдореЗрдВ рд╕реНрдкрд╛рд░реНрдХ, рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдпрд╛ рд╣рд┐рд╕реЙрдк рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдкрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд┐рд░реНрджреЗрд╢ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддрддреНрдкрд░рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ - рдкреВрд░реНрд╡-рдЕрд▓реНрдлрд╝рд╛ред



KubeDirector рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред KubeDirector рдХреЛ рдХрд╕реНрдЯрдо рд░рд┐рд╕реЛрд░реНрд╕ рдбреЗрдлрд┐рдирд┐рд╢рди (CRD) рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджреЗрд╢реА Kubernetes API рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рджрд░реНрд╢рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореМрдЬреВрджрд╛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд╛рд░рджрд░реНрд╢реА рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдШреЛрд╖рд┐рдд рдХреБрдмрдбрд╛рдпрд░реЗрдХреНрдЯрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмреНрд▓реВрдХреЗ 8 рдХреЗ рдирд╛рдо рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдУрдкрди рд╕реЛрд░реНрд╕ рдкрд╣рд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЕрдм рдореБрдЭреЗ рд╢реАрдШреНрд░ (рдкреВрд░реНрд╡-рдЕрд▓реНрдлрд╝рд╛) KubeDirector рдХреЛрдб рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдпрд╣ рдкреЛрд╕реНрдЯ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

KubeDirector рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдХреНрд▓рд╛рдЙрдб рджреЗрд╢реА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд░рд╛рдЬреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, microservice рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдорд░реНрдердиред
  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╕реНрд╡рддрдВрддреНрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреИрдЯрд░реНрди рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдирдП рд╕реНрдЯреЗрдЯрдлреБрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред

рдХреНрдпреВрдмрдбрд╛рдпрд░реЗрдХреНрдЯрд░ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЛ рдЧрд╣рди рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдЬреИрд╕реЗ рдХрд┐ Hadoop, Spark, Cassandra, TensorFlow, Caffe2 рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЖрджреА рд╣реЛрдиреЗ рджреЗрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ Kubernetes рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХрдо рд╕реЗ рдХрдо рд╡рдХреНрд░ рдФрд░ рдЧреЛ рдкрд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЬрдм рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ KubeDirector рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рд░рд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рдВрдмрджреНрдз рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ KubeDirectorApp рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

KubeDirector рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, GitHub рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдирд┐рдореНрди рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХреНрд▓реЛрди рдХрд░реЗрдВ:

 git clone http://<userid>@github.com/bluek8s/kubedirector. 

рд╕реНрдкрд╛рд░реНрдХ 2.2.1 рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП KubeDirectorApp рдкрд░рд┐рднрд╛рд╖рд╛ kubedirector/deploy/example_catalog/cr-app-spark221e2.json :

  ~> cat kubedirector/deploy/example_catalog/cr-app-spark221e2.json 

  { "apiVersion": "kubedirector.bluedata.io/v1alpha1", "kind": "KubeDirectorApp", "metadata": { "name" : "spark221e2" }, "spec" : { "systemctlMounts": true, "config": { "node_services": [ { "service_ids": [ "ssh", "spark", "spark_master", "spark_worker" ], тАж 

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ KubeDirectorCluster рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдкрд╛рд░реНрдХ 2.2.1 рдХреНрд▓рд╕реНрдЯрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП KubeDirectorCluster рдкрд░рд┐рднрд╛рд╖рд╛ kubedirector/deploy/example_clusters/cr-cluster-spark221.e1.yaml :

 ~> cat kubedirector/deploy/example_clusters/cr-cluster-spark221.e1.yaml 

 apiVersion: "kubedirector.bluedata.io/v1alpha1" kind: "KubeDirectorCluster" metadata: name: "spark221e2" spec: app: spark221e2 roles: - name: controller replicas: 1 resources: requests: memory: "4Gi" cpu: "2" limits: memory: "4Gi" cpu: "2" - name: worker replicas: 2 resources: requests: memory: "4Gi" cpu: "2" limits: memory: "4Gi" cpu: "2" - name: jupyter тАж 

Kubernetes рдкрд░ KubDirector рдХреЗ рд╕рд╛рде рд╕реНрдкрд╛рд░реНрдХ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ


Kubernetes рдореЗрдВ KubeDirector рдХреЗ рд╕рд╛рде рд╕реНрдкрд╛рд░реНрдХ рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯ kubectl version рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (рд╕рдВрд╕реНрдХрд░рдг 1.9 рдпрд╛ рдЕрдзрд┐рдХ) рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

 ~> kubectl version Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.3", GitCommit:"a4529464e4629c21224b3d52edfe0ea91b072862", GitTreeState:"clean", BuildDate:"2018-09-09T18:02:47Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.3", GitCommit:"a4529464e4629c21224b3d52edfe0ea91b072862", GitTreeState:"clean", BuildDate:"2018-09-09T17:53:03Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"} 

рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП KubeDirector рд╕реЗрд╡рд╛ рдФрд░ рдирдореВрдирд╛ KubeDirectorApp рд╕рдВрд╕рд╛рдзрди KubeDirectorApp рдХрд░реЗрдВ:

 cd kubedirector make deploy 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ KubeDirector рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдЧрд╛:

 ~> kubectl get pods NAME READY STATUS RESTARTS AGE kubedirector-58cf59869-qd9hb 1/1 Running 0 1m 

Kubectl рдЪрд▓рд╛рдХрд░ kubectl get KubeDirectorApp рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВ kubectl get KubeDirectorApp :

 ~> kubectl get KubeDirectorApp NAME AGE cassandra311 30m spark211up 30m spark221e2 30m 

рдЕрдм рдЖрдк KubeDirectorCluster рдФрд░ kubectl create -f deploy/example_clusters/cr-cluster-spark211up.yaml рд▓рд┐рдП рдирдореВрдирд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкрд╛рд░реНрдХ 2.2.1 рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ:

 ~> kubectl get pods NAME READY STATUS RESTARTS AGE kubedirector-58cf59869-djdwl 1/1 Running 0 19m spark221e2-controller-zbg4d-0 1/1 Running 0 23m spark221e2-jupyter-2km7q-0 1/1 Running 0 23m spark221e2-worker-4gzbz-0 1/1 Running 0 23m spark221e2-worker-4gzbz-1 1/1 Running 0 23m 

рд╕реНрдкрд╛рд░реНрдХ рднреА рдЪрд▓ рд░рд╣реА рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛:

 ~> kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubedirector ClusterIP 10.98.234.194 <none> 60000/TCP 1d kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 1d svc-spark221e2-5tg48 ClusterIP None <none> 8888/TCP 21s svc-spark221e2-controller-tq8d6-0 NodePort 10.104.181.123 <none> 22:30534/TCP,8080:31533/TCP,7077:32506/TCP,8081:32099/TCP 20s svc-spark221e2-jupyter-6989v-0 NodePort 10.105.227.249 <none> 22:30632/TCP,8888:30355/TCP 20s svc-spark221e2-worker-d9892-0 NodePort 10.107.131.165 <none> 22:30358/TCP,8081:32144/TCP 20s svc-spark221e2-worker-d9892-1 NodePort 10.110.88.221 <none> 22:30294/TCP,8081:31436/TCP 20s 

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреЛрд░реНрдЯ 31533 рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдкрд╛рд░реНрдХ рдорд╛рд╕реНрдЯрд░ UI рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



рд╡рд╣ рд╕рдм рд╣реИ! рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕реНрдкрд╛рд░реНрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдЬреБрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рднреА рддреИрдирд╛рдд рдХрд┐рдпрд╛ред

рдПрдХ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрд╕реЗрдВрдбреНрд░рд╛) рд╕рд┐рд░реНрдл KubeDirectorApp рд╕рд╛рде рдПрдХ рдФрд░ рдлрд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

 kubectl create -f deploy/example_clusters/cr-cluster-cassandra311.yaml 

рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреИрд╕рдВрдбреНрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ:

 ~> kubectl get pods NAME READY STATUS RESTARTS AGE cassandra311-seed-v24r6-0 1/1 Running 0 1m cassandra311-seed-v24r6-1 1/1 Running 0 1m cassandra311-worker-rqrhl-0 1/1 Running 0 1m cassandra311-worker-rqrhl-1 1/1 Running 0 1m kubedirector-58cf59869-djdwl 1/1 Running 0 1d spark221e2-controller-tq8d6-0 1/1 Running 0 22m spark221e2-jupyter-6989v-0 1/1 Running 0 22m spark221e2-worker-d9892-0 1/1 Running 0 22m spark221e2-worker-d9892-1 1/1 Running 0 22m 

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЕрдм рд╕реНрдкрд╛рд░реНрдХ рдХреНрд▓рд╕реНрдЯрд░ (рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреЗ рд╕рд╛рде) рдФрд░ рдХреИрд╕рдВрдбреНрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдЪрд▓рд╛рддрд╛ рд╣реИред рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ kubectl get service рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 ~> kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubedirector ClusterIP 10.98.234.194 <none> 60000/TCP 1d kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 1d svc-cassandra311-seed-v24r6-0 NodePort 10.96.94.204 <none> 22:31131/TCP,9042:30739/TCP 3m svc-cassandra311-seed-v24r6-1 NodePort 10.106.144.52 <none> 22:30373/TCP,9042:32662/TCP 3m svc-cassandra311-vhh29 ClusterIP None <none> 8888/TCP 3m svc-cassandra311-worker-rqrhl-0 NodePort 10.109.61.194 <none> 22:31832/TCP,9042:31962/TCP 3m svc-cassandra311-worker-rqrhl-1 NodePort 10.97.147.131 <none> 22:31454/TCP,9042:31170/TCP 3m svc-spark221e2-5tg48 ClusterIP None <none> 8888/TCP 24m svc-spark221e2-controller-tq8d6-0 NodePort 10.104.181.123 <none> 22:30534/TCP,8080:31533/TCP,7077:32506/TCP,8081:32099/TCP 24m svc-spark221e2-jupyter-6989v-0 NodePort 10.105.227.249 <none> 22:30632/TCP,8888:30355/TCP 24m svc-spark221e2-worker-d9892-0 NodePort 10.107.131.165 <none> 22:30358/TCP,8081:32144/TCP 24m svc-spark221e2-worker-d9892-1 NodePort 10.110.88.221 <none> 22:30294/TCP,8081:31436/TCP 24m 


рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕.


рдпрджрд┐ рдЖрдк KubeDirector рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╡рд┐рдХреА рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реЛрдбрдореИрдк рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдЧрд┐рдЯрд╣рдм рд╢реЗрдб рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпреВрдмрдбрд╛рдпрд░реЗрдХреНрдЯрд░ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦрдХ рд╕реНрд▓реИрдХ рдЪреИрдЯ рдФрд░ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ:

Source: https://habr.com/ru/post/hi428451/


All Articles