• 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的系统信息。

     

  • 相关阅读:
    JavaScript Date对象
    BOM 和 DOM
    JS变量声明方式
    CSS3 选择器
    Python文件操作
    第十三章 迭代器、生成器、 装饰器
    python专题 --- 递归
    React JSX
    ES6——面向对象应用
    ES6——面向对象-基础
  • 原文地址:https://www.cnblogs.com/lzp123/p/13769765.html
Copyright © 2020-2023  润新知