首页 > 其他分享 >k8s面试总结

k8s面试总结

时间:2024-09-14 15:47:55浏览次数:9  
标签:总结 容器 kubernetes nginx 面试 pod k8s 节点

k8s是一个Google开源的的容器编排工具。

k8s能够实现弹性伸缩、负载均衡、版本回退等功能。

一个kubernetes集群主要是由控制节点(master)工作节点(node)构成,每个节点上都会安装不同的组件。

image

下面,以部署一个nginx服务来说明kubernetes系统各个组件调用关系:

  1. 首先要明确,一旦kubernetes环境启动之后,master和node都会将自身的信息存储到etcd数据库中

  2. 一个nginx服务的安装请求会首先被发送到master节点的apiServer组件

  3. apiServer组件会调用scheduler组件来决定到底应该把这个服务安装到哪个node节点上

    在此时,它会从etcd中读取各个node节点的信息,然后按照一定的算法进行选择,并将结果告知apiServer

  4. apiServer调用controller-manager去调度Node节点安装nginx服务

  5. kubelet接收到指令后,会通知docker,然后由docker来启动一个nginx的pod

    pod是kubernetes的最小操作单元,容器必须跑在pod中至此,

  6. 一个nginx服务就运行了,如果需要访问nginx,就需要通过kube-proxy来对pod产生访问的代理

这样,外界用户就可以访问集群中的nginx服务了

k8s中的概念:

Master:集群控制节点,每个集群需要至少一个master节点负责集群的管控

Node:工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行

Pod:kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器

Controller:控制器,通过它来实现对pod的管理,比如启动pod、停止pod、伸缩pod的数量等等

Service:pod对外服务的统一入口,下面可以维护这同一类的多个pod

Label:标签,用于对pod进行分类,同一类pod会拥有相同的标签

NameSpace:命名空间,用来隔离pod的运行环境

k8s的两种部署方式:一种是二进制包的部署,一种是使用kubeadm的方式进行部署。

kubectl是kubernetes集群的命令行工具,通过它能够对集群本身进行管理

命名空间下面有pod,pod下面有容器。

Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离

Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。

kubectl describe pod nginx -n dev // 我们可以使用者个命令来查看pod构建过程的event事件。看看里面是哪个步骤出现了问题。

Label它的作用就是在资源上添加标识,用来对它们进行区分和选择。可以给Node、Pod、Service等等进行打标签。

Pod控制器用于pod的管理,Pod控制器的种类有很多,比较常见的是Deployment。

Service可以看作是一组同类Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡

注意:创建service命令使用的是:kubectl expose .....

如果需要创建外部也可以访问的Service,需要修改type为NodePort
kubectl expose deploy nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80 -n dev

pod的调度:就是pod在哪个node节点上进行创建。我们可以通过设置亲和性和污点和容忍等手段来进行控制。

为了持久化保存容器的数据,kubernetes引入了Volume(数据卷)的概念。比方说我们可以接入外部的网络文件存储系统(NFS)。

K8S认证、授权、准入控制。

k8s dashboard,监控管理页面工具。

标签:总结,容器,kubernetes,nginx,面试,pod,k8s,节点
From: https://www.cnblogs.com/dongyaotou/p/18414186

相关文章

  • Vue2/Vue3中编程式路由导航实践总结
    【1】Vue2编程式路由导航①router.push除了使用<router-link>创建a标签来定义导航链接,我们还可以借助router的实例方法,通过编写代码来实现。router.push(location,onComplete?,onAbort?)注意:在Vue实例内部,你可以通过$router访问路由实例。因此你可以调用this.$router......
  • SSM华天计算机面试刷题系统-计算机毕业设计源码22543
    摘 要华天计算机面试刷题系统是一款基于SSM(Spring、SpringMVC、MyBatis)框架、利用Java编程语言和MySQL数据库,开发的在线学习和测试平台。系统利用SSM框架及前端开发技术,实现了模块化开发和管理,前后端交互以及数据库操作等功能。系统具备良好的扩展性、稳定性和可维护性。......
  • 2024.09.14模拟赛总结
    $T1$似乎是签到题,但是没开$unsigned$$long$$long$挂成$88$分了。直接模拟即可,从后往前考虑,将每个数放到离其最近的位置,不过不会证...#include<bits/stdc++.h>usingnamespacestd;typedefunsignedlonglongLL;constintN=1000010;structwasd......
  • K8s利用etcd定时备份集群结合钉钉机器人通知
    如何通过脚本的方式进行K8s集群的备份查看K8s中master节点中etcd集群的状态kubectlgetpods-nkube-system|grepetcd由于使用的etcd服务是K8s搭建时自身携带的,并不是独立搭建的etcd集群信息。使用K8s搭建集群时,etcd是Kubernetes集成的一个重要组件因此需要查看此K8s中etc......
  • k8s(kubernetes)的PV / PVC / StorageClass(理论+实践)
    NFS总是不支持PVC扩容先来个一句话总结:PV、PVC是K8S用来做存储管理的资源对象,它们让存储资源的使用变得可控,从而保障系统的稳定性、可靠性。StorageClass则是为了减少人工的工作量而去自动化创建PV的组件。所有Pod使用存储只有一个原则:先规划→后申请→再使用。一、理论......
  • 【Kubernetes】常见面试题汇总(八)
    目录 22.简述Kubernetes中Pod的健康检查方式?23.简述KubernetesPod的LivenessProbe探针的常见方式?24.简述KubernetesPod的常见调度方式?22.简述Kubernetes中Pod的健康检查方式?对Pod的健康检查可以通过两类探针来检查:LivenessProbe和ReadinessProbe。......
  • 【Kubernetes】常见面试题汇总(十四)
    目录48.简述KubernetesPodsecurityPolicy机制能实现哪些安全策略?49.简述Kubernetes网络模型?50.简述KubernetesCNl模型?48.简述KubernetesPodsecurityPolicy机制能实现哪些安全策略?在PodSecurityPolicy对象中可以设置不同字段来控制Pod运行时的各种安全策......
  • 分布式面试题
    分布式锁和分布式事务的区别分布式锁是在集群环境下,用来控制不同机器对共享资源的访问。例如:秒杀场景中的防止超卖问题。分布式事务是在集群环境下,用来保证全局事务的一致性,保证多个数据库的数据整体上能从一个一致性状态转到另一个一致性状态。分布式锁的实现方式有几种1.基......
  • 【Kubernetes】常见面试题汇总(十三)
    目录44.简述KubernetesRBAC及其特点(优势)?45.简述KubernetesSecret作用?46.简述KubernetesSecret有哪些使用方式?47.简述KubernetesPodSecurityPolicy机制?44.简述KubernetesRBAC及其特点(优势)?-RBAC是基于角色的访问控制,是一种基于个人用户的角色来管理对计......
  • 【Kubernetes】常见面试题汇总(十二)
    目录42.简述Kubernetes如何保证集群的安全性?43.简述Kubernetes准入机制?42.简述Kubernetes如何保证集群的安全性?Kubernetes通过一系列机制来实现集群的安全控制,主要有如下不同的维度:(1)基础设施方面:保证容器与其所在宿主机的隔离。(2)权限方面:①最小权限原则:合理......