K8s基础核心

Kubernetes (K8s) 是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。下面是 Kubernetes 的一些核心概念:

  1. Pod(容器组):Pod 是 Kubernetes 中最小的可调度和管理的单元 ,它可以包含一个或多个相关的容器。这些容器共享网络和存储资源,并在同一主机上运行。Pod 是临时性的,可以根据需要创建、销毁或重新创建。Pod 提供了一种抽象层,使容器可以作为一个逻辑单元来管理。

  2. Replication Controller(复制控制器):Replication Controller 确保在集群中运行指定数量的 Pod 副本。如果 Pod 失败或被删除,Replication Controller 将自动创建新的 Pod 副本以替换它们。Replication Controller 可以认为是Pod的管理器。

  3. Service(服务):Service 定义了一组 Pod 的访问方式。它为 Pod 提供了一个稳定的网络终结点,并通过负载均衡将请求分发到后端的 Pod。Service 可以是永久性的,即使 Pod 的 IP 地址发生变化,Service 仍然可以保持不变。

  4. Namespace(命名空间):Namespace 是 Kubernetes 中用于对集群资源进行虚拟隔离的一种机制。通过将资源划分为不同的命名空间,可以将集群的逻辑上的划分、访问控制和资源配额管理进行隔离和管理。类似Java 包名称一样做隔离使用。

  5. Deployment(部署):Deployment 控制 Pod 和 ReplicaSet 的创建和更新过程。它提供了一个声明式的方式来定义应用程序的部署,可以轻松地进行滚动更新和回滚操作。

  6. Node(节点):Node 是 Kubernetes 集群中的工作节点。它是物理或虚拟机器,用于运行 Pod 和其他 Kubernetes 组件。每个 Node 都具有所需的容器运行时(如 Docker),并通过 Kubernetes 控制平面进行管理。

  7. Cluster(集群):Cluster 是由多个节点组成的 Kubernetes 环境。它包含了用于管理、调度和运行容器化应用程序的主节点(master node)和工作节点(worker node)。

  8. Volume(卷):提供了 Pod 内持久化存储的抽象。Volume 可以挂载到 Pod 中的一个或多个容器,并存储应用程序的数据。

  9. ConfigMap(配置映射):用于存储应用程序的配置数据,如环境变量、命令行参数等。ConfigMap 可以被挂载到 Pod 中的容器,供应用程序读取配置信息。

  10. Secret(密钥):用于存储敏感的数据,如密码、API 密钥等。Secret 以加密的方式保存,并可以被挂载到 Pod 中的容器。

  11. Master 控制平面:Master 控制平面是 Kubernetes 集群的中央管理部分,包含多个组件,如 API Server、Controller Manager、Scheduler 和 etcd 等。它负责接受和处理用户请求、调度和管理 Pod、监控集群状态等。

  12. Worker 节点:Worker 节点是集群中的工作节点,负责运行应用程序的容器。它接收来自 Master 节点的指令,并根据指令启动、停止和管理 Pod。

  13. ReplicaSet:ReplicaSet 是 Kubernetes 中用于定义 Pod 副本数量的对象。它确保指定数量的 Pod 始终在运行,并且在 Pod 失效时能够自动替换它们。

        Kubernetes 的优势在于它提供了一种可靠、强大和灵活的容器编排和管理平台,可以简化应用程序的部署、扩展和管理,提高应用程序的可靠性、可伸缩性和弹性。        

  1. 自动化容器化应用程序的部署和扩展:Kubernetes 提供了一种简化和自动化应用程序部署的机制。它可以根据配置和规则自动创建、启动和停止容器,从而减少了手动操作的工作量。

  2. 弹性和可伸缩性:Kubernetes 允许根据负载情况自动扩展应用程序的副本数量。它可以根据指定的规则自动调整副本数量,从而保证应用程序的高可用性和性能。

  3. 负载均衡和服务发现:Kubernetes 提供了内建的负载均衡功能,可以将流量均匀地分发给后端的容器。它还提供了服务发现机制,使应用程序能够通过服务名称来访问其他容器或服务,而无需了解其具体的网络地址。

  4. 自我修复和健康检查:Kubernetes 可以监控容器的状态,并在发生故障或容器崩溃时自动重新启动或替换它们。它还可以执行健康检查来确保容器的正常运行,并在检测到问题时采取相应的措施。

  5. 跨主机和多区域部署:Kubernetes 具有跨主机和多区域部署的能力。它可以在多个节点上分布和调度容器,从而实现容器的高可用性和容错性。

  6. 操作简化和统一管理:Kubernetes 提供了统一的管理接口和工具,可以简化应用程序的管理和操作。它提供了丰富的命令行工具和可视化界面,使管理员和开发人员能够方便地管理和监控集群中的应用程序。

  7. 社区支持和生态系统:Kubernetes 是一个开源项目,拥有庞大的社区支持和活跃的开发者社区。这意味着可以从社区中获得丰富的资源、文档和解决方案,并且能够与其他工具和技术进行集成,构建更强大的容器化基础设施。

  8. 滚动更新和回滚:Kubernetes 具有强大的应用程序更新和回滚机制。它可以实现滚动式更新,逐步替换旧版本的容器实例,以最小化应用程序的中断时间。如果出现问题,可以快速回滚到先前的稳定版本。

  9. 多云和混合云支持:Kubernetes 提供了对多云和混合云环境的良好支持。它可以在不同的云提供商之间实现应用程序的移植性和可移植性,使应用程序能够在不同的云平台上运行,降低了云供应商锁定的风险。

常用的 Kubernetes (K8s) 基础命令:

  1. kubectl get <资源类型>:获取特定资源类型的列表,例如 kubectl get pods 获取所有 Pod 的列表。

  2. kubectl describe <资源类型> <资源名称>:显示指定资源的详细信息,例如 kubectl describe pod my-pod 显示名为 my-pod 的 Pod 的详细信息。

  3. kubectl create -f <配置文件>:使用配置文件创建资源,例如 kubectl create -f pod.yaml 根据 pod.yaml 文件创建 Pod。

  4. kubectl apply -f <配置文件>:使用配置文件创建或更新资源,例如 kubectl apply -f deployment.yaml 根据 deployment.yaml 文件创建或更新 Deployment。

  5. kubectl delete <资源类型> <资源名称>:删除指定的资源,例如 kubectl delete pod my-pod 删除名为 my-pod 的 Pod。

  6. kubectl edit <资源类型> <资源名称>:使用默认编辑器编辑指定的资源,例如 kubectl edit pod my-pod 编辑名为 my-pod 的 Pod。

  7. kubectl exec -it <Pod名称> -- <命令>:在运行的 Pod 中执行命令,例如 kubectl exec -it my-pod -- sh 在名为 my-pod 的 Pod 中打开一个交互式终端。

  8. kubectl logs <Pod名称>:查看 Pod 的日志,例如 kubectl logs my-pod 查看名为 my-pod 的 Pod 的日志。

  9. kubectl port-forward <Pod名称> <本地端口>:<远程端口>:将本地端口和 Pod 的端口进行端口转发,例如 kubectl port-forward my-pod 8080:80 将名为 my-pod 的 Pod 的 80 端口转发到本地的 8080 端口。

  10. kubectl scale <资源类型> <资源名称> --replicas=<副本数量>:调整资源的副本数量,例如 kubectl scale deployment my-deployment --replicas=3 将名为 my-deployment 的 Deployment 的副本数量调整为 3。

参考文档:

Kubernetes(k8s)中文文档 kubernetes设计理念_Kubernetes中文社区

https://kubernetes.io/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值