从docker到kubernetes(k8s)入门与实战--kubernetes教程1

如果你有一定对k8s的了解,这可以不看了,这篇文章试用于小白

1、k8s技术

1什么是k8s
简单的讲,k8s是一套自动化容器运维的开源平台,这些运维操作包括部署、调度和节点集群的间扩展,上一章里简单介绍了docker,实际上,开源把docker看做是k8s内部使用的低级别的组件,而k8s是管理docker容器的工具,如果docker是飞机,那么k8s就是机场。

2k8s的发展历史(这里就不多介绍了)

3为什么要用k8s
从主机为中心的架构跃升至以容器为中心的架构!!

2、k8s重要概念

先插两张k8s的结构图便于理解在这里插入图片描述

在这里插入图片描述

1cluster集群

在k8s中,cluster是计算、存储、和网络资源的集合、k8s利用这些基础资源来运行各种应用程序,因此,cluster是整个k8s容器集群的基础环境。

2master主控

master是指集群的控制节点,在每个k8s集群中,至少有1个master节点来复制整个集群的管理和控制,几乎所有的集群控制命令都在master上来执行的,因此,master是整个集群的大脑,正因为master如此重要,所以为了实现高可用性,用户也可以部署多个master节点,master节点也可以是物理机,也可以是虚拟机。

通常来说,master上有这4个关键的进程:
1>k8s api server
作用是提供了kubernetes各类资源对象的增删改查的http rest接口,是整个系统的数据总线和数据中心,api server提供了集群管理的rest api接口,包括了认证授权,数据校验以及集群状态变更,提供了其他模块之间的数据交互和通讯的枢纽,是资源配额控制的人口,拥有完备的集群安全机制

2>k8s controllor manager (k8s的控制器,管理器)
是集群内部的管理控制中心,负责集群内的node节点、pod副本、服务端点、命名空间。服务账号。资源配额的管理,当某个node意外宕机时,controller manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态

3>k8s scheduler调度器
作用是根据特定的算法把pod调度到指定的工作节点(node)上,这一过程也叫绑定bind,scheduker的输入需要调度的pod和可以被调度的节点信息,输出为调度算法选择的node节点,并将改pod绑定到这个node节点。

4>etcd
是k8s集群中的一个非常重要的组件,用于保存集群所有的网络配置和对象的状态信息。

3node节点

除了master节点之外,其他节点都被称为node节点,node节点与master节点不同,node节点才是k8s中承担主要计算功能的工作节点,node节点可以是一台物理机,也可以是一台虚拟机。

通常来说,master上有这3个关键的进程:

1>kubelet
在k8s中,每个node节点都会启动kubelet进程,作用是处理master节点下发到节点的任务,管理pod和其中的容器,kubelet会在apiserver上注册节点信息,定期向master回报节点资源的使用情况,并通过cadvisor监控 容器和节点资源,可以把kubelet理解成是一个代理进程,是node节点上的pod管家。

2>kube-proxy
运行在所有node节点上,他监听每个节点上的kubernets api中定义的服务变化情况,并创建路由器规则来进行服务负载均衡

3>docker引擎
该docker引擎就是欠骂介绍的docker ce等服务引擎,负责容器的创建和管理等。

4 pod

pod是k8s的最基本的操作单元,一个pod中可以包含一个或多个紧密先关的容器,一个pod是可以被一个容器化的环境看作应用层的逻辑宿主机,每个pod中都有个pause容器,其他均为业务容器,所有业务容器,都共享pause容器网络栈和volume挂载卷,因此他们之间的通讯和数据交换更为高效,通过这个特性,我们可以讲一组没切相关的服务进程放入油锅pod中,可以使得业务容器之间交换数据跟通讯更为高效。

5 服务

4个特点:

1拥有一个指定的名字,比如mysql-server
2拥有一个虚拟IP地址和端口号,销毁之前不会改变,只能内网访问
3能够提供某种远程服务能力
4被映射到了提供这种服务能力的一组容器应用上

如果服务要提供外网服务,就需要指定公共ip和node端口,或外部负载均衡器

6 卷

1emptydir类型的卷
容器重启,删除,卷还是存在的,pod被删除时,卷才会被清理
2持久化存储卷
不属于任何一个nodej节点,因此,在pod被删除时,不会丢失数据,除非人工将其删除。

7 命名空间

k8s启动后,会创建一个名为default的默认命名空间,如果不特别指明命名空间,那么用户所创建的pod,rc,服务,都会被系统创建到默认的命名空间中

当团队或项目中具有很多用户时,可以考虑使用命名空间来区分。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值