没长正的技术专栏 勤动手、多思考

K8s 基本

2018-11-01

阅读:


K8s基本

容器运用比较广泛,微服务、CI。

常见概念理解:容器(软件包)、Docker(容器管理平台)、K8s(容器集群管理、分布式容器管理平台)、Ingress

1. 组件

2021-08-24_K8s基础组件1

2021-08-24_K8s基础组件2 k8s 组件

1.0 k8s网络

1.0.1 k8s网络通讯问题
名称 通讯
容器间通信 即同一个Pod内多个容器间通信,通常使用loopback来实现。
Pod间通信 K8s要求,Pod和Pod之间通信必须使用Pod-IP直接访问另一个Pod-IP,
它们关联在同一个Docker0网桥。
Pod与Service通信 即PodIP去访问ClusterIP,当然,clusterIP实际上是IPVS 或 iptables规则的虚拟IP,
是没有TCP/IP协议栈支持的。但不影响Pod访问它
Service与集群外部
Client的通信
K8s中Pod提供的服务必须能被互联网上的用户所访问到
CNI(容器网络接口)

:K8s中提供的一种通用网络标准规范,因为k8s本身不提供网络解决方案。(kube-router、flannel、Calico、Docker原生的Overlay)

flannel:为Pod配置网络的(如:添加网络,配置网络,激活网络等 守护进程。

1.0.2 Pod
//	K8s Pod的网络创建流程 
/*
    1.每个Pod除了创建时指定的容器外,都有一个kubelet启动时指定的基础容器
    2.kubelet创建基础容器,生成network namespace
    3.kubelet调用网络CNI driver,由它根据配置调用具体的CNI 插件(eg:calico,flannel)
    4.CNI插件给基础容器配置网络
    5.Pod中其他的容器共享使用基础容器的网络	
*/

1.1 K8s 优势

- 快速部署应用
- 快速扩展应用
- 无缝对接新的应用功能
- 节省资源,优化硬件资源的使用

1.2 K8s特点

> Kubernetes 特点:
- 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
- 可扩展: 模块化, 插件化, 可挂载, 可组合
- 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。

1.3 K8s 组件介绍

名称 功能 所属
kubelet kubelet是主要的节点代理,
它会监视已分配给节点的pod
安装Pod所需的volume、
下载Pod所需的Secret
运行docker
定时执行容器健康检查
Master
apiserver 暴露Kubernetes API
任何资源请求/调用都是通过apiserver来的
Master
scheduler 监视新创建没有分配到NodePod
为Pod选择一个Node。
Master
controller-manager 运行管理控制器,它们是
集群中处理常规任务的后台线程
Node、Replication、Endpoint、
Service Account、Token 控制器。
Master
DNS 群集 DNS是一个DNS服务器,
能够为 Kubernetes services提供 DNS记录
Basic
ETCD Kubernetes提供默认的存储系统,
保存所有集群数据(配置中心)
使用时需要为etcd数据提供备份计划
Basic
Dashboard 容器资源监控提供一个UI浏览监控数据 Basic
kube-proxy 通过在主机上维护网络规则
并执行连接转发来实现Kubernetes服务抽象
Basic
Ingress 路由转发 Basic
fluentd是一个守护进程,可提供[cluster-level logging](https://kubernetes.io/docs/concepts/overview/components/#cluster-level-logging).

参考文档

k8s 组件

k8s 中文社区

分布式系统在 Kubernetes 上的进化

docker文档

菜鸟教程-docker


欢迎拍砖,多多交流,转载请注明出处:[没长正的技术专栏](http://blog.meizhangzheng.com) 如涉及侵权问题,请发送邮件到xsj34567@163.com,如情况属实本人将会尽快删除。


上一篇 Docker Jenkins

下一篇 K8s 安装

Comments

Content