本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《python运维脚本》: python运维脚本实践
《shell》:shell学习
《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战
《k8》从问题中去学习k8s
《docker学习》暂未更新
《ceph学习》ceph日常问题解决分享
《日志收集》ELK+各种中间件
《运维日常》运维日常
《linux》运维面试100问
思考一下问题:
31、简述Kubernetes Headless Service?
32、简述Kubernetes外部如何访问集群内的服务?
33、简述Kubernetes ingress?
34、简述Kubernetes镜像的下载策略?
35、简述Kubernetes的负载均衡器?
参考答案:
31、简述Kubernetes Headless Service?
在某些应用场景中,若需要人为指定负载均衡器,不使用Service提供的默认负载均衡的功能,或者应用
程序希望知道属于同组服务的其他实例。Kubernetes提供了Headless Service来实现这种功能,即不为
Service设置ClusterIP(入口IP地址),仅通过Label Selector将后端的Pod列表返回给调用的客户端。
32、简述Kubernetes外部如何访问集群内的服务?
对于Kubernetes,集群外的客户端默认情况,无法通过Pod的IP地址或者Service的虚拟IP地址:虚拟端口
号进行访问。通常可以通过以下方式进行访问Kubernetes集群内的服务:
映射Pod到物理机:将Pod端口号映射到宿主机,即在Pod中采用hostPort方式,以使客户端应用能够通
过物理机访问容器应用。
映射Service到物理机:将Service端口号映射到宿主机,即在Service中采用nodePort方式,以使客户端
应用能够通过物理机访问容器应用。
映射Sercie到LoadBalancer:通过设置LoadBalancer映射到云服务商提供的LoadBalancer地址。这种
用法仅用于在公有云服务提供商的云平台上设置Service的场景。
33、简述Kubernetes ingress?
Kubernetes的Ingress资源对象,用于将不同URL的访问请求转发到后端不同的Service,以实现HTTP层
的业务路由机制。
Kubernetes使用了Ingress策略和Ingress Controller,两者结合并实现了一个完整的Ingress负载均衡
器。使用Ingress进行负载分发时,Ingress Controller基于Ingress规则将客户端请求直接转发到Service
对应的后端Endpoint(Pod)上,从而跳过kube-proxy的转发功能,kube-proxy不再起作用,全过程
为:ingress controller + ingress 规则 ----> services。
同时当Ingress Controller提供的是对外服务,则实际上实现的是边缘路由器的功能。
34、简述Kubernetes镜像的下载策略?
K8s的镜像下载策略有三种:Always、Never、IFNotPresent。
Always:镜像标签为latest时,总是从指定的仓库中获取镜像。
Never:禁止从仓库中下载镜像,也就是说只能使用本地镜像。
IfNotPresent:仅当本地没有对应镜像时,才从目标仓库中下载。默认的镜像下载策略是:当镜像
标签是latest时,默认策略是Always;当镜像标签是自定义时(也就是标签不是latest),那么默认
策略是IfNotPresent。
35、简述Kubernetes的负载均衡器?
负载均衡器是暴露服务的最常见和标准方式之一。
根据工作环境使用两种类型的负载均衡器,即内部负载均衡器或外部负载均衡器。内部负载均衡器自动
平衡负载并使用所需配置分配容器,而外部负载均衡器将流量从外部负载引导至后端容器。