k8s基础知识

一、架构

master节点:

运行如下deamon服务:

  • apiserver:提供restful api服务
  • scheduler:用于调度pod到node
  • Controller Manager:用于管理各种controller
  • etcd:配置管理
  • 网络:如flannel

node节点:

  • kubelet:从scheduler获取pod配置信息,并在节点创建pod。
  • kube-proxy:转发service的请求
  • 网络:如flannel

二、核心概念

pod:调度的最基本单元,最基本工作单元,调度的时候整体调度。

    pod中所有容器使用同一个网络namespace,共享存储。

    pod里一般只有一个容器,或者里面的容器的关联很紧密,共享资源。

 

kubernetes通过controller来管理pod,controller中定义了pod的部署特性。

controller类型:

1.deployment:最常用的controller,用来部署应用。

2.ReplicaSet:实现pod的多个副本管理。通过部署deployment来自动创建rs,不用直接操作。

3.DaemonSet:用于每个node最多运行一个副本的场景,即deamon。比如ceph,kubernetes自身的服务kube-proxy等。

4.StatefuleSet:用于有状态的应用部署。需要稳定的集群成员应用部署,如etcd

    稳定的唯一的网络标识,用于发现集群内部其他成员。如etcd-0,etcd-1

    稳定的持久化存储。

    启动和关闭时保证有序。

    存储必须用pv/pvc或者外部存储。删除或缩容不会删除相关卷,保证数据安全。需要一个headless service生成唯一表示,开发人员手动创建。手工升级。

    生成的pod根据名称来匹配存储,实现状态持久化。

5.job:用于运行结束就删除的应用。其他controller里的pod通常是持续运行的长期应用。

6.service:service用于为pod提供负载均衡,用于提供ip和端口访问pod。用kube-proxy使用iptables实现。

7.namespace:命名空间,用于controller和pod等资源的隔离。

    default:默认命名空间

    kube-system:放系统资源

 

label:使用label来影响pod的调度,如在某个节点添加label属性有ssd,有该label的pod会调度到指定节点。

job执行失败:失败后会一直重试。容器失败会自动重启。

dns:kubeadm安装后会默认安装kube-dns组件,用于对service做dns映射。是namespace隔离的。

外网访问service:

    ClusterIP:默认service,只有cluster内部可以访问。

    NodePort:映射到cluster静态端口。每个节点都可以,实际实现用的iptables。

    LoadBalancer:云负载均衡

 

健康检查:

    默认健康检查机制:每个容器启动时执行一个进程,判断返回码是不是0,非0则重启容器。

    liveness:自定义判断容器是否健康条件,如文件是否存在。不健康则重启。

    Readiness:自定义判断容器是否健康条件,不健康设置容器不可用,不对service提供服务。

存储资源:

    emptyDir:host上空目录,pod从节点上删除就没了。 hostpath:跟host绑定,host没了就没了。

    外部存储:各种云存储,共享存储。

    pv和pvc:pv,将外部存储重新规划出一块,由管理员创建和维护。pvc,对pv的申请。

        根据回收策略,删除pvc用于回收清理pv,数据清空。也可以保留数据。保留的话再想删除数据就需要删除pv了。

    动态pv:指定容量和存储类型等,动态分配pv。使用storageclass。

 

配置安全管理:

    configmap:

        非敏感信息,明文存储。volume或者环境变量形式使用。

    secret:

        加密保存敏感信息,如用户名密码。

        以volume形式挂载到pod,也可以用环境变量形式使用。

 

Helm:包管理器。

 

网络模型:

    每个pod有各自的ip地址,pod内部容器可以通过localhost通信,pod之间可以直接通信。

    pod可能不断创建和销毁,ip不固定,所以用service来抽象出pod的ip来访问,同时提供高可用和负载均衡。

CNI:容器网络规范。

    插件形式支持很多种网络方案,如Flannel、Calico等

    network-policy:使用label来选择pod,并指定与外界通信方式。Flannel没实现,Calico实现了。

 

k8s集群监控:

    Weave Scope

 

日志管理:

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;Fluentd 负责从 Kubernetes 搜集日志并发送给 Elasticsearch;Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。

    ElasticSearch实现

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
k8s(Kubernetes)基础知识点通俗易懂的解释如下: Kubernetes是一种容器编排平台,用于管理和部署容器化应用程序。它提供了一种简单而强大的方式来自动化应用的调度、扩展和管理,使开发人员和运维人员能够以更高效的方式管理容器化应用。 在学习k8s基础知识之前,建议您具备一定的Linux基础和网络基础知识,并了解一些Docker和k8s相关的概念。例如,您可以先掌握一些关于容器的基本概念,比如什么是容器、容器镜像、容器编排等。此外,您还需要了解一些关于k8s的核心概念,比如Pod、Service、Deployment等。 Kubernetes中的Pod是最小的部署单元,它包含一个或多个容器,并共享存储、网络等资源。Pod可以被创建、启动、停止或调度,以确保容器应用程序的高可用性和弹性。 Service是一种抽象,用于将一组Pod暴露给其他应用程序或用户。它为Pod提供了一个稳定的网络地址,并负责负载均衡请求。 Deployment是一种资源对象,它定义了如何部署应用程序。通过Deployment,您可以指定要运行的Pod数量、容器的镜像、升级策略等。 除此之外,还有许多其他的k8s核心概念和功能,如Namespace、ReplicaSet、StatefulSet等,它们可以帮助您更好地管理和扩展容器化应用程序。 总之,k8s基础知识点涉及到了容器编排、Pod、Service、Deployment等核心概念。通过学习这些知识,您将能够更好地理解和使用Kubernetes平台来管理和部署容器化应用程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Prometheus+Grafana(Kubernetes)企业级监控](https://download.csdn.net/download/weixin_26833205/19732967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [云计算虚拟化:k8s进阶-CRD开发基础](https://blog.csdn.net/dustzhu/article/details/112029190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [视频教程-通俗易懂的消息中间件ActiveMQ教程(含配套资料)-Docker/K8S](https://blog.csdn.net/weixin_33500227/article/details/106513277)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值