kubernetes入门及原理

一.入门

docker 配置文件 /etc/sysconfig/docker

k8s配置文件/etc/kubernetes/apiserver

1.master

kubernetes API Server--kube-apiserver:http rest家口的关键服务进程,所以资源增删改查入口,也是集群控制入口

kubernetes controller manager:所有资源对象的自动化控制中心

kubernetes scheduler:负责资源调度

etcd server 进程,所有的资源对象全部保存在etcd中

2.node

kubelet:负责pod对应的容器的创建,起停等任务,同时与master节点密切协作,实现管理集群

kube-proxy:实现k8s service的通信与负载均衡机制等重要组件

docker engine:负责本机等容器创建和管理工作

3.deployment:pod的编排

4.service:

node ip:node节点的ip地址

pod ip:pod的ip地址,docker engine根据docker0网桥的ip地址段进行分配的

clister ip:service 的ip地址

 

二.集群安全设置

kubernetes各个组件与master之间可以通过apiserver的非安全端口:http://apiserver:8080进行访问,如果api需要对外提供服务,或者集群中的某些容器也需要访问api以获取集群信息,则更安全的做法是启用https安全机制

1.ca签名:为kube-aposerver生成一个数字证书,并用ca证书进行签名;为kube-apiserver进程配置证书相关的启动参数;为每个访问kubernetes api server的客户端进程生成自己的数字证书,也都用证书进行签名,在相关程序的启动参数里增加ca证书,自己的证书等相关参数

2.在k8s中以pod为单元而不是docker,在创建pod,可以启动一个名为google_containers/pause的镜像来实现pod的概念,下载下来后推送到私有hub上,再在每台node的kubelet服务的启动参数上加上--pod_infra_container_image参数。指定为私有私有的docker registry中的pause(/etc/kubernetes/kubelet KUBELET_ARGS="**** --pod..."),然后重启kubelet--systemctl restart kubelet

3.service:负载均衡实现请求的分发,

 

 

三.k8s核心原理

api server:提供k8s的各类资源对象的增删改查等http rest接口。成为集群各个功能模块之间数据交互和通信等中心枢纽,进程在master节点的8080上

集群功能模块之间的通信:各个功能模块通过api server将信息存入etcd

controller manager原理分析:controller通过api server提供的接口实时监控整个集群的每个资源对象的当前状态

scheduler:负责接受controller manager穿件的新pod,为其安排node,安置完成后,目标node上的kubelet服务进程接管后继工作,负责pod生命周期的下半生

kubelet:在集群中,每个node节点上都会启动一个kubelet服务进程,用于处理master下发到本节点的任务,管理pod及pod中的容器

kube-proxy:在k8s集群的每个node上都会运行一个kube-proxy进程,这个集成可以看作service的透明代理兼负载均衡器,核心功能是将到某个service的访问请求转发到后端的多个pod实例上,对于每一个service,kube-proxy都会在本地node上简历一个socketserver来负责接受请求,然后均匀的发送到后端某个pod的端口上

你可能感兴趣的:(kubernetes入门及原理)