Kubernetes要点记载

源码 2024-10-2 11:19:08 94 0 来自 中国
一、有了Docker,为什么还用Kubernetes

为进步业务并发和高可用,会使用多台服务器,因此碰面向这些标题:

  • 多容器跨主机提供服务
  • 多容器分布式节点摆设
  • 多容器怎么升级
  • 怎么高效管理这些容器
容器编排体系:

  • Kubernetes:一家独大
  • Swarm:Docker官方出品
  • Mesos Marathon
五层:

  • IaaS根本办法层:提供根本运行环境,比方假造机、物理机、网络、存储、数据库、公有云等
  • 容器引擎层:Docker
  • 容器编排层:Kubernetes
  • PaaS服务层:为开辟、测试和运维职员提供同一的平台服务
  • 访问和工具层:资助用户更高效的完成使命,包罗Web控制台、RESTful API、CI/CD、监控管理、日记管理等
二、Kubernetes是什么

Kubernetes是Google在2014年开源的一个容器集群管理体系,Kubernetes简称K8S。
Kubernetes用于容器化应用程序的摆设、扩展和管理,目的是让摆设容器化应用简朴高效。
三、Kubernetes集群架构与组件

3.1 Master组件

3.1.1 kube-apiserver

Kubernetes API,集群的同一入口,各组件调和者,以RESTful API提供接口服务,全部对象资源的增编削查和监听利用都交给APIServer处理后再提交给Etcd存储。
3.1.2 kube-controller-manager

处理集群中通例后台使命,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的,比方Deployment、Service
3.1.3 kube-scheduler

根据调理算法为新创建的Pod选择一个Node节点,可以恣意摆设,可以摆设在同一个节点上,也可以摆设在差别的节点上。
3.1.4 etcd

分布式键值存储体系,用于生存集群状态数据,好比Pod、Service等对象信息。
3.2 Node组件

3.2.1 kubelet

kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,好比创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作,kubelet将每个Pod转换成一组容器。
3.2.2 kube-proxy

在Node节点上实现Pod网络署理,维护网络规则和四层负载均衡工作。
3.2.3 第三方容器引擎

比方Docker、containerd、podman,容器引擎,运行容器。
四、生产环境摆设K8S的2种方式

4.1 kubeadm

Kubeadm是一个工具,提供kubeadm init和kubeadm join,用于快速摆设Kubernetes集群。摆设所在https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm
4.2 二进制

保举,从官方下载发行的二进制包,手动摆设每个组件,构成Kubernetes集群。下载所在https://github.com/kubernetes/kubernetes/releases
五、服务器硬件设置保举

六、使用kubeadm快速摆设一个K8S集群

A、安装Docker
B、创建一个Master节点
kubeadm init1、[preflight]环境查抄和拉取镜像kubeadm config images pull
2、[certs]天生K8S证书和etcd证书 /etc/kubernetes/pki
3、[kubeconfig]天生kubeconfig文件
4、[kubelet-start] 天生kubelet设置文件
5、[control-plane]摆设管理节点组件,用镜像启动容器kubectl get pods -n kube=system
6、[etcd]摆设etcd数据库,用镜像启动容器
7、[upload-config] [kubelet] [upload-certs] 上传设置文件到K8S中
8、[mark-control-plane] 给管理节点添加一个标签 node-role.kubernetes.io/master='',再添加一个污点[node-role.kubernetes.io/master:NoSchedule]
9、[bootstrap-token] 自动为Kubelet颁发证书
10、[addons]摆设插件,CoreDNS、kube-proxy
C、将一个node节点加入到当前集群中
kubeadm join <Master节点的IP和端口>D、摆设容器网络(CNI)
kubectl apply -f calico.yamlE、摆设Web UI(Dashboard)
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:53, Processed in 0.161517 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表