6. Market trend of Kubernetes
Kubernetes
CNCF
by Publickey 2018.3.8
Tc Tcb Io p g a
m r O F u
S F a e l n i
t INC h u O
Kubernetes
7. Market trend of Kubernetes
AWS Kubernetes Amazon EKS
by Publickey 2018.6.7
• Amazon EKS 11
AWS re:Invent 2017
• ( )
( )
2018 12 GA
8. Market trend of Kubernetes
Azure Kubernetes Service (AKS) GA
– New regions, more features, increased productivity
by Microsoft Azure Blog 2018.6.13
• Microsoft Build 2018 Azure Container
Service Azure Kubernetes Service
•
2
10
9. Market trend of Kubernetes
Kubernetes on Windows Server Docker EE Linux
Windows Server
DockerCon 2018 by Publickey 2018.6.14
• Docker EE Windows Server
Kubernetes
11. Market trend of Kubernetes
Kubernetes Google Cloud
Google Kubernetes Engine on-Prem Google Cloud Next ’18
by Publickey 2018.7.25
• GKE(Google Kubernetes Engine)
Kubernetes
• Google Cloud Console Kubernetes
• Google Cloud Platform Marketplace Kubernetes
12. Market trend of Kubernetes
Google Serverless
containers Google Cloud Next ’18 by Publickey 2018.7.25
• Google Kubernetes Engine
GKE serverless add-on
• Kubernetes
Knative GKE serverless add-on
13. Market trend of Kubernetes
GitHub Goes All in on Kubernetes
by THENEWSTACK 2017.8.16
SRE Site Reliability Engineering
14. Market trend of Kubernetes
Distribution,PaaS,Managed,Installation/Operations
Kubernetes 1
https://qiita.com/cyberblack28/items/e4836b4ff06156f69588
Investigating of Kubernetes Platform
19. Kubernetes Architecture
API
UI
CLI
API Server Scheduler Controller-Manager
etcd
Master
API Server kubernetes API REST,CRUD,
Scheduler Pod Node
Controller-Manager Node
etcd API Server
etcd
20. Kubernetes Architecture
Node
Kubelet Node Pod YAML
Container Runtime Pod
Container Runtime kubelet
Kubernetes Docker containerd
rkt cri-o
Kube-proxy Node Service Cluster IP
Proxy iptables
Master
Kube-proxy
Container
Runtime
Kubelet
Node 1,2,3,n
Pod
Image Registry
PodPod
Pod PodPod
Pod PodPod
32. Rancher2.0 Technical Architecture
Cluster
Controller
Auth
Proxy
Rancher Server
RKE Nodes
Kubectl
Kubernetes
API
Rancher
UI
CLI
API
Rancher Component
Other Kubernetes Master
Legend
Rancher
API Server
etcd
Cluster
Agent 1
Cluster
Agent 2
RKE
Kubernetes Master
GKE Nodes
GKE
Kubernetes Master
Kubelet Kubelet
a x v x tiy R
d l o
b e N H r c
b
e Re d c Dk
AKC e d r b n b
I Hus
oC Gg eP
e dv v S
h
33. Rancher2.0 Deep Dive Documents
https://www.slideshare.net/linecorp/lets-unbox-rancher-20-v200
36. Rancher Labs New Project “Rio”
Kubernetes,Istio,Service Mesh Docker
Darren Shepherd
Co-founder and Chief Architect
at Rancher Labs, Inc.
@ibuildthecloud
https://github.com/rancher/rio
https://www.slideshare.net/cyberblackvoom/whats-rio-112779732
Rio !!
37. Get started with Rancher 2.0
OS Hardware Software
Ubuntu 16.04 (64-bit) Memory: 4GB • 1.12.6
• 1.13.1
• 17.03.2Red Hat Enterprise Linux
7.5 (64-bit)
RancherOS 1.3.0 (64-bit)
Step 1: Prepare a Linux Host
Step 2: Start the server
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Web Access!! https://<server_ip>
60. Kubernetes & Rancher Handson
3. kubectl get nodes
> kubectl get nodes
NAME STATUS ROLES AGE VERSION
rancher-host Ready controlplane,etcd,worker 39m v1.10.5
> kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.8",
GitCommit:"c138b85178156011dc934c2c9f4837476876fb07", GitTreeState:"clean",
BuildDate:"2018-05-21T19:01:12Z", GoVersion:"go1.9.3", Compiler:"gc",
Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5",
GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean",
BuildDate:"2018-06-21T11:34:22Z", GoVersion:"go1.9.3", Compiler:"gc",
Platform:"linux/amd64"}
4. kubectl version
61. Kubernetes & Rancher Handson
5.Guestbook 1 .
Guestbook yaml
https://raw.githubusercontent.com/kubernetes/examples/master/guestbook/all-in-
one/guestbook-all-in-one.yaml
1 .
> kubectl apply -f
https://raw.githubusercontent.com/kubernetes/examples/master/guestbook/all-in-
one/guestbook-all-in-one.yaml
service "redis-master" created
deployment "redis-master" created
service "redis-slave" created
deployment "redis-slave" created
service "frontend" created
deployment "frontend" created
67. Kubernetes & Rancher Handson
1 guestbook-all-in-one.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
tier: backend
role: master
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
tier: backend
role: master
---
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0
use extensions/v1beta1
kind: Deployment
metadata:
name: redis-master
spec:
selector:
matchLabels:
app: redis
role: master
tier: backend
replicas: 1
template:
metadata:
labels:
app: redis
role: master
tier: backend
spec:
containers:
- name: master
image: k8s.gcr.io/redis:e2e # or just image: redis
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
---
redis-master
68. Kubernetes & Rancher Handson
1 guestbook-all-in-one.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
app: redis
tier: backend
role: slave
spec:
ports:
- port: 6379
selector:
app: redis
tier: backend
role: slave
---
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use
extensions/v1beta1
kind: Deployment
metadata:
name: redis-slave
spec:
selector:
matchLabels:
app: redis
role: slave
tier: backend
replicas: 2
template:
metadata:
labels:
app: redis
role: slave
tier: backend
spec:
containers:
- name: slave
image: gcr.io/google_samples/gb-redisslave:v1
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
# If your cluster config does not include a dns service, then to
# instead access an environment variable to find the master
# service's host, comment out the 'value: dns' line above, and
# uncomment the line below:
# value: env
ports:
- containerPort: 6379
---
redis-slave
69. Kubernetes & Rancher Handson
1 guestbook-all-in-one.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# if your cluster supports it, uncomment the following to automatically create
# an external load-balanced IP for the frontend service.
# type: LoadBalancer
ports:
- port: 80
selector:
app: guestbook
tier: frontend
---
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0
use extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
selector:
matchLabels:
app: guestbook
tier: frontend
replicas: 3
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google-samples/gb-frontend:v4
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
# If your cluster config does not include a dns service, then to
# instead access environment variables to find service host
# info, comment out the 'value: dns' line above, and uncomment the
# line below:
# value: env
ports:
- containerPort: 80
redis-frontend
75. Information
The Kubernetes Book
: Independently
published
ISBN-10: 1521823634
ISBN-13: 978-1521823637
kubernetes
Kubernetes in Action
: Manning Pubns Co
ISBN-10: 1617293725
ISBN-13: 978-1617293726