kubernetes学习笔记

原地址:【k8s】1、介绍_hancoder的博客-CSDN博客

k8s本质上是一组服务器集群。

实现功能:

1.弹性伸缩:可以根据需要自动的扩展或者减少容器

2.负载均衡:如果一个服务起了多个容器,可以自动的进行负载均衡

3.服务发现:可以自动发现服务所依赖的其他服务

4.版本回退:发现新版本有问题,可以回退到之前的版本

5.自我修复:如果一个容器崩溃,可以秒启动另一个容器

6.存储编排:根据容器自身需要自动创建存储卷

k8s是主从结构,master节点是集群的控制平面,负责管理集群,node节点是集群的数据平面,负责为容器提供运行环境。

master分为 ApiServer 、Scheduler、controllerManager、etcd

node分为kubelet、kubeProxy、docker

ApiServer是所有流量的入口,负责用户输入的命令,提供认证、授权、API注册、发现等

Scheduler负责资源的调度,按照相应的调度策略,将pod调度到相应的node上

controllerManager负责集群状态的维护,包括程序的部署安排、故障检测、自动扩展、滚动更新等

etcd是存储数据

kubelet负责管理容器生命周期,通过控制docker来创建更新销毁容器

kubeproxy负责集群内部服务的调度

docker负责操作容器

部署nginx的流程:

kubernetes启动之后,master和node的信息都会存储在etcd中,一旦nginx发送安装请求,master的apiserver会调用scheduler确定将nginx安装到哪个node上,scheduler是通过去etcd上查询node信息并通过一定的算法来确定node的安装位置,并通知apiserver。

apiserver再调用Controllermanager去调度node节点安装nginx。

kubelet接收到指令之后,会通知docker,由docker来创建一个pod来存放nginx的容器镜像。如果外部需要访问nginx就要通过kubeproxy对pod产生访问的代理。

名词解释

namespace:命名空间,用来隔离pod;

pod:k8s管理的最小单位,用来封装容器,一个pod可能会有多个容器;

deployment:一种pod控制器,用来操作pod,当pod被删除,deployment不删除时,pod会自动启动;

label:标签

service:作为pod的对外接口,(pod的ip会变化),由一组相同提供服务的pod组成?

deployment和service通过labelselector(标签选择器来选择pod)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值