k8s笔记
k8s特点
轻量级,消耗资源小
开源
弹性伸缩
负载均衡
borg系统组成原理
k8s架构
重要的组件:
APISERVER: 所有服务访问统一入口
ConrtollerManager: 控制器,维持副本期望数目
Scheduler: 负责介绍任务,选择合适的节点进行分配任务
ETCD: 键值对数据库,存储k8s集群所有的重要信息(持久化)
Kubelet: 直接跟容器引擎交互实现容器生命周期管理
Kube-proxy: 负责写入规则至iptables,ipvs 实现服务映射访问
coredns: 可以为集群中的svc创建一个域名ip对应关系解析
dashboard: 给k8s集群提供一个BS结构的访问体系
ingress controller: 官方只能实现4层代理,ingress可以实现七层代理
pedetation: 提供一个可以跨集群中心多k8s统一管理功能
prometheus: 提供k8s集群监控能力
elk: 提供集群日志统一平台
etcd
pod: 分为被控制器管理的pod和自主式的pod
同一个pod中的容器共享存储和网络
pod中只要有一个容器都会启动
网络通讯模式
***
资源清单
yaml文件
以下属性是必须要存在
样例:
容器生命周期
就绪检测: 当容器是就绪状态,就是可以被外界访问,但是业务功能还没有启动
Init容器
在初始化容器中增加init容器,增加脚本,检测当容器能正常访问后才退出初始化过程
探针
容器探针
探测方式
就绪检测样例
存活检测样例
启动退出操作
滚动更新
Service
只要有SVC,当pod增加或者减少,都不需要修改前端的nginx配置
Service的四种类型
- ClusterIp模式:
- NodePort: 在ClusterIp的基础上为Service每台机器绑定一个端口,这样可以通过NodePort来访问该服务
- LoadBalancer: 在NodePort基础上,借助cloud provider创建一个外部负载均衡,请并将请求转发到NodePort,这个均衡器一般可以借助云均衡器
- ExternalName: 把集群外部的服务引入到集群内部来,在集群内部直接使用,没有任何类型代理被创建
Service服务
四种存储类型
1.configMap
2.Secret:需要加密的信息
3.volume
4.Persistent Volume
调度器
节点亲和性
污点和容忍
固定节点
安全性
认证方式:
双向https认证:
Helm