SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Running MongoDB Enterprise
Database Services on
Kubernetes
At your MongoDB.local, you’ll learn technologies, tools, and best practices that make it easy for you to build
data-driven applications without distraction.
Jason
Mimick
Technical Director, MongoDB
@jmimick
jasonmimick
Agenda
Kubernetes & MongoDB Target Architecture
Demo: installing the MongoDB Operator & Running a replica set
Advanced configurations
Accessing MongoDB services
Release plans: Target GA, Additional Features, OpenShift 3.11
Technologies -
Containers
A standardized unit of software
lightweight, standalone, executable
package of software that includes
everything needed to run an application:
code, runtime, system tools, system
libraries and settings
(https://www.docker.com/resources/what-container)
Technologies -
Kubernetes
Kubernetes is an open-source
system for automating deployment,
scaling, and management of
containerized applications.
(https://kubernetes.io/)
Important Concepts: Master Node, Worker Nodes,
Pods, Image Repo, API
Requirement: >= v1.9
Technologies -
MongoDB Ops
Manager
Ops Manager is a package for
managing MongoDB
deployments.
Management (Automation)
Monitoring
Backups
Cloud Manager
Technologies -
Kubernetes
Operators
An Operator is a method of packaging, deploying
and managing a Kubernetes application. A
Kubernetes application is an application that is
both deployed on Kubernetes and managed using
the Kubernetes APIs and kubectl tooling..
https://www.docker.com/resources/what-container
Kubernetes
MongoDB Ops
Manager
Operator
Architecture
Part 2 - Using the Operator
Getting the operator
Official container images
hosted on quay.io
Public GitHub repository
https://github.com/mongodb/mongodb-enterprise-kub
ernetes
Demo
Installing the Operator
Spin up k8s & install operator
# Start cluster
minikube start
# Install operator
kubectl create -f ./mongodb-enterprise.yaml
# set default namespace (op creates & installs to 'mongodb')
kubectl config set-context $(kubectl config current-context)
--namespace=mongodb
# See all operator stuff
kubectl get all --selector=app=mongodb-enterprise-operator
https://docs.opsmanager.mongodb.com/current/tutorial/install-k8s-operator/
Configuration - Connection to Ops
Manager
---
apiVersion: v1
kind: ConfigMap
metadata:
name: dot-local
data:
projectId:
5b76d1750bd66b7ea136427f
baseUrl:
https://cloud.mongodb.com/
---
apiVersion: v1
kind: Secret
metadata:
name: opsmgr-credentials
stringData:
user: jason.mimick
publicApiKey:
02b9674b-e912-4bf5-bec3-43687
832a6cd
Create Secret & ConfigMap
kubectl create -f opsmgr-credentials.yaml
kubectl create -f dot-local-opsmgr-project.yaml
kubectl get configmaps,secrets
Demo
Deploying a MongoDB
Replica Set
Deploying a Replica Set
apiVersion: mongodb.com/v1
kind: MongoDbReplicaSet
metadata:
name: chicago-rs1
namespace: mongodb
spec:
members: 3
version: 4.0.0
project: dot-local
credentials: opsmgr-credentials
podSpec:
storageClass: standard
kubectl create -f chicago-rs1.yaml
kubectl get all --selector=app=chicago-rs1-svc
NAME READY STATUS RESTARTS AGE
pod/chicago-rs1-0 1/1 Running 12 13h
pod/chicago-rs1-1 1/1 Running 12 13h
pod/chicago-rs1-2 1/1 Running 12 13h
NAME TYPE CLUSTER-IP EXTERNAL-IP
PORT(S) AGE
service/chicago-rs1-svc ClusterIP None <none>
27017/TCP 13h
service/chicago-rs1-svc-external NodePort 10.102.95.40 <none>
27017:30780/TCP 13h
NAME DESIRED CURRENT AGE
statefulset.apps/chicago-rs1 3 3 13h
High Availability - replication + statefulset =
kubectl delete pod chicago-rs1-1
pod "chicago-rs1-1" deleted
root@ip-172-31-19-43:~# kubectl get all --selector=app=chicago-rs1-svc
NAME READY STATUS RESTARTS AGE
pod/chicago-rs1-0 1/1 Running 12 13h
pod/chicago-rs1-1 1/1 Running 0 1m
pod/chicago-rs1-2 1/1 Running 12 13h
NAME TYPE CLUSTER-IP EXTERNAL-IP
PORT(S) AGE
service/chicago-rs1-svc ClusterIP None <none>
27017/TCP 13h
service/chicago-rs1-svc-external NodePort 10.102.95.40 <none>
27017:30780/TCP 13h
NAME DESIRED CURRENT AGE
statefulset.apps/chicago-rs1 3 3 13h
Scaling
# vim chicago-rs1.yaml
# kubectl apply -f chicago-rs1.yaml
mongodbreplicaset.mongodb.com/chicago-rs1 configured
# kubectl get all --selector=app=chicago-rs1-svc
NAME READY STATUS RESTARTS AGE
pod/chicago-rs1-0 1/1 Running 12 13h
pod/chicago-rs1-1 1/1 Running 0 3m
pod/chicago-rs1-2 1/1 Running 12 13h
pod/chicago-rs1-3 1/1 Running 0 10s
NAME TYPE CLUSTER-IP EXTERNAL-IP
PORT(S) AGE
service/chicago-rs1-svc ClusterIP None <none>
27017/TCP 13h
service/chicago-rs1-svc-external NodePort 10.102.95.40 <none>
27017:30780/TCP 13h
NAME DESIRED CURRENT AGE
statefulset.apps/chicago-rs1 4 4 13h
Part 2 - Advanced Configuration
Resource requests
memory, cpu
Persistent Storage - DB right?
apiVersion: mongodb.com/v1
kind: MongoDbReplicaSet
metadata:
name: chicago-rs1
namespace: mongodb
spec:
members: 3
version: 4.0.0
project: dotlocal-chicago
credentials: opsmgr-credentials
podSpec:
storage: 5G
storageClass: managed-premium
Persistent Storage - What's
createdkubectl get sc,pv,pvc 
--output=custom-columns=KIND:.kind,NAME:.metadata.name,STATUS:.status.phas
e
KIND NAME STATUS
StorageClass default <none>
StorageClass managed-premium <none>
PersistentVolume pvc-2428e963-b5ff-11e8-bef4-0a58ac1f12f3 Bound
PersistentVolume pvc-877ac893-b5ff-11e8-bef4-0a58ac1f12f3 Bound
PersistentVolume pvc-c8993a87-b5ff-11e8-bef4-0a58ac1f12f3 Bound
PersistentVolumeClaim data-chicago-rs1-0 Bound
PersistentVolumeClaim data-chicago-rs1-1 Bound
PersistentVolumeClaim data-chicago-rs1-2 Bound
Node Affinity & Anti-Affinity
---
apiVersion: mongodb.com/v1
kind: MongoDbReplicaSet
metadata:
name: chicago-rs1-happy-nodes
namespace: mongodb
spec:
members: 3
version: 4.0.0
project: dotlocal-chicago
credentials: opsmgr-credentials
podSpec:
storage: 5G
storageClass: managed-premium
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: mood
operator: In
values:
- happy
Node Affinity & Anti-Affinity
[ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$ kubectl describe node aks-nodepool1-21637950-{0,1,2} | grep -E
"^Name:|mood"
Name: aks-nodepool1-21637950-0
mood=happy
Name: aks-nodepool1-21637950-1
mood=happy
Name: aks-nodepool1-21637950-2
mood=content
[ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$ kubectl describe node aks-nodepool1-21637950-{0,1,2} | grep -E
"^ mongodb|^Name:"
Name: aks-nodepool1-21637950-0
mongodb chicago-rs1-2 0 (0%) 0 (0%) 0 (0%) 0
(0%)
mongodb chicago-rs1-happy-2 0 (0%) 0 (0%) 0 (0%) 0
(0%)
mongodb chicago-rs1-happy-nodes-0 0 (0%) 0 (0%) 0 (0%) 0
(0%)
mongodb chicago-rs1-happy-nodes-2 0 (0%) 0 (0%) 0 (0%) 0
(0%)
mongodb mongodb-enterprise-operator-57bdc5c59f-lq6gt 0 (0%) 0 (0%) 0 (0%) 0
(0%)
Name: aks-nodepool1-21637950-1
mongodb chicago-rs1-0 0 (0%) 0 (0%) 0 (0%) 0 (0%)
mongodb chicago-rs1-happy-0 0 (0%) 0 (0%) 0 (0%) 0 (0%)
mongodb chicago-rs1-happy-nodes-1 0 (0%) 0 (0%) 0 (0%) 0 (0%)
Name: aks-nodepool1-21637950-2
mongodb chicago-rs1-1 0 (0%) 0 (0%) 0 (0%) 0 (0%)
mongodb chicago-rs1-happy-1 0 (0%) 0 (0%) 0 (0%) 0 (0%)
[ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$ ^C
Demo
Connecting to your MongoDB
deployment
intra-k8s cluster connections
1. Jump into cluster: kubectl exec -it chicago-rs1-0 -- /bin/bash
2. Find mongo binaries - run shell
ps -ef | grep mongo
/var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.0.0/bin/mon
go
"mongodb://chicago-rs1-0.chicago-rs1-svc.mongodb.svc.cluster.local
,chicago-rs1-1.chicago-rs1-svc.mongodb.svc.cluster.local,chicago-r
s1-2.chicago-rs1-svc.mongodb.svc.cluster.local/?replicaSet=chicago
-rs1"
mongodb+srv://
#!/bin/bash
: ${1?"Usage: $0 <MongoDB Service Name>"}
POD_STATE_WAIT_SECONDS=5
SERVICE=$1
DNS_SRV_POD="mongodb-${SERVICE}-dns-srv-test"
SIMPLE_CONNECTION_POD="mongodb-${SERVICE}-connection-test"
echo "MongoDB Enterprise Kubernetes - DNS SRV Connection Test - START"
echo "Testing service '${SERVICE}'"
echo "DNS SRV pod '${DNS_SRV_POD}'"
echo "Connection test pod '${SIMPLE_CONNECTION_POD}'"
kubectl run ${DNS_SRV_POD} --restart=Never --image=tutum/dnsutils -- host -t srv ${SERVICE}
STATE=""
while [ "${STATE}" != "Terminated" ]
do
STATE=$(kubectl describe pod ${DNS_SRV_POD} | grep "State:" | cut -d":" -f2 | tr -d '[:space:]')
if [ "${STATE}" = "Terminated" ]; then break; fi
echo "Polling state for pod '${DNS_SRV_POD}': ${STATE} ...sleeping ${POD_STATE_WAIT_SECONDS}"
sleep ${POD_STATE_WAIT_SECONDS}
done
kubectl logs ${DNS_SRV_POD}
SRV_HOST=$(kubectl logs ${DNS_SRV_POD} | cut -d' ' -f1 | head -1)
echo "Found SRV hostname: '${SRV_HOST}'"
kubectl run ${SIMPLE_CONNECTION_POD} --restart=Never --image=jmimick/simple-mongodb-connection-tester "${SRV_HOST}"
STATE=""
while [ "${STATE}" != "Terminated" ]
do
STATE=$(kubectl describe pod ${SIMPLE_CONNECTION_POD} | grep "State:" | cut -d":" -f2 | tr -d '[:space:]')
if [ "${STATE}" = "Terminated" ]; then break; fi
echo "Polling state for pod '${SIMPLE_CONNECTION_POD}': ${STATE} ...sleeping ${POD_STATE_WAIT_SECONDS}"
sleep ${POD_STATE_WAIT_SECONDS}
done
kubectl logs ${SIMPLE_CONNECTION_POD} | head
echo "...truncating logs, 100 documents should've been inserted..."
kubectl logs ${SIMPLE_CONNECTION_POD} | tail
kubectl delete pod ${DNS_SRV_POD}
kubectl delete pod ${SIMPLE_CONNECTION_POD}
./connection-srv-demo.sh chicago-rs1-svc
MongoDB Enterprise Kubernetes - DNS SRV Connection Test - START
Testing service 'chicago-rs1-svc'
DNS SRV pod 'mongodb-chicago-rs1-svc-dns-srv-test'
Connection test pod 'mongodb-chicago-rs1-svc-connection-test'
pod/mongodb-chicago-rs1-svc-dns-srv-test created
Polling state for pod 'mongodb-chicago-rs1-svc-dns-srv-test': Waiting ...sleeping 5
chicago-rs1-svc.mongodb.svc.cluster.local has SRV record 10 33 0
chicago-rs1-0.chicago-rs1-svc.mongodb.svc.cluster.local.
chicago-rs1-svc.mongodb.svc.cluster.local has SRV record 10 33 0
chicago-rs1-1.chicago-rs1-svc.mongodb.svc.cluster.local.
chicago-rs1-svc.mongodb.svc.cluster.local has SRV record 10 33 0
chicago-rs1-2.chicago-rs1-svc.mongodb.svc.cluster.local.
Found SRV hostname: 'chicago-rs1-svc.mongodb.svc.cluster.local'
pod/mongodb-chicago-rs1-svc-connection-test created
Polling state for pod 'mongodb-chicago-rs1-svc-connection-test': Waiting ...sleeping 5
simple-connection-test: testing connection to chicago-rs1-svc.mongodb.svc.cluster.local
Creating and reading 100 docs in the 'test-6b676382.foo' namespace
Database(MongoClient(host=['chicago-rs1-svc.mongodb.svc.cluster.local:27017'], document_class=dict,
tz_aware=False, connect=True), u'test-6b676382')
{u'i': 0, u'_id': ObjectId('5b98992c62b04e00014b7d5a')}
{u'i': 1, u'_id': ObjectId('5b98992d62b04e00014b7d5b')}
{u'i': 2, u'_id': ObjectId('5b98992d62b04e00014b7d5c')}
...truncating logs, 100 documents should've been inserted...
{u'i': 97, u'_id': ObjectId('5b98992d62b04e00014b7dbb')}
{u'i': 98, u'_id': ObjectId('5b98992d62b04e00014b7dbc')}
{u'i': 99, u'_id': ObjectId('5b98992d62b04e00014b7dbd')}
Dropped db 'test-6b676382'
pod "mongodb-chicago-rs1-svc-dns-srv-test" deleted
pod "mongodb-chicago-rs1-svc-connection-test" deleted
[ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$
Part 3 - Release plans & coming
features
Roadmap
Additional Features
Release Plans
SSL/TLS
Authentication
Enabling Backups
Running Ops Manager inside Kubernetes
Beta now - target Q1 2019 for GA
https://docs.opsmanager.mongodb.com/cu
rrent/reference/known-issues-k8s-beta/
OpenShift 3.11
Community Resources
Where to get involved and learn more
Github: https://github.com/mongodb/mongodb-enterprise-kubernetes
Slack: https://launchpass.com/mongo-db #enterprise-kubernetes
Talk to me!
Thank You!
Two column plain background
Table
Header 1 Header 2 Header 3 Header 4 Header 5
Title 2 column with subhead
Title 2 column
Code Title 1 Column
Code Title 2 Column
Header
• Bullets
• Bullets
WIFI: Random Router
PW: Password
Thank You!
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes

Más contenido relacionado

La actualidad más candente

Running I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomRunning I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomCloud Native Day Tel Aviv
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBACKublr
 
Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)
Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)
Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)Kublr
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibilityDocker, Inc.
 
Lessons learned with kubernetes in production at PlayPass
Lessons learned with kubernetes in productionat PlayPassLessons learned with kubernetes in productionat PlayPass
Lessons learned with kubernetes in production at PlayPassPeter Vandenabeele
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101Kublr
 
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Sanjeev Rampal
 
WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh? WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh? Anton Weiss
 
Application Portability with Kubernetes (k8)
Application Portability with Kubernetes (k8)Application Portability with Kubernetes (k8)
Application Portability with Kubernetes (k8)Kublr
 
Kubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud appsKubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud appsAna-Maria Mihalceanu
 
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
Canary Releases on Kubernetes w/ Spinnaker, Istio, and PrometheusCanary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
Canary Releases on Kubernetes w/ Spinnaker, Istio, and PrometheusKublr
 
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep DiveKubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep DiveSanjeev Rampal
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesPaul Czarkowski
 
Helm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesHelm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesKnoldus Inc.
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.Cloud Native Day Tel Aviv
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsKublr
 
Security Tips to run Docker in Production
Security Tips to run Docker in ProductionSecurity Tips to run Docker in Production
Security Tips to run Docker in ProductionGianluca Arbezzano
 
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...AWS Summits
 

La actualidad más candente (20)

Running I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomRunning I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati Shalom
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBAC
 
Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)
Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)
Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
Lessons learned with kubernetes in production at PlayPass
Lessons learned with kubernetes in productionat PlayPassLessons learned with kubernetes in productionat PlayPass
Lessons learned with kubernetes in production at PlayPass
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
 
WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh? WTF Do We Need a Service Mesh?
WTF Do We Need a Service Mesh?
 
12 Factor App
12 Factor App12 Factor App
12 Factor App
 
Kubernetes security
Kubernetes securityKubernetes security
Kubernetes security
 
Application Portability with Kubernetes (k8)
Application Portability with Kubernetes (k8)Application Portability with Kubernetes (k8)
Application Portability with Kubernetes (k8)
 
Kubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud appsKubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud apps
 
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
Canary Releases on Kubernetes w/ Spinnaker, Istio, and PrometheusCanary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
 
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep DiveKubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Helm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesHelm - Package Manager for Kubernetes
Helm - Package Manager for Kubernetes
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container Operations
 
Security Tips to run Docker in Production
Security Tips to run Docker in ProductionSecurity Tips to run Docker in Production
Security Tips to run Docker in Production
 
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
 

Similar a MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes

Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesAriel Jatib
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesQAware GmbH
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyMediafly
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudMassimiliano Dessì
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCodemotion
 
A hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackA hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackQAware GmbH
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17Mario-Leander Reimer
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxNebulaworks
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDocker, Inc.
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudJung-Hong Kim
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconMario-Leander Reimer
 
使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster 使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster inwin stack
 
Exploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in PythonExploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in PythonIvan Ma
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volutionQAware GmbH
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsPublicis Sapient Engineering
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 PresentationSreenivas Makam
 

Similar a MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes (20)

Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
 
A hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackA hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes Toolbox
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container Networking
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
 
使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster 使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster
 
Exploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in PythonExploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in Python
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volution
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 Presentation
 

Más de MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

Más de MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Último

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Último (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes

  • 1. Running MongoDB Enterprise Database Services on Kubernetes At your MongoDB.local, you’ll learn technologies, tools, and best practices that make it easy for you to build data-driven applications without distraction.
  • 3. Agenda Kubernetes & MongoDB Target Architecture Demo: installing the MongoDB Operator & Running a replica set Advanced configurations Accessing MongoDB services Release plans: Target GA, Additional Features, OpenShift 3.11
  • 4. Technologies - Containers A standardized unit of software lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings (https://www.docker.com/resources/what-container)
  • 5. Technologies - Kubernetes Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. (https://kubernetes.io/) Important Concepts: Master Node, Worker Nodes, Pods, Image Repo, API Requirement: >= v1.9
  • 6. Technologies - MongoDB Ops Manager Ops Manager is a package for managing MongoDB deployments. Management (Automation) Monitoring Backups Cloud Manager
  • 7. Technologies - Kubernetes Operators An Operator is a method of packaging, deploying and managing a Kubernetes application. A Kubernetes application is an application that is both deployed on Kubernetes and managed using the Kubernetes APIs and kubectl tooling.. https://www.docker.com/resources/what-container Kubernetes MongoDB Ops Manager Operator
  • 9. Part 2 - Using the Operator
  • 10. Getting the operator Official container images hosted on quay.io Public GitHub repository https://github.com/mongodb/mongodb-enterprise-kub ernetes
  • 12. Spin up k8s & install operator # Start cluster minikube start # Install operator kubectl create -f ./mongodb-enterprise.yaml # set default namespace (op creates & installs to 'mongodb') kubectl config set-context $(kubectl config current-context) --namespace=mongodb # See all operator stuff kubectl get all --selector=app=mongodb-enterprise-operator https://docs.opsmanager.mongodb.com/current/tutorial/install-k8s-operator/
  • 13. Configuration - Connection to Ops Manager --- apiVersion: v1 kind: ConfigMap metadata: name: dot-local data: projectId: 5b76d1750bd66b7ea136427f baseUrl: https://cloud.mongodb.com/ --- apiVersion: v1 kind: Secret metadata: name: opsmgr-credentials stringData: user: jason.mimick publicApiKey: 02b9674b-e912-4bf5-bec3-43687 832a6cd
  • 14. Create Secret & ConfigMap kubectl create -f opsmgr-credentials.yaml kubectl create -f dot-local-opsmgr-project.yaml kubectl get configmaps,secrets
  • 16. Deploying a Replica Set apiVersion: mongodb.com/v1 kind: MongoDbReplicaSet metadata: name: chicago-rs1 namespace: mongodb spec: members: 3 version: 4.0.0 project: dot-local credentials: opsmgr-credentials podSpec: storageClass: standard
  • 17. kubectl create -f chicago-rs1.yaml kubectl get all --selector=app=chicago-rs1-svc NAME READY STATUS RESTARTS AGE pod/chicago-rs1-0 1/1 Running 12 13h pod/chicago-rs1-1 1/1 Running 12 13h pod/chicago-rs1-2 1/1 Running 12 13h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/chicago-rs1-svc ClusterIP None <none> 27017/TCP 13h service/chicago-rs1-svc-external NodePort 10.102.95.40 <none> 27017:30780/TCP 13h NAME DESIRED CURRENT AGE statefulset.apps/chicago-rs1 3 3 13h
  • 18. High Availability - replication + statefulset = kubectl delete pod chicago-rs1-1 pod "chicago-rs1-1" deleted root@ip-172-31-19-43:~# kubectl get all --selector=app=chicago-rs1-svc NAME READY STATUS RESTARTS AGE pod/chicago-rs1-0 1/1 Running 12 13h pod/chicago-rs1-1 1/1 Running 0 1m pod/chicago-rs1-2 1/1 Running 12 13h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/chicago-rs1-svc ClusterIP None <none> 27017/TCP 13h service/chicago-rs1-svc-external NodePort 10.102.95.40 <none> 27017:30780/TCP 13h NAME DESIRED CURRENT AGE statefulset.apps/chicago-rs1 3 3 13h
  • 19. Scaling # vim chicago-rs1.yaml # kubectl apply -f chicago-rs1.yaml mongodbreplicaset.mongodb.com/chicago-rs1 configured # kubectl get all --selector=app=chicago-rs1-svc NAME READY STATUS RESTARTS AGE pod/chicago-rs1-0 1/1 Running 12 13h pod/chicago-rs1-1 1/1 Running 0 3m pod/chicago-rs1-2 1/1 Running 12 13h pod/chicago-rs1-3 1/1 Running 0 10s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/chicago-rs1-svc ClusterIP None <none> 27017/TCP 13h service/chicago-rs1-svc-external NodePort 10.102.95.40 <none> 27017:30780/TCP 13h NAME DESIRED CURRENT AGE statefulset.apps/chicago-rs1 4 4 13h
  • 20. Part 2 - Advanced Configuration
  • 22. Persistent Storage - DB right? apiVersion: mongodb.com/v1 kind: MongoDbReplicaSet metadata: name: chicago-rs1 namespace: mongodb spec: members: 3 version: 4.0.0 project: dotlocal-chicago credentials: opsmgr-credentials podSpec: storage: 5G storageClass: managed-premium
  • 23. Persistent Storage - What's createdkubectl get sc,pv,pvc --output=custom-columns=KIND:.kind,NAME:.metadata.name,STATUS:.status.phas e KIND NAME STATUS StorageClass default <none> StorageClass managed-premium <none> PersistentVolume pvc-2428e963-b5ff-11e8-bef4-0a58ac1f12f3 Bound PersistentVolume pvc-877ac893-b5ff-11e8-bef4-0a58ac1f12f3 Bound PersistentVolume pvc-c8993a87-b5ff-11e8-bef4-0a58ac1f12f3 Bound PersistentVolumeClaim data-chicago-rs1-0 Bound PersistentVolumeClaim data-chicago-rs1-1 Bound PersistentVolumeClaim data-chicago-rs1-2 Bound
  • 24. Node Affinity & Anti-Affinity --- apiVersion: mongodb.com/v1 kind: MongoDbReplicaSet metadata: name: chicago-rs1-happy-nodes namespace: mongodb spec: members: 3 version: 4.0.0 project: dotlocal-chicago credentials: opsmgr-credentials podSpec: storage: 5G storageClass: managed-premium nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: mood operator: In values: - happy
  • 25. Node Affinity & Anti-Affinity [ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$ kubectl describe node aks-nodepool1-21637950-{0,1,2} | grep -E "^Name:|mood" Name: aks-nodepool1-21637950-0 mood=happy Name: aks-nodepool1-21637950-1 mood=happy Name: aks-nodepool1-21637950-2 mood=content [ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$ kubectl describe node aks-nodepool1-21637950-{0,1,2} | grep -E "^ mongodb|^Name:" Name: aks-nodepool1-21637950-0 mongodb chicago-rs1-2 0 (0%) 0 (0%) 0 (0%) 0 (0%) mongodb chicago-rs1-happy-2 0 (0%) 0 (0%) 0 (0%) 0 (0%) mongodb chicago-rs1-happy-nodes-0 0 (0%) 0 (0%) 0 (0%) 0 (0%) mongodb chicago-rs1-happy-nodes-2 0 (0%) 0 (0%) 0 (0%) 0 (0%) mongodb mongodb-enterprise-operator-57bdc5c59f-lq6gt 0 (0%) 0 (0%) 0 (0%) 0 (0%) Name: aks-nodepool1-21637950-1 mongodb chicago-rs1-0 0 (0%) 0 (0%) 0 (0%) 0 (0%) mongodb chicago-rs1-happy-0 0 (0%) 0 (0%) 0 (0%) 0 (0%) mongodb chicago-rs1-happy-nodes-1 0 (0%) 0 (0%) 0 (0%) 0 (0%) Name: aks-nodepool1-21637950-2 mongodb chicago-rs1-1 0 (0%) 0 (0%) 0 (0%) 0 (0%) mongodb chicago-rs1-happy-1 0 (0%) 0 (0%) 0 (0%) 0 (0%) [ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$ ^C
  • 26. Demo Connecting to your MongoDB deployment
  • 27. intra-k8s cluster connections 1. Jump into cluster: kubectl exec -it chicago-rs1-0 -- /bin/bash 2. Find mongo binaries - run shell ps -ef | grep mongo /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.0.0/bin/mon go "mongodb://chicago-rs1-0.chicago-rs1-svc.mongodb.svc.cluster.local ,chicago-rs1-1.chicago-rs1-svc.mongodb.svc.cluster.local,chicago-r s1-2.chicago-rs1-svc.mongodb.svc.cluster.local/?replicaSet=chicago -rs1"
  • 28. mongodb+srv:// #!/bin/bash : ${1?"Usage: $0 <MongoDB Service Name>"} POD_STATE_WAIT_SECONDS=5 SERVICE=$1 DNS_SRV_POD="mongodb-${SERVICE}-dns-srv-test" SIMPLE_CONNECTION_POD="mongodb-${SERVICE}-connection-test" echo "MongoDB Enterprise Kubernetes - DNS SRV Connection Test - START" echo "Testing service '${SERVICE}'" echo "DNS SRV pod '${DNS_SRV_POD}'" echo "Connection test pod '${SIMPLE_CONNECTION_POD}'" kubectl run ${DNS_SRV_POD} --restart=Never --image=tutum/dnsutils -- host -t srv ${SERVICE} STATE="" while [ "${STATE}" != "Terminated" ] do STATE=$(kubectl describe pod ${DNS_SRV_POD} | grep "State:" | cut -d":" -f2 | tr -d '[:space:]') if [ "${STATE}" = "Terminated" ]; then break; fi echo "Polling state for pod '${DNS_SRV_POD}': ${STATE} ...sleeping ${POD_STATE_WAIT_SECONDS}" sleep ${POD_STATE_WAIT_SECONDS} done kubectl logs ${DNS_SRV_POD} SRV_HOST=$(kubectl logs ${DNS_SRV_POD} | cut -d' ' -f1 | head -1) echo "Found SRV hostname: '${SRV_HOST}'" kubectl run ${SIMPLE_CONNECTION_POD} --restart=Never --image=jmimick/simple-mongodb-connection-tester "${SRV_HOST}" STATE="" while [ "${STATE}" != "Terminated" ] do STATE=$(kubectl describe pod ${SIMPLE_CONNECTION_POD} | grep "State:" | cut -d":" -f2 | tr -d '[:space:]') if [ "${STATE}" = "Terminated" ]; then break; fi echo "Polling state for pod '${SIMPLE_CONNECTION_POD}': ${STATE} ...sleeping ${POD_STATE_WAIT_SECONDS}" sleep ${POD_STATE_WAIT_SECONDS} done kubectl logs ${SIMPLE_CONNECTION_POD} | head echo "...truncating logs, 100 documents should've been inserted..." kubectl logs ${SIMPLE_CONNECTION_POD} | tail kubectl delete pod ${DNS_SRV_POD} kubectl delete pod ${SIMPLE_CONNECTION_POD}
  • 29. ./connection-srv-demo.sh chicago-rs1-svc MongoDB Enterprise Kubernetes - DNS SRV Connection Test - START Testing service 'chicago-rs1-svc' DNS SRV pod 'mongodb-chicago-rs1-svc-dns-srv-test' Connection test pod 'mongodb-chicago-rs1-svc-connection-test' pod/mongodb-chicago-rs1-svc-dns-srv-test created Polling state for pod 'mongodb-chicago-rs1-svc-dns-srv-test': Waiting ...sleeping 5 chicago-rs1-svc.mongodb.svc.cluster.local has SRV record 10 33 0 chicago-rs1-0.chicago-rs1-svc.mongodb.svc.cluster.local. chicago-rs1-svc.mongodb.svc.cluster.local has SRV record 10 33 0 chicago-rs1-1.chicago-rs1-svc.mongodb.svc.cluster.local. chicago-rs1-svc.mongodb.svc.cluster.local has SRV record 10 33 0 chicago-rs1-2.chicago-rs1-svc.mongodb.svc.cluster.local. Found SRV hostname: 'chicago-rs1-svc.mongodb.svc.cluster.local' pod/mongodb-chicago-rs1-svc-connection-test created Polling state for pod 'mongodb-chicago-rs1-svc-connection-test': Waiting ...sleeping 5 simple-connection-test: testing connection to chicago-rs1-svc.mongodb.svc.cluster.local Creating and reading 100 docs in the 'test-6b676382.foo' namespace Database(MongoClient(host=['chicago-rs1-svc.mongodb.svc.cluster.local:27017'], document_class=dict, tz_aware=False, connect=True), u'test-6b676382') {u'i': 0, u'_id': ObjectId('5b98992c62b04e00014b7d5a')} {u'i': 1, u'_id': ObjectId('5b98992d62b04e00014b7d5b')} {u'i': 2, u'_id': ObjectId('5b98992d62b04e00014b7d5c')} ...truncating logs, 100 documents should've been inserted... {u'i': 97, u'_id': ObjectId('5b98992d62b04e00014b7dbb')} {u'i': 98, u'_id': ObjectId('5b98992d62b04e00014b7dbc')} {u'i': 99, u'_id': ObjectId('5b98992d62b04e00014b7dbd')} Dropped db 'test-6b676382' pod "mongodb-chicago-rs1-svc-dns-srv-test" deleted pod "mongodb-chicago-rs1-svc-connection-test" deleted [ec2-user@ip-172-31-58-143 mongodb-enterprise-kubernetes]$
  • 30. Part 3 - Release plans & coming features
  • 31. Roadmap Additional Features Release Plans SSL/TLS Authentication Enabling Backups Running Ops Manager inside Kubernetes Beta now - target Q1 2019 for GA https://docs.opsmanager.mongodb.com/cu rrent/reference/known-issues-k8s-beta/ OpenShift 3.11
  • 32. Community Resources Where to get involved and learn more Github: https://github.com/mongodb/mongodb-enterprise-kubernetes Slack: https://launchpass.com/mongo-db #enterprise-kubernetes Talk to me!
  • 34. Two column plain background
  • 35. Table Header 1 Header 2 Header 3 Header 4 Header 5
  • 36. Title 2 column with subhead
  • 38.
  • 39.
  • 40. Code Title 1 Column
  • 41. Code Title 2 Column
  • 42.