Kubernetes功能及核心概念(附带个Mysql.yaml文件)

Kubernetes功能及核心概念


可能本篇文章文字居多,但也希望能认真阅读,因为Kubernetes的概念相对来说比较重要,以及在大家学习的过程中也会感觉到略微抽象

一,首先什么是Kubernetes?

Kubernetes是一个开源的容器编排工具,用于自动部署,扩展和管理容器。可轻松的管理大规模的管理容器化的工作负载。以下简称就是k8s了(因为k与s之间有8个字符所以简称k8s)。

二,Kubernetes和Docker有什么不一样?

Docker属于容器化平台,提供了简单易用的容器化工具。可以对程序进行构建,打包,容器化。更侧重于容器的构建和运行。

Kubernetes则属于一种编排工具,更侧重于多个容器组成的应用程序的编排和管理,提供了更多的功能(如下)及概念(如下),帮助用户更轻松地管理复杂的容器化工作负载。

三,K8s的主要功能。

  1. **自动化部署:**可以自动化部署容器化的应用,并根据使用需求进行自动扩展和调度。
  2. 自我修复: k8s可以监控应用程序的健康状态,并在出故障时自动重启。就好比某个服务挂了,可以自动修复重启。
  3. **水平扩展:**k8s可根据当前服务器的负载,创建程序的副本数量。从而满足对资源的需求,也可以根据自定义的策略进行调整。
  4. 服务发现和负载均衡: k8s提供了内置的服务发现和负载均衡。可平衡流量的负载。用户可通过定义的服务来暴露程序。应用与路由及副本之间。
  5. 密钥和配置管理: k8s可安全存储敏感信息和应用程序的配置,将敏感信息存储在私密中,并配置在configMaps中,然后在容器中使用他们。这里打个比方比如环境变量或证书。
  6. **存储编排:**k8s支持持久化存储,根据需求自动挂载储存卷用户可通过定义PV(资源对象,好比数据)和PVC(声名pv的资源是某个节点上的)对象进行请求和持久化存储。
  7. 批处理执行: 可进行批量作用和定时任务执行,可根据用户的需求自动调度和管理批量处理任务。通过定义Job和CronJob来实现。

四,K8s核心概念。

  1. **Pod(Pod):**pod是k8s中最小的可部署单元,它可以包含一个或多个容器。这些容器共享网络和命名空间和持久卷,可与本地的主机进行进程间的通信。
  2. **Deployment(部署):**用于定义Pod的副本数量和更新策略。可确保指定数量的Pod开始终止运行,并控制如何进行滚动更新。功能如起名。
  3. **Service(服务):**可以定义一组Pod的访问方式,为Pod提供稳定的网络节点,并通过负载均衡分发流量。
  4. **Namespace(命名空间):**用于划分虚拟集群的机制,允许在同一个k8s集群中创建多个隔离的工作区,通俗说就是用命名空间对资源之间进行隔离,并且创建单独的工作区,跟k,v有的像。
  5. **Volume(存储卷):**是k8s中用于持久化的机制。可以持久化存储挂载到Pod中,并使得数据可以跨容器共享。持久化数据使用。
  6. **ConfigMap 和 Secret(配置映射和密钥):**用于存储信息和敏感数据和对象,可以在Pod中注入环境变量或文件,证书。并应用到程序中使用。
  7. **StatefulSet(有状态副本集):**用于运作有状态的应用程序的控制器。可以确保在集群中创建固定数量的副本,并为每个副本分配稳定的网络和持久化存储。
  8. Job 和 CronJob(作业和定时任务): Job 和 CronJob 是用于执行一次性或定时任务的对象。Job 用于运行一次性任务,而 CronJob 则用于按照指定的时间表运行任务。

Kubernetes指令与参数


指令与参数:(按核心概念划分)
  1. Pod(Pod):

    • 创建一个 Pod:kubectl create pod <pod_name> --image=<image>
      • --restart:设置 Pod 的重启策略。
      • --env:设置环境变量。
      • --limits--requests:设置容器的资源限制和请求。
      • --command--args:指定容器的启动命令和参数。
      • --port:指定容器监听的端口。
      • --labels:为 Pod 添加标签。
      • --annotations:为 Pod 添加注释。
      • --namespace:指定 Pod 所属的命名空间。
      • --stdin--stdout--tty:设置容器的标准输入、输出和伪终端。
    • 获取 Pod 列表:kubectl get pods
    • 查看 Pod 的详细信息:kubectl describe pod <pod_name>
    • 删除一个 Pod:kubectl delete pod <pod_name>

  2. Deployment(部署):

    • 创建一个 Deployment:kubectl create deployment <deployment_name> --image=<image>
      • --replicas:设置 Deployment 的副本数量。
      • --port:指定容器监听的端口。
      • --labels:为 Deployment 添加标签。
      • --namespace:指定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值