docker安装

   容器在计算形态上是一种轻量级的虚拟化技术,不同于传统虚拟化的内核级的Guest OS封装,容器服务是进程级的虚拟化形态封装,容器的启动与部署迅速,能够在应用层面根据资源需求快速的部署与调度,生命周期变化速度快。总的来说,云容器技术具有以下优点:简化部署、轻量级、多环境支持、成本低、快速启动、服务编排、易于迁移等。

        明白了容器技术之后,大家可以把容器云理解为云上的容器技术服务。因为容器具备轻量化、低成本、灵活性、可靠性、可跨云平台支持的能力,各大云服务厂商也纷纷推出了自己的容器产品。比如,西部数码就是其中一员。西部数码容器云利用docker技术部署容器服务实现,可用于建站、运行应用程序、配置负载均衡、搭建集群等。用户能按需选配,可由小及大秒变为虚拟主机、云服务器、集群服务器等。

Docker介绍

Docker - Build, Ship, and Run Any App, Anywhere

Docker是一种Linux容器工具集,它是为“构建(Build)、交付(Ship)和运行(Run)”分布式应用而设计的。

Docker相当于把应用以及应用所依赖的环境完完整整地打成了一个包,这个包拿到哪里都能原生运行。因此可以在开发、测试、运维中保证环境的一致性。

Docker的本质:Docker=LXC(Namespace+CGroups)+Docker Images,即在Linux内核的Namespace[资源隔离]CGroups[资源控制]技术的基础上通过镜像管理机制来实现轻量化设计。

Docker的基本概念

 

 

镜像

Docker 镜像就是一个只读的模板,可以把镜像理解成一个模子(模具),由模子(镜像)制作的成品(容器)都是一样的(除非在生成时加额外参数),修改成品(容器)本身并不会对模子(镜像)产生影响(除非将成品提交成一个模子),容器重建时,即由模子(镜像)重新制作成一个成品(容器),与其他由该模子制作成的成品并无区别。

容器

Docker 利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

仓库

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

Docker的优势

 

容器的快速轻量

容器的启动,停止和销毁都是以秒或毫秒为单位的,并且相比传统的虚拟化技术,使用容器在CPU、内存,网络IO等资源上的性能损耗都有同样水平甚至更优的表现。

一次构建,到处运行

当将容器固化成镜像后,就可以非常快速地加载到任何环境中部署运行。而构建出来的镜像打包了应用运行所需的程序、依赖和运行环境, 这是一个完整可用的应用集装箱,在任何环境下都能保证环境一致性

完整的生态链

容器技术并不是Docker首创,但是以往的容器实现只关注于如何运行,而Docker站在巨人的肩膀上进行整合和创新,特别是Docker镜像的设计,完美地解决了容器从构建、交付到运行,提供了完整的生态链支持。

Kubernetes介绍

KubernetesGoogle开源的容器集群管理系统。它构建Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的Micro-PaaS平台,即第三代PaaS的代表性项目。

Kubernetes的基本概念

Pod是若干个相关容器的组合,是一个逻辑概念,Pod包含的容器运行在同一个宿主机上,这些容器使用相同的网络命名空间、IP地址和端口,相互之间能通过localhost来发现和通信,共享一块存储卷空间。在Kubernetes中创建、调度和管理的最小单位是Pod。一个Pod一般只放一个业务容器和一个用于统一网络管理的网络容器。

Replication Controller是用来控制管理Pod副本(Replica,或者称实例)Replication Controller确保任何时候Kubernetes集群中有指定数量的Pod副本在运行,如果少于指定数量的Pod副本,Replication Controller会启动新的Pod副本,反之会杀死多余的以保证数量不变。另外Replication Controller是弹性伸缩、滚动升级的实现核心。

Service是真实应用服务的抽象,定义了Pod的逻辑集合和访问这个Pod集合的策略,Service将代理Pod对外表现为一个单一访问接口,外部不需要了解后端Pod如何运行,这给扩展或维护带来很大的好处,提供了一套简化的服务代理和发现机制。

Label是用于区分PodServiceReplication ControllerKey/Value键值对,实际上Kubernetes中的任意API对象都可以通过Label进行标识。每个API对象可以有多个Label,但是每个LabelKey只能对应一个ValueLabelServiceReplication Controller运行的基础,它们都通过Label来关联Pod,相比于强绑定模型,这是一种非常好的松耦合关系。

Node

Kubernets属于主从的分布式集群架构,Kubernets Node(简称为Node,早期版本叫做Minion)运行并管理容器。Node作为Kubernetes的操作单元,将用来分配给Pod(或者说容器)进行绑定,Pod最终运行在Node上,Node可以认为是Pod的宿主机。

 

kube-proxykube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。

        Dockerdocker用于运行容器。

        RKTrkt运行容器,作为docker工具的替代方案。

        supervisordsupervisord是一个轻量级的监控系统,用于保障kubeletdocker运行。

        fluentdfluentd是一个守护进程,可提供cluster-level logging

IPVS是基于TCP四层(IP+端口)的负载均衡软件。

IPVS会从TCPSYNC包开始为一个TCP连接所有的数据包,建立状态跟踪机制,保证一个TCP连接中所有的数据包能到同一个后端。所以IPVS是基于TCP状态机进行控制管理,只感知TCP头而不对TCPpayload进行查看。因此,对IPVS后端服务器集群还有一个假定,那就是所有后端都具有同样的应用层的服务功能,但是由于IPVS可以给后端设定权重,所以每个后端的服务的能力可以不同。

一个合理的负载均衡软件,应该能够尽量提高服务接入能力(ReqPSRequest Per Second),而将服务处理能力(ResPSResponse Per second)通过合理分配后端来达到最佳。

根据处理请求和响应数据包的模式的不同,IPVS具有如下4种工作模式:

NAT模式

DRDirect Routing)模式

TUNIP Tunneling)模式

FULLNAT模式

而根据响应数据包返回路径的不同,可以分为如下2种模式:

①双臂模式:请求、转发和返回在同一路径上,clientIPVS directorIPVS director和后端real server都是由请求和返回2个路径连接。

②三角模式:请求、转发和返回3个路径连接clientIPVS director和后端real server成为一个三角形。

一、Docker引擎的安装

1)了解Docker引擎和系统架构

2了解Docker引擎的部署和基本配置。

3掌握Docker引擎的基本使用

节点规划

IP

主机名

节点

172.16.51.35

master

Docker节点

所有节点安装CentOS7.5_1804系统,并配置主机名和网卡

1.基础环境配置

将提供的压缩包Docker.tar.gz上传至/root目录并解压。

# tar -zxvf Docker.tar.gz

配置本地YUM源。

# cat /etc/yum.repod.s/local.repo

[kubernetes]

name=kubernetes

baseurl=file:///root/Docker

gpgcheck=0

enabled=1

 

Docker CE支持64位版本CentOS 7,并且要求内核版本不低于3.10CentOS7.5_1804满足最低内核的要求,但由于内核版本比较低,部分功能(如overlay2存储层驱动)无法使用,并且部分功能可能不太稳定,建议升级内核。

# yum upgrade -y

配置防火墙及SELinux

# systemctl stop firewalld && systemctl disable firewalld

# iptables -t filter -F

# iptables -t filter -X

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# reboot

 

开启路由转发

[root@master ~]# cat >> /etc/sysctl.conf << EOF

net.ipv4.ip_forward=1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

[root@master ~]# modprobe br_netfilter

[root@master ~]# sysctl -p

 

2.Docker引擎安装

安装依赖包

yum-utils提供了yum-config-manager的依赖包,device-mapper-persistent-datalvm2are需要devicemapper存储驱动。

[root@master ~]# yum install -y yum-utils device-mapper-persistent-data

安装docker-ce

随着Docker的不断流行与发展,Docker组织也开启了商业化之路,Docker17.03版本之后分为CECommunityEdition)和EEEnterpriseEdition)两个版本。

Docker EE专为企业的发展和IT团队建立,为企业提供最安全的容器平台,以应用为中心的平台,有专门的团队支持,可在经过认证的操作系统和云提供商中使用,并可运行来自DockerStore的经过认证的容器和插件。

Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP

[root@master ~]# yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io -y

启动Docker并设置开机自启。

 

查看Docker的系统信息。

 

posted @ 2020-10-05 13:09  一个顶俩!  阅读(186)  评论(0编辑  收藏  举报