greenplum on pks - 数字化三部曲 · kubelet kube-proxy docker pod kubernetes 101 . greenplum...

53
© Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 翁岩 [email protected] Greenplum on PKS Containerized MPP Database 1

Upload: others

Post on 12-Jun-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

© Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

翁岩⻘青 [email protected]

Greenplum on PKS Containerized MPP Database

1

Page 2: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Cover w/ Image

Agenda

■  Greenplum Architecture

■  Greenplum Data Platform

■  Kubernetes on PCF

■  Greenplum on Kubernetes

■  Q+A

2

Page 3: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

OPEN SOURCE MASSIVELY PARALLEL PROCESSING

DATA WAREHOUSE

WHAT IS GREENPLUM?

3

Page 4: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Greenplum = Massively Parallel Postgres for Analytics

Standby Master

Master Host

SQL

Interconnect

Segment Host

Node1

Segment Host

Node2

Segment Host

Node3

Segment Host

NodeN

Local Storage

Other RDBMSes Spark GemFire

Cloud Object

Storage HDFS Kafka ETL

Spring Cloud

Data Flow

Master Servers Query planning and dispatch

Segment Servers Query processing and data storage

Interconnect

External Sources & Pipelines Parallel loading and streaming

Page 5: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Greenplum Data Platform

ANALYTICAL APPLICATIONS

NATIVE INTERFACES

PIVOTAL GREENPLUM PLATFORM

MULTI- STRUCTURED DATA

SOURCES & PIPELINES

Structured Data

JDBC, ODBC

SQL

ANSI SQL

FLEXIBLE DEPLOYMENT

Local Storage

Other RDBMSes Spark GemFire

Cloud Object

Storage HDFS

JSON, Apache AVRO, Apache Parquet and XML

Teradata SQL

Other DB SQL

Apache MADlib

ML/Statistics/Graph

Python. R, Java, Perl, C

Programmatic

Apache SOLR

Text

PostGIS

GeoSpatial

Custom Apps BI / Reporting Machine Learning AI

On-Premises

NEXT GENERATION

DATA PLATFORM

Kafka ETL Spring Cloud

Data Flow

Massively Parallel (MPP)

PostgreSQL Kernel

Petabyte Scale

Loading

Query Optimizer

(GPORCA)

Workload Manager

Polymorphic Storage

Command Center

SQL Compatibility

(Hyper-Q)

DS Analysts IT Dev

Public Clouds

Private Clouds

Fully Managed Clouds

5

Page 6: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Faster Deployments… How?

6

Page 7: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Have you Have you... ●  Ran out of disk space ?

●  Been able to provision more than 100 postgres instances in few minutes?

●  Faced issues in recovering failures ?

●  Faced issues in expanding the database?

7

Experienced these before with any database?

Page 8: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

RELIABLY DEPLOY AND RUN CONTAINERIZED WORKLOADS.

WHAT IS PKS?

8

Page 9: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes on Pivotal Cloud Foundry

Continuously deliver any app to every major private and public cloud with a single platform.

9

Page 10: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Cloud Native Apps & Greenplum

BOSH

Other Broker

Services

Platform Services

Logging Metrics Monitoring

Pivotal Application Service

VMware GCP Azure Openstack AWS

Cloud Native App

PK

S C

ontro

ller GCP

Service Broker

Harbor

NS

X-T

Kubernetes

Greenplum ML, GeoSpatial, Graph,

GPText, PXF PL/Python, PL/R

SQL

Page 11: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

11

Faster Deployments… How?

Page 12: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Greenplum Data Platform + PKS

12

Page 13: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes 101

Kubernetes Master

13

Page 14: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes Master

kubelet kube-proxy docker

Node

kubelet kube-proxy docker

Node

14

Kubernetes 101

Page 15: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes Master

Pod

kubelet kube-proxy docker

Node

Pod

kubelet kube-proxy docker

Node

15

Kubernetes 101

Page 16: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes Master

Pod

kubelet kube-proxy docker

Node

Pod

kubelet kube-proxy docker

Node

16

Kubernetes 101

Kubectl

Page 17: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes Master

Pod

kubelet kube-proxy docker

Node

Pod

kubelet kube-proxy docker

Node

Storage volumes

17

Kubernetes 101

Page 18: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes Master

Pod

kubelet kube-proxy docker

Node

Pod

kubelet kube-proxy docker

Node

Storage volumes

18

Kubernetes 101

Page 19: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes Master Load Balancer Service

Node Node

Storage volumes

19

Pod

kubelet kube-proxy docker

Node

Pod

Node

Kubernetes 101

Page 20: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Greenplum on Kubernetes

Node

Pod

mirror

kubelet kube-proxy docker

20

Greenplum Service

Pod

kubelet kube-proxy docker

standby

Pod

kubelet kube-proxy docker

Node

Storage volumes

primary

Pod

kubelet kube-proxy docker

master

Page 21: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Deployment topology for Private Cloud Local Storage for Performance & Remote Storage for Flexibility

Page 22: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Benefits

Greenplum on PKS

22

Page 23: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

23

Page 24: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

24

Page 25: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar

25

Page 26: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar

26

Page 27: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar psql gpdb-radar:5432

27

Page 28: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar psql gpdb-radar:5432

28

Amy

Page 29: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar psql gpdb-radar:5432

29

Amy

Page 30: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar psql gpdb-radar:5432

Cluster Amy

30

Amy

Page 31: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar psql gpdb-radar:5432

Cluster Amy

31

Amy

Page 32: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

1.  On Demand Cluster Provisioning

PKS

Radar

Cluster Radar

Cluster Amy

psql gpdb-radar:5432

psql gpdb-amy:5432

32

Amy

Page 33: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

2. Service Discovery

master

Container Pod

We can always discover a container by DNS. For example, DNS address for different roles:

master.greenplum.svc.cluster.local standby.greenplum.svc.cluster.local segment-0a.greenplum.svc.cluster.local segment-0b.greenplum.svc.cluster.local

standby

Container Pod

Mirror segment-0b

Container Pod

Primary segment-0a

Container Pod

33

Page 34: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

3. HA without Rebalancing

seg-0a

Container Pod

seg-0b

Container Pod

seg-1a

Container Pod

seg-1b

Container Pod

Primary

Mirror

34

Page 35: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

3. HA without Rebalancing

seg-0a

Container Pod

seg-0b

Container Pod

seg-1a

Container Pod

seg-1b

Container Pod

Mirror becomes primary And no need for rebalancing.

Primary

Mirror

35

Page 36: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

4. Kubernetes Plugins Support : Container Storage Interface

36

seg-1b

Container Pod

Cloud Storage

Page 37: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

4. Kubernetes Plugins Support : Logging

37

seg-0b

Container Pod

seg-1b

Container Pod

syslog / stderr syslog / stderr

Logging Agent Log Store

Page 38: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

HEY PKS! GIVE ME A GREENPLUM CLUSTER OF

“N” SEGMENTS

GREENPLUM ON PKS DEMO

38

Page 39: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Deploy Greenplum on PKS

Demo

39

Page 40: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

40

Page 41: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Expand Greenplum on PKS

Demo

41

Page 42: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

42

Page 43: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Greenplum Segment Failover

Demo

43

Page 44: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

44

Page 45: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

How to How to

●  Auto segment failover

●  Auto activate standby if master failed

●  Auto expand cluster

45

Automate Greenplum operation on PKS

Page 46: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Greenplum Operator on Kubernetes

Greenplum on PKS

46

Page 47: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Kubernetes Operator

Custom Resource Definitions (CRD) ●  Provides API object framework for a new

resource

●  Used to implement new resource types ○  Data model for Controllers

Controllers

●  Active reconciliation process ○  Current State -> Desired State

●  Used to automate app administration ○  {add, extend, replace} cluster

functionality

Page 48: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Configuration and creation of the greenplum-operator Greenplum Operator Config

Page 49: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

greenplum-operator uses DBA’s config to deploy Greenplum cluster Greenplum Cluster Deployment by Operator

Then DBA runs gpinitsystem or that step can be automated.

Page 50: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Quick, Consistently Repeatable, Pre-Hardened Deployments Greenplum Operator

Future: More automation and self-healing

Page 51: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

More Persistent Volumes Custom Scheduler

Resource Management

Future Work

51

Page 52: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Q & A QUESTIONS?

52

Page 53: Greenplum on PKS - 数字化三部曲 · kubelet kube-proxy docker Pod Kubernetes 101 . Greenplum on Kubernetes Node Pod mirror kubelet kube-proxy docker 20 Greenplum Service

Transforming How The World Builds Software

© Copyright 2017 Pivotal Software, Inc. All rights Reserved. 53