k8s细节

发展历史
Apache mesos 资源连接管理器(分布式资源管理框架) 推特在用 加州大学伯克利分校开发出来的
推特使用kubernetes
docker swarm 201907 阿里云宣布 dokcer swarm 踢出
k8s组件说明
borg 组件说明
kubernetes google 10年容器化基础架构 borg go语言 编译borg 开发出来
特点:
轻量级:消耗的资源小
开源
弹性伸缩:资源不够,从一台变成十台,从主节点用一条命令,把一些节点剥离到集群节点里去,如果访问量不需要这些节点,就可以释放节点
负载均衡:IPVS 张文松
软件工程师 测试工程师 运维工程师 项目经理

pod概念
kubernetes中最小的封装集合,在我们容器化里,每个容器就是个封装集合,一个pod里面会封装多个容器,达到一个子节点的的运行环境,它是kubernetes中管理的最小单位
pod协同
管理pod的控制器(kubernetes灵魂):
#deployment
#DaemonSet
#StatefullSet
#Job, Cronjob
#HPA
#RS ,RC
#在kubernetes里运行一组pod或者一组容器,这容器死亡的话,控制器会发现,并且把这些死亡的容器进行重建,重建它的副本
通讯模式:
网络通讯模式说明
组件通讯模式说明:pod与pod怎么通讯的
#本节点通讯和跨主机通讯

kubernetes安装
系统初始化
kubeadm部署安装
常见问题

资源清单
导演需要剧本,演员就按照剧本内容演出即可,这里的导演和演员,就可以理解为我们kubernetes集群,导演把剧本分发给我们所谓演员k8s子节点,它们通过剧本做自己对应的工作,达到集群化运行,剧本就是我们的资源清单
k8s中资源的概念
什么是资源
名称空间级别的资源
集群级别的资源
资源清单: yam语法格式
通过资源清单编写pod

pod的生命周期 ******
pod phase
容器探针 1 livenessprobe
2 readinessprobe
pod hook
initC

服务发现
我们刚才运行了许多pod,通过服务器运行的,这个pod没办法给一个客户端去访问的,这个客户端可能是一组服务,可能是一个用户,由于我们kubernetes都是一些私有地址,没办法提供客户端访问,那怎么办了,我们通过服务发现,把这个服务暴露给客户端,这样客户端就可以通过我暴露的地址加端口访问我们多个pod,也就说我们能先定义一组pod,就刚说的4盆花,然后定义一个统一的访问入口,如果用户想访问服务的话,那就访问入口即可,并且还是个负载均衡的方案,选择轮训的算法svc原理
service含义
service常见分类 nodePort
clusterIP
ExternalName
service 实现方式 ipvs
iptables
userspace
服务分类
有状态服务 DBMS数据库管理系统
无状态服务 lvs APACHE
#我是项目经理,老板有接私活,把我踢出去了,干完了又把我推回来,不能很好做nginx
,这就是有状态服务
#我是流水线工人,老板有接私活,把我踢出去,干完又把我推回来,还是做相同简单的工作,这就是无状态服务
#apache 无状态服务 ,它的数据可以通过共享服务来完成,对于主件本身,它不需要数据更新,对于docker来说它更实用于无状态服务中,kubernetes的目标的它必须克服这些有状态服务,它有些数据需要保存
数据保存工具
volume hostPath 存储的基本网页数据
emptyDir
configMap 创建configMap 存储数据文件
pod中使用configMap: 1 configMap代替环境变量 2 configMap设置命令行参数 3 通过数据卷使用configMap
secret service Account 存储用户比较重要的数据密码
kubernetes.io/dockerconfigjson
opaque secret 1 secret 挂载到volume 2 secret 导出环境变量中
PV 动态的创建过程

调度器
kubernetes会自动完成,会把这个docker容器调度到对应的节点,能够根据要求把pod定义到想要的节点运行,如果有一天我就想把pod调度到node1节点和node2节点,有一天有个pod1和pod2调度到不同的节点,根据自己的想法把pod调度到不同的节点

集群安全机制
认证 HHTP Token
HHTP Base
HTTP
鉴权 AlwayDeny
AlwayAllow
ABAC
webbook
RBAC 创建一个系统用户管理k8s dev名称空间
to Subjects
Resources
Role and ClusterRole
RBAC
rolebinding and clusteRrolebinding

HELM概念
就是我们linux系统的yum管理器 ,yum安装的是安装包,helm安装的是我们的mougoDB集群,只需要一条命令就可以它部署到k8s中
HElM部署实列:
HELM部署dashboard
metrics-server: HPA 通过cpu当前使用率进行平滑扩展 日志收集 日志展示
资源限制: pod
名称空间
prometheus
EFK
运维
kubernetes高可用构建
kubeadm 源码修改 证书改成很多年,不需要再每年更新,能够构建高可用集群

apiserver: 所有服务访问统一入口
scheduler调度器 负责介绍任务,选择合适节点
把任务交给
apiserver,apiserver把请求写入etcd
RC(replication controller)控制器用来维护副本的数目的或者说是期望值的,我想让容器运行几个副本都是它控制,创建对应的pod或者删除相应的pod

node节点安装需要
kubelet 用来维持docker运行周期
kube proxy 负载的工作默认对象是操作防火墙实现端口映射
docker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值