k8s基础

一、master 组件:

1 etcd 是集群的主数据库,保存了整个集群的状态。

2 apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制。

3 controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。

4 scheduler 资源调度,按照预定的调度策略将Pod调度到相应的机器上。 5 Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI)

除了核心组件,还有一些推荐的Add-ons:

1、kube-dns负责为整个集群提供DNS服务。

2、Ingress Controller为服务提供外网入口。

3、Heapster提供资源监控。

4、Dashboard提供GUI。

5、Federation提供跨可用区的集群。

6、Fluentd-elasticsearch提供集群日志采集、存储与查询

二、node组件

1、kubelet 负责维护容器的生命周期,负责管理pods和它们上面的容器,images镜像、volumes。同时也负责Volume(CVI)和网络(CNI)的管理。

2、kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡;

三、 k8s 相关概念

1:pod Pod是在K8s集群中运行部署应用或服务的最小单元,它是可以支持多容器的。Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。

2: 副本复制器(RC) 通过监控运行中的Pod来保证集群中运行指定数目的Pod副本。少于指定数目,RC就会启动运行新的Pod副本;多于指定数目,RC就会杀死多余的Pod副本【k8s早期技术概念】来保证集群高可用!

3: 副本集(Replica Set,RS) RS是新一代RC,提供同样的高可用能力,能支持更多种类的匹配模式。副本集对象一般不单独使用,配合deployment参数使用。

4: 部署(Deployment) 部署是一个比RS副本集应用模式更广的API对象,支持动态扩展。可以创建一个新的服务,更新一个新的服务,也可以是滚动升级一个服务。滚动升级一个服务,实际是创建一个新的RS,然后逐渐将新RS中副本数增加到理想状态,将旧RS中的副本数减小到0的复合操作【逐步升级新得副本,剔除旧的副本】。

5: 服务(Service)

1、RC、RS和Deployment只是保证了支撑服务的微服务Pod的数量,但是没有解决如何访问这些服务的问题。一个Pod只是一个运行服务的实例,随时可能在一个节点上停止,在另一个节点以一个新的IP启动一个新的Pod,因此不能以确定的IP和端口号提供服务。如果要稳定地提供服务需要服务发现和负载均衡能力。在K8s集群中,客户端需要访问的服务就是Service对象。每个Service会对应一个集群内部有效的虚拟IP,集群内部通过虚拟IP访问一个服务。

2、在K8s集群中微服务的负载均衡是由Kube-proxy实现的。Kube-proxy是K8s集群内部的负载均衡器。它是一个分布式代理服务器,在K8s的每个节点上都有一个。

四、kubeadmin部署(测试用,生产不建议)

设置解析

vim /etc/hosts
​
192.168.1.183   tianyi-test

关闭防护墙和selinux

systemctl disable firewalld
​
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

设置启动参数

cat < /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
​
sysctl --system

安装docker

1、安装依赖docker依赖于系统的一些必要的工具,可以提前安装。

yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加软件源

yum-config-manager --add-repo

你可能感兴趣的:(Linux,k8s,kubernetes)