• 四组基本概念

    1. Pod/Pod控制器

    2. Name/Namespace

    3. Label/Label选择器

    4. Service/Ingress

  • Pod

    Pod是k8s里能够被运行的最小的逻辑单元(原子单元)

    1个Pod里面可以运行多个容器,它们共享UTS+NET+IPC名称空间

    可以把Pod理解成豌豆荚,而同一个Pod的每个容器都是一颗颗豌豆

    一个Pod里运行多个容器,又叫边车(SideCar)模式

  • Pod控制器

    Pod控制器是Pod启动的一种模板,用来保证K8S里启动的Pod应始终按照人们的预期运行(副本数、生命周期、健康状态检查等)

    K8S提供了众多的Pod控制器,常用的有以下几种:

    • Deployment(核心)

    • DaemonSet(核心)

    • ReplicaSet

    • StatefulSet

    • Job

    • CronJob

  • Name

    由于K8S内部,使用“资源”来定义每一种逻辑概念,所以每一种“资源”都应该有自己的资源

    “资源”有api版本(APIVersion)、类别(Kind)、元数据(metadata)、定义清单(spec)、状态(status)等配置信息

    “资源”通常定义在“资源”的”元数据“信息里面

  • Namespace

    随着项目增多、人员增多、集群规模的扩大,需要一种能够隔离K8S内部各种“资源”的方法,这就是Namespace

    Namespace可以理解为K8S内部的虚拟集群组

    不同的Namespace内的“资源”,名称可以相同,相反同一个Namespace中,同种“资源”的“名称”不能相同

    合理的使用K8S的Namespace,使得集群管理员能够更好的对交付到K8S里的服务进行分类管理和浏览

    默认存在的Namespace有:default、kube-system、kube-public

    查询K8S里特定“资源”要带上相对应的Namespace

  • Label

    标签是k8s特色的管理方式,便于分类管理资源对象。 一个标签可以对应多个资源,一个资源也可以有多个标签,它们是多对多的关系。 一个资源拥有多个标签,可以实现不同维度的管理。 标签的组成: key=value 与标签类似的,还有一-种“注解” ( annotations )

  • Label选择器

    给资源打上标签后,可以使用标签选择器过滤指定的标签 标签选择器目前有两个:基于等值关系(等于、不等于)和基于集合关系(属于、不属于、存在) 许多资源支持内嵌标签选择器字段

    • matchLabel

    • matchExpressions

  • Service

    在K8S的世界里,虽然每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失 Service (服务)就是用来解决这个问题的核心概念 一个Service可以看作一组提供相同服务的Pod的对外访问接口 Service作用于哪些Pod是通过标签选择器来定义的

  • Ingress

    Ingress是K8S集群里工作在OSI网络参考模型下,第7层的应用,对外暴露的接口 Service只能进行L .4流量调度,表现形式是ip+ port Ingress则可以调度不同业务域、不同URL访问路径的业务流量

kubernetes组件

核心组件

1、配置存储中心—>etcd服务

2、主控(master)节点

  • kube-apiserver服务

    功能:(说白了就是k8s的大脑)

    1、提供了集群管理的RESTAPI接口(包括鉴权、数据校验及集群状态变更)

    2、负责其他模块之间的数据交互,承担通信枢纽功能

    3、是资源配额控制的入口

    4、提供完备的集群安全机制

  • kube-controller-manager服务

    由一系列控制器组成,通过apiserver监控整个集群的状态,并确保集群处于预期的工作状态

    Node Controller Deployment Controller Service Controller Volume Controller Endpoint Controller Garbage Controller Namespace Controller Job Controller Resource quta Controller .......

  • kube-scheduler服务

    主要功能是接收调度pod到适合的运算节点上 预算策略( predict ) 优选策略( priorities )

3、运算(node)节点

  • kube-kubelet服务

    1、简单地说, kubelet的主要功能就是定时从某个地方获取节点上pod的期望状态(运行什么容器、运行的副本数量网络或者存储如何配置等等) ,并调用对应的容器平台接口达到这个状态

    2、定时汇报当前节点的状态给apiserver,以供调度的时候使用

    3、镜像和容器的清理工作保证节点上镜像不会占满磁盘空间,退出的容器不会占用太多资源

  • Kube-proxy服务

    1、是K8S在每个节点上运行网络代理, service资源的载体

    2、建立了pod网络和集群网络的关系( clusterip >podip )

    3、常用三种流量调度模式

    ● Userspace (废弃 )

    ● Iptables (濒临废弃)

    ● Ipvs(推荐)

    4、负责建立和删除包括更新调度规则、通知apiserver自己的更新,或者从apiserver哪里获取其他kube-proxy的调度规则变化来更新自己的

CLI客户端

  • kubectl

核心附件

  • CNI网络插件—>flannel/calico

  • 服务发现用插件—>coredns

  • 服务暴露用插件—>traefik

  • GUI管理插件—>Dashboard

K8S基础的更多相关文章

  1. 《两地书》--Kubernetes(K8s)基础知识(docker容器技术)

    大家都知道历史上有段佳话叫“司马相如和卓文君”.“皑如山上雪,皎若云间月”.卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武帝赏识,飞黄腾达之后便要与卓文君“故来相 ...

  2. ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建

    在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...

  3. Kubeasz部署K8s基础测试环境简介

    下面介绍使用Kubeasz部署K8s集群环境. https://github.com/easzlab/kubeasz在需要使用kubeeasz项目安装的k8s时,需要将所有需要它来部署的节点上,都安装 ...

  4. Kubernetes(K8s)基础知识(docker容器技术)

    今天谈谈K8s基础知识关键词: 一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机 ...

  5. docker+k8s基础篇五

    Docker+K8s基础篇(五) service资源介绍 A:service资源的工作特性 service的使用 A:service字段介绍 B:ClusterIP的简单使用 C:NodePort的简 ...

  6. docker+k8s基础篇四

    Docker+K8s基础篇(四) pod控制器 A:pod控制器类型 ReplicaSet控制器 A:ReplicaSet控制器介绍 B:ReplicaSet控制器的使用 Deployment控制器 ...

  7. docker+k8s基础篇三

    Docker+K8s基础篇(三) kubernetes上的资源 A:k8s上的常用资源 Pod的配置清单 A:Pod上的清单定义 B:Pod创建资源的方法 C:spec下其它字段的介绍 Pod的生命周 ...

  8. docker+k8s基础篇二

    Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...

  9. docker+k8s基础篇一

    Docker+K8s基础篇(一) docker的介绍 A:为什么是docker B:k8s介绍 docker的使用 A:docker的安装 B:docker的常用命令 C:docker容器的启动和操作 ...

  10. k8s基础环境配置:基于CentOS7.9

    k8s基础环境配置:基于CentOS7.9 wmware15安装centos7.9:https://www.cnblogs.com/uncleyong/p/15261742.html 1.配置静态ip ...

随机推荐

  1. 剑指 Offer 55 - II. 平衡二叉树

    题目描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树.如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树. 示例1: 给定二叉树 [3,9,20,null,null,1 ...

  2. ElasticSearch7.6.1 概述

    本来打算重新回去看 并发编程的,之前看过一遍,现在基本忘完了,然后因为考虑到项目的需要,就先看ES了 然后再B站上看到一个视屏比较火,就看这个吧 给大家推荐一下 https://www.bilibil ...

  3. 区间查询与等效minus查询

    --表结构 create table hy_emp( id number(4,0) primary key, name nvarchar2(20) not null, edate date) --充值 ...

  4. Effective Objective-C 的读书笔记

    本文主要是摘录了 <Effective Objective-C 2.0>一书中提到的编写高质量iOS 代码的几个方法. 1 熟悉Objective -C 1.1 OC 起源 OC 为C语言 ...

  5. elo system

    今天了解了一下游戏中的PVP模块的实现,大多数的游戏都使用到了ELO算法,刚开始的时候并不清楚这个算法是做什么的,对此开始大量查找有关于ELO算法的资源,功夫不负有心人,总算找到一些有用的资源了. 先 ...

  6. Dos拒绝服务Sockstress/TearDrop 泪滴攻击(二)

    Sockstress放大攻击原理:攻击者向目标发送一个很小的流量,但是会造成产生的攻击流量是一个巨大的.成百上千倍上万倍流量被放大的一个效果,才适合作为一个拒绝服务攻击效果.(实现攻击者很小的流量打垮 ...

  7. [Java并发]实现两个线程交替打印奇偶数(volatile+yield实现)

    解题思路 实现一个类OddEven 有一个打印奇数的方法,有一个打印偶数的方法. 类中有一个volatile变量 ,用来控制当前状态是该哪个方法打印. 方法中打印每个数前首先判断volatile变量的 ...

  8. vue项目Windows Server服务器部署IIS设置Url重写

    1.将vue项目使用npm run build命令打包后将dist文件夹内的文件全部拷贝到服务器. 2.IIS添加应用程序池,.NET CLR版本选择无托管代码 3.添加网站,应用程序池选择刚刚添加的 ...

  9. Linux实战(13):Centos8 同步时间

    前言 以下操作是通过ntpdate命令实现同步 timedatectl set-timezone Asia/Shanghai # 设置时区 rpm -ivh http://mirrors.wlnmp. ...

  10. python:一切皆对象

      学过java语言的童鞋都知道,java是一门面向对象语言,其基本思想就是一切皆对象.Python也是一样的,甚至Python将面向对象思想贯彻地更加彻底,因为在Python中,class本身是一个 ...