kubernets基础
1.定义和功能。
1.1定义:kubernets解释为舵手或者飞行员,以Borg为主衍生出。
1.2功能:自动装箱,自我修复,水平扩展,服务发现和负载均衡,自动发布和回滚。
密钥和配置管理,存储编排,批量处理执行。
2.架构。
2.1master(本身集群)主要包含三部分:1.API server 2.Scheduler 3.Controller-Manage
•API server:负责接收和处理请求
•Scheduler调度器:来观察各个node的资源情况,选择最好的资源响应用户的请求;两级调度:1.海选2.在海选中优选。
•Controller-Manage(冗余性):负责监控每个Controller的状态。Controller,控制器,持续不断(loop)的对容器做检测,是否符合用户预期或者宕机等。
2.2node上的一个组件kuberlet,对node上容器引擎(docker为主)做响应的启动等和健康检查。kube-proxy和API server进行通信,管理Service。
2.3pod是k8s集群中最小的逻辑单元,每个pod中主要包含容器。特性如下:
2.3.1pod中的容器共享网络和存储卷。
2.3.2一般一个pod是单容器模式或一主多辅模式(如nginx和logstach共存)。
2.3.3Client和pod通信,中间经过一层中间层(Service),其本质就是类似iptables的端口转发(DNAT)。
2.3.4pod的控制器
分别对应不同的后台资源,Depolyment还支持二级控制器,HPA(HorizontalPodAutosclar),能根据请求量自动扩容或者缩容。
2.3.5pod地址是不断变化的,所以Service和pod是通过Lable Selector(标签选择器)进行通信。相同功能的podLable是一样的。
2.4网络层(三层网络,不同网段)
2.4.1简单架构图
网络提供上只要遵循CNI(容器网络接口),就能为k8s提供网络服务。
2.4.2二层维度:
1.为pod和Service提供ip服务
2.提供网络策略(隔离不同pod之间通信等)。
canel是flannel和calico的结合,flannel提供网络配置,calico提供网络策略。不直接使用calico是因为配置较为复杂。
2.4.3整体网络架构:三层网络
2.5架构中存储架构信息是存在共享存储(etcd)中。架构之间的通信需要五套ca证书。
1.etcd(一般是三个)之间的内部通信;
2.etcd和API server之间通信;
3.API server和client之间通信;
4.API server和kuberlet之间通信;
5.API server和kube-proxy之间通信。
kubernets基础的更多相关文章
- Kubernets-初见
只是入门文档. 使用 linux 通过 java -jar 方式部署单体架构,war 包丢tomcat. 使用 Docker部署微服务架构. 使用 K8s Pod 进行部署 一个一个 服务 命令 je ...
- Kubernets搭建Kubernetes-dashboard
接上篇文章,在已经部署好Kubernetes的基础上部署kubernetes-dashboard,它是官方提供的用户管理Kubernets集群可视化工具:部署dashboard其实和在kubernet ...
- Kubernetes基础
Kubernetes是什么 Kubernetes是当今最流行的开源容器管理平台,它就是大名鼎鼎的Google Borg的开源版本.Google在2014年推出了Kubernetes,本文发布时最新的版 ...
- k8s1.9.0安装--基础集群部署
二.基础集群部署 - kubernetes-simple 1. 部署ETCD(主节点) 1.1 简介 kubernetes需要存储很多东西,像它本身的节点信息,组件信息,还有通过kubernetes运 ...
- ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建
在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...
- 1-2、kubernetes架构概述和kubernetes基础概念
kubernetes https://draveness.me/understanding-kubernetes http://kubernetes.kansea.com/docs/ master/n ...
- kubernets之控制器之间的协作以及网络
一 创建一个deployment的时候整个kubernets集群的资源和事件的调用链 1.1 创建一个deployment的资源,在提交的时候,集群中的调度器,控制器以及node节点上kubele ...
- kubernets之Deployment资源
一 声明式的升级应用 1.1 回顾一下kubernets集群里面部署一个应用的形态应该是什么样子的,通过一副简单的图来描述一下 通过RC或者RS里面的模板创建了三个pod,之后通过一个servci ...
- kubernets之pv以及pvc
一 持久卷以及持久卷声明的由来 由于不管是哪种卷,开发者都需要提前预知kubernets集群里面的存储类型,这样就在一定程度上违背了kubernets集群的设计理念,kubernets的设计理念是在由 ...
随机推荐
- docker+gitlab+gitlab-runner部署
环境 服务端:centos7 客户端:window 在centos7上部署docker+gitlab+gitlab-runner,win10利用ssh连接,开发人员只需提交代码,就可以进行项目文件上传 ...
- Ubuntu 批量添加用户
#!/bin/bash cat user.txt | while read linedo user=$(echo $line | cut -d ' ' -f1) passwd=$(echo ...
- Codeforces Round #553 (Div. 2) A题
题目网址:http://codeforces.com/contest/1151/problem/A 题目大意:给定一个由大写字母构成的字符串和它的长度,有这样的操作,使任意一个字母变成与其相邻的字母, ...
- 双硬盘,win10安装到固态盘
1.PE下格式化固态盘的系统盘 2.打开DG分区工具,查看固态盘的系统盘是否为激活状态,红色为激活,如果不是,激活一下 3.用windows安装器,或者hdd安装win10到固态盘 4.bios中启动 ...
- 4-21 嵌套选择器 、块级元素和内联元素、光标、布局-overflow
1.嵌套选择器 p{ }: 为所有 p 元素指定一个样式.(默认,,也就是说可以被改变样式) .marked{ }: 为所有 class="marked" 的元素指定一个样式. . ...
- C#编码问题以及C#往Mysql插数据编码问题
C#将字符转换成utf8编码 GB321编码转换 public static string get_uft8(string unicodeString) { UTF8Encoding utf8 = ...
- nginx新增tcp模板
最近在装nginx时,发现新增了tcp模板,装了一遍,现记录下来过程. 1.下载nginx源码包,并解压 2.下载tcp模板压缩包https://github.com/yaoweibin/nginx_ ...
- jango路由层
简单的路由配置: urls.py from django.contrib import admin from django.urls import path, re_path from book_ap ...
- Python实现对CSV文件的读写功能
我们要处理csv文件,首先要的导入csv模块 import csv #读取csv文件def readCsv(path): #传入变量csv文件的路径 list=[] #定义一个空列表 with ope ...
- 配置Linux客户端使用socks5代理上网
配置Linux客户端使用socks5代理上网 背景 有访问google或者其他海外网站需求的同学可能大都用过或者听过ss,在Windows.Mac.Android.IOS都有现成可用的客户端来协助 ...