一、简介

  kubernetes又叫做k8s,是Google开发的一款开源的docker集群管理工具,在这里对它的“发家史”,我不做过多的阐述,有时间大家可以自己去百度一下;

  下面我要讲的就是容易混淆的部分(当然搭建的过程也会简单的阐述),我研究的就是一个单间的集群环境,如果大家想变成高可用的话,请百度^_^

二、集群的搭建

  我使用的二进制包进行的安装,前提是需要去官网上下载二进制包,下载的包名称以及地址截图如下(下载那一个包就OK了):

  部署分布如下:

manager kube-apiserver、kube-controller-manager、kube-scheduler、etcd 192.168.112.116
node1 kubelet、kube-proxy 192.168.112.117
node2 kubelet、kube-proxy 192.168.112.118

  

  1、manager端的安装(kube-apiserver、kube-controller-manager、kube-scheduler、etcd)

   kube-apiserver: 入口接口,node节点的kubelet和kube-proxy直接连接这个服务监听的IP和端口

      kube-scheduler: 先看这个服务,它的作用是调度,顾名思义就是创建容器、删除容器时使用的

   kube-controller-manager: 这个是管理服务,创建好容器之后,需要管理,就是它来做了

      etcd:  你创建的容器或者其它的一些信息、数据、以及调度的信息都是存放在这个服务下的,你可以把它当做一个数据库

      好了,基本的概念都懂了,那就开始安装吧!

   我以kube-apiserver为例,其它的都是大同小异,最终服务用systemd去管理,我把二进制包和配置文件都放在了/opt/kubernetes/{bin,cfg}目录下了,请看截图:

  

   2、node端的安装(kubelet、kube-proxy)

      以kubelet为例,截图如下:

  

三、成功的标志

  搭建成功之后,在manager端可以通过kubectl get node查看集群状态,截图如下:

  

四、易混淆点

  先说k8s里面有几个名称概念,分别为rc、rs、deployment、pod、container;

  pod: 它的作用是管理容器container

  rc: 全称叫做Replication Controller;它的主要作用就是管理一组相关联的pod,意思就是说管理你在rc的yaml文件中定义的

     replicas副本数量,也就是replicas个pod

  rs: 全称叫做replica set,它是rc的升级版,主要就是升级了selector,可以以集合的形式书写

  deployment: 它也是用以管理pod的,这个做的更改就比较大了,其中对我来说比较有用的是哪个回滚操作,对于rc来说,如果

    部署完毕是没法回滚的,但是deployment缺可以;使用rollout undo去完成

五、日志和持久化

  我感觉对于运维来说搭建好容器之后,容器里面的数据持久化和采集容器内的日志是两个点,采集日志的话,大家可以参考网上

  的EFK实例,后期我也会搭建一套,到时候再写博客,持久化那块大家可以使用集中式存储,然后挂载到本地系统,运行容器的时候

  加上-v再挂载到容器内部,当然了,k8s在运行pod的时候,就可以在yaml文件中加上这一项

六、给出一张最近研究的最近k8s架构图(后续会慢慢讲解)

  

七、几种service访问形式

  

八、总结

  说到这里,想必大家对k8s应该有个概括性的认识了,可以确定的是,在企业中,k8s用到比较多,swarm集群管理基本上没有人用了

  生产环境的话,我们需要搭建高可用、分布式的集群环境,这样才能保证安全性,后面有时间的话,我会研究一下k8s HA,跟大家一块再探讨!

  

  

  

docker集群管理之kubernetes的更多相关文章

  1. Docker集群管理工具 - Kubernetes 部署记录 (运维小结)

    一.  Kubernetes 介绍 Kubernetes是一个全新的基于容器技术的分布式架构领先方案, 它是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernete ...

  2. Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET

    Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET undefined Package - crawler undefined 科学网- ...

  3. Docker集群管理(一)—— 基础docker+swarm+shipyard

    目的 学习docker的集群管理,摸索出高可用的docker微服务架构方案.本篇文章只初步的了解下swarm(docker新版已集成了swarm)的使用,了解docker的发现服务的基础方法(dock ...

  4. 基于zookeeper+mesos+marathon的docker集群管理平台

    参考文档: mesos:http://mesos.apache.org/ mesosphere社区版:https://github.com/mesosphere/open-docs mesospher ...

  5. docker集群管理

    docker集群管理 ps:docker machine     docker swarm       docker compose  在Docker Machine发布之前,你可能会遇到以下问题: ...

  6. centos7上基于kubernetes的docker集群管理

    kubernetes和docker的作用这里就不作介绍了,直接进入主题. 本文的目的是搭建docker集群,并使用kubernetes管理它们. 文中的软件环境除了kubernetes和docker, ...

  7. Centos下安装Docker集群管理工具Shipyard

    一. Docker Shipyard是什么 ? shipyard是一个开源的docker管理平台,其特性主要包括: 支持镜像管理.容器管理. 支持控制台命令 容器资源消耗监控 支持集群swarm,可以 ...

  8. Docker集群管理(三)—— docker swarm mode基础教程

    docker从1.12版(及后续版本)集成了swarmkit.可以方便的实现docker集群.它有哪些特点呢: 集成了集群功能 分散设计:manager和worker两种节点. 声明式服务模式 可伸缩 ...

  9. Docker集群管理(二)—— docker+swarm+etcd+shipyard

    引言 前一篇介绍如何简单的搭建一个可视化管理的docker集群,本篇将在此基础之上引入etcd发现服务. 目的 使用etcd发现服务解决swarm内置发现服务的不稳定问题.etcd采用raft算法,这 ...

随机推荐

  1. JAVA学习之跨平台性

    Java语音的特点:跨平台性什么是跨平台性通过Java语音编写的应用程序再不同的系统平台上都可以运行. 原理是什么只要在需要运行Java应用程序的操作系统上.先安装一个Java虚拟机(JVM Java ...

  2. pefile解析PE格式

    import os,sys import pefile import pydasm import struct #print sys.argv def show_section(pe): print ...

  3. 作用域 {}代码块 const修饰符 引用

    简单分为:全局作用域.局部作用域.语句作用域 如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::” ::aver=20 #include<iostream> usin ...

  4. Django框架(十)—— 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询、聚合查询、分组查询、F查询与Q查询

    目录 多表操作:增删改,基于对象/双下划线的跨表查询.聚合查询.分组查询.F查询与Q查询 一.创建多表模型 二.一对多增删改表记录 1.一对多添加记录 2.一对多删除记录 3.一对多修改记录 三.一对 ...

  5. JSoup安装

    要运行任何jsoup示例,需要先安装好jsoup相关Jar包.到目前为止(2017年05月),jsoup的当前版本是1.10.2.0.安装jsoup主要有三种方法: 通过Maven的pom.xml配置 ...

  6. Feign 系列(01)最简使用姿态

    目录 Feign 系列(01)最简使用姿态 1. 引入 maven 依赖 2. 基本用法 3. Feign 声明式注解 Feign 系列(01)最简使用姿态 Spring Cloud 系列目录(htt ...

  7. tomcat服务器和HTTP协议

    tomcat:一个服务器的服务器软件,发布资源要用的 服务器组成: 1.服务器硬件 2.服务器软件 3.项目(一堆资源的集合) 4.资源tomcat本身是一个java程序,必须依赖jre运行eclip ...

  8. mysql动态列--统计报表信息对比

    SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(tmp.summary = ''', tp.summary, ''', tm ...

  9. 基于Python玩转人工智能最火框架 TensorFlow应用实践✍✍✍

    基于Python玩转人工智能最火框架  TensorFlow应用实践 随着 TensorFlow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架.而在昨天机器之心发起 ...

  10. 天道神诀--IPSAN(iscsi配置)

    数据存储技术 DSA(Direct Attacted Storage 直接附加存储)本地硬盘 NAS(Network Attacted Storage 网络附加存储)网络服务共享:文件夹 SAN(St ...