z ½ - docker 1 : m7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于docker...• Ì n 1 ^ í Õ x k8s/...

32
ᡚᤋचԭDockerᐺԯਫ᪢ [email protected]

Upload: others

Post on 28-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• 05

• ,

[email protected]

Page 3: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

@ @

Page 4: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Docker•

• / /

• REST API

• IO

Page 5: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

docker run -d --net=none

--name=$name

-h $name

-v /var -v $tmpdir/resolv.conf:/etc/resolv.conf -v $tmpdir/hosts:/etc/hosts

--cpuset="$cpuset"

-m ${mem}m

--privileged=true

$image

Page 6: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• Docker daemon

• cgroup namespace

• CRIU

Page 7: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Docker

@

Page 8: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry
Page 9: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Docker@• 2014 OpenStack IceHouse + Docker 1.3.2 5

11 12

• Machine Container “ ” supervisord

• OpenStack Docker Registry

KVM Docker

• OpenvSwitch VLAN Linux Bridge Docker

NAT other_args="—bridge=none"

• OpenStack PaaS

Page 10: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Docker

KVM Machine Container App Container

Dockerfile

IO

top sar

Page 11: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry
Page 12: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Docker

Page 13: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry
Page 14: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Controller (Standby)

MariaDB (Slave)

nova-api

nova-scheduler

Horizon (HTTP)

Compute (1..N)

Nova-compute

Nova-docker

Docker

VM #1 #N…

OpenStack Deploy

Browser

OpenStack

Docker

Database

OPS

OPS

Controller (Active)

MariaDB (Master)

nova-api

nova-scheduler

Horizon (HTTP)

keepalived

RESTFul

Page 15: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• ip hostname

• ip:hostname /etc/hosts

• docker CPU set weight

• mount folder/file volume

• OpenStack API cgroup IO IO

• Linux bridge Openvswitch

https://github.com/openstack/nova-docker/

Page 16: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• /pid

oom

• IM

• container-tools

• load

• uptime, top, free, df, tsardocker stats

Page 17: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Container-tools

Page 18: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry
Page 19: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• docker

• Docker docker commit docker push

• CPU cgroup

• IO IO : cgroup/tc

Page 20: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Browser

CMDB

IaaS

Docker KVM OVS Bridge Ceph

PaaS

PaaS

Page 21: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

PaaS•

• PaaS

• Jenkins Docker

• App Stack

• Stack Docker Stack

Page 22: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry
Page 23: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Docker Registry

Page 24: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry
Page 25: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

PaaS

Page 26: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• “bash: fork: Cannot allocate memory”

pid_max

• pid_max(/proc/sys/kernel/pid_max)

• Process Number Controller:

• 4.3-rc1 pid-max per containers

• https://www.kernel.org/doc/Documentation/cgroups/pids.txt

Page 27: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• devicemapper thin-provisioning discardkernel crash: http://mogu.io/docker_crash-79

• devicemapper overcommit read-only

• nf_conntrack ping: /proc/sys/net/ipv4/

netfilter/ip_conntrack_max

• Docker crash: ver 431 -> 504

Page 28: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• /cgroup/memory/docker/<id>/memory.usage_in_bytes

• syslogsyslog

• supervisord : supervisorctl reload

• JDKRuntime.getRuntime().availableProcessors()

Page 29: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

Docker•

• K8S/Swarm/Mesos

Docker daemon live upgrade

• docker registry

Page 30: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• KVM

• Machine Container -> App Container

Page 31: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry

• PaaS App Container + CI/CD

• Kubernetes/Swarm/Mesos

Page 32: Z ½ - Docker 1 : M7xi8kv.com5.z0.glb.qiniucdn.com/蘑菇街基于Docker...• Ì n 1 ^ í Õ X K8S/ Swarm/Mesos • ñ Ó ë = £ 1 F Docker daemon live upgrade • Z b docker registry