K8S常见问题总结(持续更新)

本文详细介绍了Kubernetes中删除Pod的流程,包括gracefultermination过程,以及Kubernetes的组件构成,如工作节点(包含kubelet、kube-proxy等)、控制平面和它们之间的关系。此外,还讨论了K8s与Docker的关系,以及kubeadm、kubectl和kubelet的角色。
摘要由CSDN通过智能技术生成

1.k8s删除pod流程

删除一个正在跑的pod进程节点,肯定不能直接kill, 需要gracfully teminate优雅停机。

当请求删除pod时,集群会记录并且跟踪优雅停机阶段直到pod可以被允许。Kubelet apiserver 接受到用户的删除指令,默认有30秒时间优雅停机。

此时 在这个timeout期限内,kubelet 会发送TERM(别名 sigterm,杀死进程)信号到容器主线程尝试去停止该容器。container runtime( 容器生命周期管理软件)负责异步地处理这些请求。并不能保证处理顺序,如果有STOPSINGAL定义了在镜像中,k8s就会发送STOPSINGAL而不是TERM.

一旦优雅停机时间结束,那么会直接发送kill signal 给到所有残留的进程,并且从api server删掉该pod.

2.k8s有哪些组件

k8s部署后,你就拥有了一个集群cluster.

一个k8s集群是由一系列实体运作的机器worker machine组成,也叫节点node。这些node就是用来跑容器化的应用的。一个集群至少有一个woker node。而除开这些工作机器,我们常常单拿出一个节点专门负责管理,也就是control plane,有时也被叫做master node.

worker nodes

主要承载了pods的运行。而pods上一般都会运行应用,所以woker nodes节点承担了应用负载application workload。

worker node的组成:

        - kubelet :节点agent,节点的主要组件

        - kube-proxy

        - Container runtime

        - Addons

        - DNS

control plane

控制平面, 容器编排层(k8s的专项-容器级别)。该平面暴露了api,接口,从而可以部署,定义,管理容器的生命周期。control plane的职责有包括集群的调度策略,检测并且对各种集群事件做出反应。 一般来说control plane可以在任何机器上跑,但是简单易用的实践就是通过脚本部署所有的control plane组件在同一台机器上(所以也会被称之为master node),然后在这台之外的机器上部署工作节点worker nodes。

control plane的组成:

       - kube-apiserver:系统对外接口,提供了一套restful api供客户端使用,任何资源请求或者调用都通过该组件的接口进行,kubectl和kubernetes dashboard就是通过这个实现的集群管理.是做为control plane外部请求的终端(front end)。该组成可以不断地横向拓展(靠部署更多实例),期间可以做到流量均分到这些实例上。

       - kube-scheduler

       - etcd: 稳定,高可用的k-v(key-value)存储组件,作为k8s所有集群信息的后端存储。生产实际使用该组件作为集群信息存储还是建议备份。

       - kube-controller-manager

       - cloud-controller-manager

3.k8s和docker的关系

docker就是镜像,包含运行所需的环境。用来构建运行容器

k8s则是部署pod,1个pod里面有多个容器。一般一个微服务就是在一个pod里面跑的,可能会注入一个sidecar容器作为辅助。

4.k8s如何实现集群管理的

5.kubeadm,kubernetes,kubelet,kubectl各自代表什么

kubeadm 快速创建k8s集群的最佳实践工具,可用kubeadm init,kubeadm join 快速构建集群。

kubernetes 简称k8s,谷歌开源的生产级别容器编排组件(production-grade container orchestration)

kubelet 在每个节点上跑的节点agent(自动化处理,可自闭环的系统)。可以通过:1)主机名 2)覆盖主机名的flag3)cloud provider的特殊逻辑 

kubectl 命令行工具,可以通过命令行指令管理k8s集群

6.常见的kubectel指令作用

拓展

StatefulSet 用来管理有状态应用的API对象

Deployment 给pod和replicaSet提供声明式的更新能力

StatefulSet会提供pod粘性id(稳定的,唯一标识),永久不变;持久存储。

### 回答1: 作为 Kubernetesk8s)面试官,以下是可能会问到的一些问题: 1. 你能简要解释一下 Kubernetes 吗?它是用来做什么的? 2. Kubernetes 的核心组件是什么?请详细描述每个组件的作用。 3. 如何创建 Kubernetes Pod?Pod 又是什么? 4. 如何定义 Kubernetes Deployment?Deployment 又是什么? 5. 什么是 Kubernetes Service?它的作用是什么? 6. 如何调整 Kubernetes Pod 的 CPU 和内存资源限制? 7. Kubernetes 中的 ConfigMap 和 Secret 有什么作用? 8. Kubernetes 中的控制器有哪些?它们的区别是什么? 9. 如何进行 Kubernetes 集群的扩容和缩容? 10. 如何进行 Kubernetes 的升级和回滚操作? 这些问题涵盖了 Kubernetes 的基本概念、组件和实践,面试官可能会进一步深入某些主题并询问相关问题,以确保应聘者对 Kubernetes 有足够的了解。 ### 回答2: 在K8s面试中,面试官通常会提问关于以下几个方面的问题: 1. K8s基础知识:面试官可能会问关于K8s的基本概念、组件和架构等方面的问题,例如K8s的工作原理、Master和Node节点的作用及其之间的通信方式等。 2. K8s资源管理:面试官可能会询问关于K8s资源管理的问题,包括如何创建和管理Pod、Deployment、Service和Ingress等资源对象,如何伸缩应用程序以及如何进行故障排除等。 3. K8s网络:面试官可能会提问关于K8s网络的问题,例如如何实现Pod间的通信和跨节点访问,如何配置网络策略和网络插件,并解释主流网络插件(如Flannel、Calico)的工作原理等。 4. K8s存储:面试官可能会问关于K8s存储的问题,包括如何使用持久化卷(Persistent Volume)和持久化卷声明(Persistent Volume Claim)来实现数据持久化,以及如何使用存储类(Storage Class)来动态分配存储资源等。 5. K8s安全性:面试官可能会询问关于K8s安全性的问题,包括如何配置K8s的认证和授权机制,如何使用角色和角色绑定来控制访问权限,以及如何使用Secret对象来安全管理敏感信息等。 6. K8s调度和自动扩缩容:面试官可能会提问关于K8s调度和自动扩缩容的问题,包括如何使用标签和选择器进行调度、如何设置资源限制和请求、如何使用HPA(Horizontal Pod Autoscaler)和VPA(Vertical Pod Autoscaler)等。 除了上述方面的问题,面试官还可能会根据具体的职位要求提问其他相关问题,例如K8s集群监控、CI/CD流水线和K8s与云原生应用开发等。因此,在准备K8s面试时,还应该对这些方面进行充分的学习和准备。 ### 回答3: k8s面试官通常会提问涉及以下主题的问题: 1. Kubernetes基础知识:面试官会询问关于Kubernetes的基本概念、主要组件和工作原理的问题,如Pod、Deployment、Service等。 2. 容器技术:由于Kubernetes是一个容器编排平台,面试官可能会问关于容器技术的问题,如Docker镜像、容器的生命周期管理、容器网络等。 3. 集群管理和调度:面试官可能会问如何管理和扩展Kubernetes集群,如何进行调度和负载均衡,如何监控、日志记录和故障处理等。 4. 安全性和访问控制:面试官可能会询问如何保护Kubernetes集群的安全性以及如何配置用户访问权限、网络策略和安全策略。 5. 自动化和持续集成/持续交付(CI/CD):面试官可能会问如何使用Kubernetes进行自动化部署、持续集成和持续交付,以及如何实现滚动部署和回滚等。 6. 监控和调试:面试官可能会问如何监控Kubernetes集群和应用程序的性能,如何分析日志和故障排除等。 7. DevOps实践和最佳实践:面试官可能会问DevOps相关的问题,如何实施基础设施即代码(Infrastructure as Code)、持续集成和持续交付、自动化测试和部署等。 8. Kubernetes生态系统:面试官可能会询问与Kubernetes相关的其它工具和技术,如Helm、Prometheus、Istio等,以及如何与其他云原生技术栈进行集成。 在准备面试时,应当深入了解这些主题,并准备一些常见问题的答案,以展示自己对Kubernetes的理解和实践经验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值