k8s--(1)k8s介绍和使用

一、定义

k8s是一个集群系统,允许开发人员在其上很容易的部署和管理容器化的应用。

二、k8s集群架构

k8s的集群被由很多节点组成,这些节点可以分为两类:

主节点:承载k8s控制和管理整个集群系统的控制面板

工作节点:运行应用的节点

1、控制面板用于控制集群并使它工作,它不运行程序,由多个组件组成:
API服务器:图中的rest,所有的k8s的操作、组件间的通信都要经过它

scheduler:负责应用程序的调度

controller manager:执行集群级别的功能,例如复制组件,持续跟踪工作节点,处理节点失败等

etcd:Distributed Watchable Storage 分布式数据存储系统,持久化存储集群配置

2、工作节点是运行容器化应用的机器,包括以下组件:

docker、rkt等容器类型

kubelet:它与API服务通信,并管理它所在节点的容器

kube-proxy:负责组件之间的负载均衡网络流量

三、使用k8s的好处

1、简化应用程序的部署(承上):开发人员不需要了解底层服务器的资源,使得开发环境和生产环境是相同的,不需要考虑环境问题

2、更好的利用硬件(启下):运维人员不需要手动运行程序,k8s将基础设施和应用程序分离开来,它会自动协调硬件资源,调度容器到更优的机器上

3、健康检查和自修复(管理监控):服务器故障时,k8s自动迁移应用程序到其他运行正常的节点上,无需手动监控、迁移

四、在k8s上运行一个应用

1、运行流程

(1)构建一个docker镜像

(2)推送镜像到docker仓库

(3)使用kubectl启动服务

(4)kubectl命令行是与k8s的REST API server交互的

(5)k8s创建pod并调度到工作节点

(6)工作节点收到调度指令

(7)kubelet告诉docker去运行镜像

(8)docker启动时去docker仓库拉取镜像

2、逻辑部分

k8s的集群架构图是一个物理视图,还有一个逻辑视图,将replicationcontroller、pod、服务三个概念组合起来

(1)kubectl run命令其实并没有直接创建一个pod,而是创建了一个replicationcontroller,用它来创建pod,为了能从集群外访问pod,需要让k8s将该replicationcontroller管理的所有pod对外暴露成一个服务。

(2)replicationcontroller用于复制pod并让他们保持运行,它可以创建多个pod的副本(我们的系统一般每个pod只有一个副本),如果一个pod挂了,replicationcontroller会创建一个新的来代替它

(3)为什么需要服务?其实pod的短暂的,无论因为什么原因挂了,replicationcontroller都会创建一个新的来替代它。kubectl get pod命令可以看到每个pod都有一个IP,但是这个IP实际上是对集群内部的,新的pod的ip地址和旧的是不同的,外部或集群内部的其他服务无法感知到pod的ip变化,于是有了服务,服务被创建时,会得到一个静态ip,在服务的生命周期里,这个静态ip是不会变的,客户端应该通过这个ip来连接到服务,进而访问到具体的pod

3、外界访问

如上所述,pod的ip是变化的且是对集群内部的,要想从外部访问pod,就要创建一个服务把pod暴露出去,创建服务只需要一个命令:
kubectl expose replicationcontroller pod名 --type=LoadBalancer --name 服务名

通过kubectl get services 命令查看服务,可以看到对外暴露的ip和端口,从外部访问服务时,直接curl这个ip、端口就可以了

4、水平伸缩

pod是由replicationcontroller管理的,通过kubectl  get replicationcontrollers查看pod的副本情况,期望值DESIRED和运行值CURRENT

增加期望的副本数:kubectl scale replicationcontroller pod名 --replicas=3

然后就会运行3个pod了,外部请求服务地址后,k8s随机选择一个pod进行访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值