网站建设与管理实务,电子商务网站建设教学计划,江苏建设人才是官方网站,芜湖手机网站制作k8s的基础概念
k8s本质是一个容器编排系统#xff0c;可以管理容器的生命周期#xff0c;应用部署#xff0c;更新#xff0c;维护#xff0c;应用提供服务#xff0c;扩容缩容应用#xff0c;故障自愈。
k8s与docker的关系
docker:是一种轻量级的虚拟化技术。运维层…k8s的基础概念
k8s本质是一个容器编排系统可以管理容器的生命周期应用部署更新维护应用提供服务扩容缩容应用故障自愈。
k8s与docker的关系
docker:是一种轻量级的虚拟化技术。运维层面主要用途是隔离各个应用部署时在系统上的冲突。一般使用dockerfile来自定义容器创建。
k8s是容器管理工具。它可以实现容器集群的自动化部署自动化扩容缩容等功能
K8s集群工作模式
k8s集群将机器划分为一个master结点和一群工作结点node
在mster结点机器上运行这一组进程 kube-apiserver, kube-controller-manager 和 kube-scheduler , 这些进程管理这集群资源的调度 弹性伸缩 Pod调度 安全控制系统监控 等功能
简述k8s中的 minikube Kubectl kubelet?
Minikube 是一个本地运行单节点的k8s集群工具
Kubectl 是一个命令行工具检查集群资源创建删除和更新组件查看应用程序
Kubelet是一个代理服务在每个结点上运行并使从服务器与主服务器通信
工作节点kubelet的功能作用是什么
1. 节点管理
kubelet启动时会向api-server进行注册然后定义的向api-server汇报本节点的状态资源使用情况节点是否失联等相关信息master知道整个集群所有节点的资源情况。
2. pod管理
kubelet负责维护node节点上pod的生命周期(创建更新删除)
3. 容器健康检查
pod中包含: 启动探针存活探针就绪探针。k8s会定期使用探针来检测容器是否存活是否就绪。
4. metrics Server资源监控
node节点上metrics Server 用于监控Pod 的内存CPU网络等资源使用情况。
pod是什么
k8s不会直接处理容器使用多个容器共存的理念这组容器就叫做pod
pod是k8s中可以创建管理的最小单元也是基本单元。 pod有什么特点
1. 每个pod就像一个独立的逻辑机器k8s会为每个pod分配一个集群内部唯一的IP地址所以每个pod都有自己的IP地址主机名进程等。
2. 一个pod可以包含一个或多个容器1个pod只能运行在单个节点上不可能1个pod跨节点运行。
3. 每个pod都有一个被称为“根容器”的pause容器也称info容器pause容器对应的镜像属于k8s的一部分
4. 一个pod里的多个容器共享一个pod的IP , 意味这一个pod里面的多个容器所占用的端口不能相同否则端口冲突。
5. pod是k8s中扩容缩容的基本单位k8s的缩容 扩容都是针对pod 而非容器、
pod的重启策略有哪些
Pod重启容器的策略是针对pod内所有容器的重启策略 不是重启pod
Always: 当容器终止退出后总是重启容器默认策略是Always
OnFilure: 当容器异常退出退出状态码非0时才重启容器
Never: 当容器终止退出不管退出状态码是什么从不重启容器。
Pod一直处于pending状态一般有哪些情况怎么排查
1. 一个pod刚创建的时候会处于pending状态正在拉取镜像或正在创建容器的过程中
2, 调度器调度失败Scheduler调度器无法为pod分配一个合适的node结点
3. pvc pv 无法动态创建。
deployment如何扩容或缩容
直接修改pod副本数即可
1. 修改yaml文件replicates字段数值 然后 kubectl apply -f xxx.yaml 来实现更新
2. 使用 kubectl scale --replicates5 deployment/deployment-nginx 命令来扩容缩容
deployment的更新策略有哪些
1. recreate 重建更新, 会杀死集群所有正在运行的pod 然后在重新创建pod
2. rollingUpdate 滚动更新在集群中逐个更新pod
deployment的回滚命令是什么
在升级deployment时kubectl set image 命令加上 --record 参数可以记录具体的升级历史信息
使用 kubectl rollout history deployment/deployment-nginx 命令查看deployment升级历史记录
回滚到某个指定版本 kubectl rollout undo deployment/deployment-nginx --to-revision2 命令来实现
k8s发布(暴露)服务 ,service 的类型有哪些
1. nodeport: 最常用 用来对集群外暴露service 可以通过NodeIP:NodePort方式访问到service后端的endpoint
2. ClusterIP: k8s默认的ServiceType 通过集群内的ClusterIP在内部发布服务
简述ETCD是什么
etcd 是一个分布式高可用一致的key-value存储数据库
1 完全复制 集群中每个节点都可以使用完整的存档
2.高可用性 避免单点故障或网络延迟问题
3.一致性 每次读取都会返回多主机的最新写入。
简述k8s自动扩容机制
使用 HPA(Horizotal Pod Autoscaler) 控制器基于CPU使用率自动进行Pod扩缩容的功能
HPA周期性检查Pod资源性能指标并与HPA资源对象中的扩缩容条件进行对比满足条件对Pod副本数量进行调整。