kubernetes

应用程序编排工具

一、ansible是新出现的自动化运维工具,也叫应用程序编排工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
二、应用程序docker化后出现了新的编排工具。
A.早期Docker编排三剑客:docker compose ,docker swarm,docker machine
1、docker compose适用在单机环境里部署一个或多个容器,并自动把多个容器互相关联起来。
2、docker swarm 将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。
3、docker machine:负责在多种平台上快速安装 Docker 环境。
B.mesos marathon
C.kubernetes(最流行)

DevOps

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠
它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

CI

持续集成
持续集成实现从开发->提交代码->部署测试环境->测试(单元测试、接口测试、手动测试)->可交付的快速过程

CD

持续交付(Delivery)
持续部署(Deployment)

kubernetes简介

Kubernetes是Google开源的一款容器编排工具,它是诞生在Google内部运行N多年的博格系统之上的产物,因此其成熟度从其诞生初期就广泛受到业界的关注,并且迅速成为编排工具市场的主流,其社区活跃度非常高,版本迭代速度也很惊人,它的主要作用是对Docker容器做编排工作,当然,Docker只是容器工具的一种引擎,K8s可支持多种容器引擎,但从目前来说Docker容器引擎是具有绝对优势的,
容器需要编排,也很容易理解,因为我们最核心要跑到业务通常都是LNMT/P的不同形式的扩展,但NMT/P他们的运行是有先后顺序的,也就是说MySQL要先启动,然后是Tomcat或PHP,最后是Nginx,而控制这种顺序就需要有容器编排工具来帮我们实现,
另外,我们的业务希望7x24小时在线,如何保障?靠人是很难做到实时的,但编排工具可以,K8s帮我们实现了很多控制器,这控制器可以帮我们监控容器运行的状态,并自动帮我们重建(在容器时代重启就是重建)容器,并且还可以在容器处理能力不足时,自动根据我们定义的扩展规则,自动创建新Pod(k8s中最小单元,每个Pod中可有一个或多个容器),并且在压力下去后,自动删除Pod等等功能。

K8s的中文官方文档zh站点

https://k8smeetup.github.io/docs/

kubernetes中文社区

https://www.kubernetes.org.cn

kubernetes源码位置

https://github.com/kubernetes

MAC安装kubernetes

一、Mac中安装了Docker之后,会自动安装了Kubernetes,正常情况下,我们只需要在Docker的Preferrences->Kubernetes中勾选Enable Kubernetes,然后点击Apply按钮即可。但由于伟大的墙的存在,如果您是直接在Docker中启用Kubernetes,Kubernetes的状态会一直都是kubernetes is starting…,原因是有一些Kubernetes依赖的镜像不能正常的下载。
1、手动拉取镜像:git clone https://github.com/maguowei/k8s-docker-for-mac,
2、修改k8s-docker-for-mac目录中的images文件,将Kubernetes版本修改为当前docker支持的版本。
3、执行sh load_images.sh拉去镜像
4、镜像拉取完成后,勾选Enable Kubernetes,点击Apply按钮,等待几分钟,出现下图的状态表示启用成功。
在这里插入图片描述

Kubernetes dashboard

参考:http://www.fwhyy.com/2019/05/building-kubernetes-in-mac/
一、Kubernetes dashboard是一个Web界面的管理工具
二、执行下面命令后,会监听本机的8001的端口,
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl proxy #默认情况下代理的是8001端口,如果要指定端口用下面命令
kubectl proxy --port=8080

这时访问http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login,可以进入登录界面