大数据系列8:kubenetes和docker

1. K8S

1.1 介绍

容器编排工具提供容器的调度,配置,监控,版本管理,健康检查,服务发现等功能。常见的工具有Kubernetes ,Mesos (DC/OS), Swarm and Nomad. rancher是基于k8s开发的。
Kubernetes(简称K8S) 是Google开源的分布式的容器管理平台,方便我们在服务器集群中管理我们容器化应用。基本的Kubernetes对象包括:
Node:逻辑上的机器/虚拟机,kubectl get nodes查看信息
Pod:Kubernetes的基本构建块,代表着一个部署单元,kubectl get pod查看信息
Controller:管理pod的模块,一般使用Deployment
Service:定义了一个逻辑集Pods和访问它们的策略(有时称为微服务)

1.2 k8s节点组成

  • Master节点:
    Etcd:Kubernetes集群的数据库,所有持久化的状态信息存储在Etcd中
    Scheduler:资源调度器,根据etcd里的节点资源状态决定将Pod绑定到哪个Node上
    Controller Manager:负责保障pod的健康存在
    API Server :提供k8s API接口,主要处理Rest操作以及更新Etcd中的对象,是所有资源增删改查的唯一入口。
    如下图所示:
    在这里插入图片描述
  • Node节点
    Docker Engine:负责节点容器的管理工作,最终创建出来的是一个Docker容器。
    kubelet:安装在Node上的代理服务,用来管理Pods以及容器/镜像/Volume等,实现对集群对节点的管理。
    kube-proxy:安装在Node上的网络代理服务,提供网络代理以及负载均衡,实现与Service通讯。

1.3 如何新建k8s集群

  1. 准备一堆机器,要求80和443端口是开着的(可以使用),关闭防火墙、selinux、同步定时任务、临时关闭swap分区
  2. docker镜像安装,这是必须的
  3. 安装k8s:在每台机器上部署kubeadm和kubelet
  4. 初始化主节点、将node加入k8s集群
  5. 部署负载均衡的ipvs、部署Flannel网络插件
  6. 将主节点上/etc/kubernetes/admin.config放入远程$HOME/.kube/config下,可以远程登录(不需要k8s,但需要docker)

1.4 使用

kubectl cluster-info #查询k8s集群信息
kubectl get nodes #查询节点信息
kubectl describe node #获取每台机器的详细信息
kubectl create deployment nginx --image=nginx:alpine # 创建pod
kubectl get pod -o wide # 查看pod
Kubernetes control plane is running at https://...
metrics-server is running at https://.../api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://.../api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

2. docker

大数据常常涉及到多台机器集群的部署,为了方便统一管理,常常使用docker的方式。重要概念如下:
Docker:就是操作系统中的chroot。可以理解为你在写一篇论文的时候新建了一个文件夹,所有的东西都在这个文件夹里面。
Host:主机,运行容器的机器。比如我们自己的电脑。
Image:镜像,文件的层次结构,包含如何运行容器的元数据。可以比成一个论文模板。
Container:容器,从镜像启动,包含正在运行的程序的进程。可以比成我们电脑里打开的论文。run相当于打开论文模板,修改后commit相当于保存论文。start,stop就相当于打开论文、关闭论文。一个container等于一个image+运行指令等参数
Registry:镜像仓库。可以比成论文模板库。pull就相当于从论文库下载模板到自己的电脑上。
Volume:容器外的存储。可以比成论文里面链接的文件夹。
Dockerfile:用于创建镜像的脚本。可以比成普通的word程序。

运行docker Linux内核版本需要在3.8以上,内核为2.6的系统需要先升级内核,不然会特别卡。常用命令如下:
yum -y install docker-io:安装docker
service docker start:启动docker
docker version:查看版本
cat /var/log/docker:查看日志

搜索查看类命令:
docker info:查看docker相关信息。image和container都有id和name:tag两种方式。不加tag的话默认是latest。
docker search [IMAGE]:查找镜像库
docker pull [IMAGE] 拉取镜像
docker images/docker image ls:查看本地镜像
docker ps :查看容器状态;-a,所有;-l,最近。
docker logs [CONTAINER]:查看容器标准输出
docker port [CONTAINER]:查看网络端口映射情况

启动关闭类命令:
docker run -it [IMAGE] [COMMAND]:启动交互界面,运行镜像的命令;使用exit退出
docker run -d [IMAGE] [COMMAND]:启动后台模式;-P:将容器内部使用的网络端口映射到我们使用的主机上。-name:给容器命名
docker build [IMAGE]:通过Dockerfile创建镜像
docker start/stop/restart/attach [CONTAINER/ID]:操作容器,其中attach是切换到相应容器
docker commit -m -a [CONTAINER] [NEW IMAGE]:容器保存为镜像
docker rmi [IMAGE] :删除镜像
docker rm [CONTAINER] :删除容器
docker ps -a -q/docker container ls -a:查看所有容器ID
docker rm $(docker ps -a -q):删除所有的容器
docker inspect [CONTAINER|IMAG]:查看容器或镜像的详细信息

保存加载类:
docker save ubuntu:14.04 > /images/ubuntu_14.04.tar:在已有镜像系统上导出镜像
docker save -o ubuntu.tar ubuntu:镜像保存为镜像文件(镜像已存在)
docker load --input /images/ubuntu_14.04.tar:导入镜像文件
docker load < /images/ubuntu_14.04.tar:通过符号的方式来导入

仓库搭建:
https://blog.csdn.net/u010397369/article/details/42422243
https://blog.csdn.net/boling_cavalry/article/details/78818462

仓库使用:
docker push username/repository:tag
docker run username/repository:tag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值