k8s基础知识
k8s部署到云计算上的优势

传统模式: 在k8s外部部署一个外置调度器,请求先到物理node节点ip地址,由物理服务地址再转发代理至service地址,如果node节点也是私网地址呢,就需要再外部部署一个外置的调度器,在这个调度器可以调度至任意节点上,node节点上只能有一个端口来转发到service服务的端口,中间需要经过很多次转发,性能降低很多。外置调度器已经处于k8s外部了,不能通过k8s命令来创建,这时就需要LBaaS云计算上。
LBaaS:负载均衡即服务,可以根据命令一次调一个API创建一个负载均衡器,这个负载均衡器可以存着集群外部,如果该负载均衡器是由软件实现的可直接由命令请求创建,因此如果我们将k8s运行在阿里云这样的虚拟机上,多个这样的虚拟机组成k8s集群,阿里云或者亚马逊云是支持LBaaS的,所以k8s可对外调用底层的云计算环境创建一个调度器,将服务接入进来,将k8s部署在云计算上有这个优势。
k8s内部存在三种网络
- pod网络,事实存在的网络能够ping通
- service网络,集群网络,虚拟网络由iptables或者ipvs规则创建的,ping不通
- node节点物理机网络
外部访问先访问到node节点网络,由节点网络代理至集群网络,在由集群网络代理至pod网络。
k8s内部三种通信
同一个pod内的多个容器间通信
lo本地通信
各pod之间的通信
Overlay Network叠加网络(通过隧道方式来转发二层报文,虽然pod跨主机但是就像在同一主机工作一样)
每个node地址处于不同网段,防止pod地址重复
pod与service之间的通信
pod是直接配置service的名称或者地址进行访问的,怎么可达service呢
service地址由iptables创建,每台虚拟机都存在iptables规则,pod直接将请求发给网关,可跟service通信。
每个node节点存在kube-proxy组件,service的创建,API Service通知到kube-proxy,kube-proxy负责在每个node创建iptables规则,每个service的变动也是通过kube-proxy反映到各node的iptables规则上。
k8s内部五套证书
- etcd之间的https证书
- etcd和API Server之间的https通信证书
- API Server与客户端之间的https通信证书
- API Server与node节点的kubelet之间的https通信证书
- API Server与node节点的kube-proxy之间的https通信证书
etcd功能
API Server需要存储很多数据,这些数据是放在各个master的共享存储上的,这个共享存储的db就是etcd。
etcd是键值存储的系统,etcd如果宕机,那么k8s集群将崩溃,所以etcd需要做成高可用.
多个etcd通过https通信,不通过http通信,防止数据被盗走。
k8s基础知识的更多相关文章
- 《两地书》--Kubernetes(K8s)基础知识(docker容器技术)
大家都知道历史上有段佳话叫“司马相如和卓文君”.“皑如山上雪,皎若云间月”.卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武帝赏识,飞黄腾达之后便要与卓文君“故来相 ...
- Kubernetes(K8s)基础知识(docker容器技术)
今天谈谈K8s基础知识关键词: 一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机 ...
- ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建
在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...
- YAML基础知识及搭建一台简洁版guestbook
一,前言 前面我们已经搭建过简易版k8s集群了,在此基础上可以搭建一个简洁版guestbook ,以便来学习k8s创建pod的整个过程. 二,在此之前,我们还需要学习一下YAML基础知识 YAML 基 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
随机推荐
- 【java设计模式】-07适配器模式
适配器模式 定义: 将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 类型: 结构型模式 应用实例: 1.JAVA JDK 1.1 提供 ...
- eclipse异常:Exception in thread ""http-bio-8080"-exec-5" java.lang.OutOfMemoryError: PermGen space
用eclipse运行项目,最烦的就是非代码错误.现在这个异常信息,表示的是tomcat启动内存溢出.试过的最简单的办法就是eclipse->project->clean->clean ...
- Python中的变量、对象
由于没时间系统学习下Python 只能见一个问题探究一个问题了 一.初级 - 对象 关于Python中的数据类型,今天重新认识了下.[参考] 首先,Python中,对象才有类型, 变量是没有类型的,它 ...
- [MyBatis]向MySql数据库插入一千万条数据 批量插入用时6分 之前时隐时现的异常不见了
本例代码下载:https://files.cnblogs.com/files/xiandedanteng/InsertMillionComparison20191012.rar 这次实验的环境仍然和上 ...
- selenium 学习中遇到的问题汇总
1.使用document.getByClassName时无click事件,然后就不知道怎么办了,也不太懂前端,与开发大哥确认,div 中class实现展开和收起是通过隐藏和显示这种方式实现的,在编写时 ...
- 01 MySQL之数据库基本操作
01-介绍 数据库(DataBase,DB)是一个长期存储在计算机内的.有组织的.有共享的.统一管理的数据集合. 02-基本操作 2.1 创建数据库 # 查看当前所有的数据库 show databas ...
- Rvm 进行gem安装时必须输入密码Your user account isn't allowed to install to the system RubyGems 解决方案
今天开发过程中,从master拉下代码后重启项目,想用控制台时,却发现需要密码??并且三次密码确认后还是疯狂报错. 当时第一想到是rvm版本不一致,随即则检查了版本跟gem生成,当确认rvm版本无误时 ...
- SPARQL查询语句整理
本文大多内容来自Joshua Taylor的回答 https://stackoverflow.com/users/1281433/joshua-taylor 查询子类或等价关系 https://sta ...
- How To Install OpenSSL on Windows
转自 https://tecadmin.net/install-openssl-on-windows/ OpenSSL is a full-featured toolkit for the Trans ...
- JAVA与c#中byte取值范围的差异
C#中分有符号类型的sbyte和无符号类型的byte Console.WriteLine("byte.min:{0},byte.max:{1},{2}byte", byte.Min ...