K8s微服务从0到1原理入门及环境搭建
创始人
2025-05-30 01:59:27
0

Kubernetes介绍

Kubernetes是一种流行的开源容器编排和管理系统,它的目标是简化部署、扩展和管理容器化应用程序。Kubernetes最初由Google开发并于2014年发布为开源软件,现在由Cloud Native Computing Foundation (CNCF) 维护。
Kubernetes可以帮助您在集群中部署、管理和运行容器化应用程序,它提供了许多特性,例如自动化应用部署、自动化扩展、负载均衡、存储编排、自动化回滚、自动化重启、自我修复和自我管理等功能。Kubernetes还提供了一个强大的API,允许开发人员和系统管理员通过命令行工具、Web界面或API访问和操作集群。

Kubernetes和Docker Compose 对比

Kubernetes和Docker Compose都是用于容器编排的工具,但它们的设计目标和使用方式有所不同。

  1. 设计目标:Kubernetes旨在管理容器化应用程序的生命周期,包括自动化部署、扩展、负载均衡、存储编排、自我修复和自我管理等。而Docker Compose则更专注于本地开发和测试环境,提供了一种简单的方式来定义和运行多个Docker容器。
  2. 扩展性:Kubernetes是设计用于大规模集群的,可以轻松扩展以管理数千个容器。而Docker Compose更适合小型项目和单机环境,难以扩展到多台机器。
  3. 功能:Kubernetes提供了更多的特性和API,例如自动化部署、自动化扩展、负载均衡、存储编排、自动化回滚、自我修复和自我管理等。而Docker Compose只提供了基本的容器编排功能,如定义多个容器、指定容器之间的依赖关系等。

综上所述,如果您需要管理复杂的生产环境,并需要自动化部署、扩展、负载均衡等高级功能,那么Kubernetes是更好的选择。而如果您只是需要在本地开发和测试环境中运行多个Docker容器,并且想要一个易于学习和使用的工具,那么Docker Compose是更好的选择。

云计算架构 IAAS PAAS SAAS

云计算架构是指云计算服务提供商提供的服务类型和层次结构,通常分为三个层次:IaaS、PaaS和SaaS。

  1. IaaS(基础设施即服务):IaaS提供商提供了基础设施,例如计算资源、存储、网络和安全性等,让用户可以通过虚拟化技术创建和管理自己的云计算环境。用户需要自行安装和配置操作系统和应用程序,以及管理和维护整个基础架构。例如,阿里云服务器。
  2. PaaS(平台即服务):PaaS提供商提供了一种在其平台上构建和运行应用程序的服务。它们通常提供了一个开发和部署应用程序的环境,包括应用程序框架、数据库、编程语言和开发工具等。用户只需要关注应用程序的开发和部署,而不需要关注基础设施的管理。例如,低代码开发平台。
  3. SaaS(软件即服务):SaaS提供商提供了完整的应用程序服务,包括软件和数据存储,用户只需要使用这些服务而不必关注底层的基础设施和平台。通常,这些应用程序是通过互联网提供的,用户只需要使用一个Web浏览器或移动应用程序就可以访问它们。例如,QQ邮箱。

综上所述,IaaS提供了基础设施、PaaS提供了应用程序平台,SaaS则提供了完整的应用程序服务。以制作饺子为例,laaS相当于自己购买和准备原材料进行制作饺子,PaaS相当于购买半成本,自己煮了可以吃,Saas相当于饭店提供的饺子,直接拿来就可以吃。

环境搭建

环境搭建有两种方式

  1. minikube可以在单个计算机上启动一个虚拟机,适合本地学习
  2. 使用kubeadm搭建,kubeadm适合在企业搭建环境时候使用

Minikube是一款基于虚拟机技术的工具,可以帮助用户在本地快速搭建一个轻量级的Kubernetes集群。它可以在单个计算机上启动一个虚拟机,并在该虚拟机中运行一个简化版的Kubernetes集群,用户可以使用这个集群来测试和开发Kubernetes应用程序,而无需配置复杂的环境。
Minikube在本地计算机上安装和运行非常方便,支持多种操作系统,包括Windows、macOS和Linux。它还提供了一系列命令行工具,可以轻松管理Kubernetes集群的生命周期,包括启动、停止、删除、更新和升级等操作。
通过Minikube,用户可以在本地快速构建和测试Kubernetes应用程序,而无需投入大量的时间和资源来配置和管理复杂的生产环境。另外,由于Minikube可以在单个计算机上运行一个简化版的Kubernetes集群,因此可以大大降低开发和测试的成本,提高生产效率。
总之,Minikube是一个非常有用的工具,可以帮助用户快速搭建和测试Kubernetes应用程序。它对于初学者和小型团队来说尤为有用,可以帮助他们更快地上手Kubernetes,提高开发和测试效率。

以下为环境搭建的步骤

  1. 安装 minikube
    curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.23.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
  2. 启动minikube
    minikube start --registry-mirror=https://registry.docker-cn.com --vm-driver=none
  3. 安装kubectl命令行工具
    • curl -LO https://dl.k8s.io/v1.19.2/kubernetes-client-linux-amd64.tar.gz
    • tar -xvf kubernetes-client-linux-amd64.tar.gz
    • sudo install kubernetes/client/bin/kubectl /usr/local/bin/kubectl

Kubernetes的架构

Kubernetes是一个高度可扩展的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。其架构主要由Master节点和Worker节点两部分组成。
Master节点负责集群的管理和控制,包括以下组件:

  1. etcd:Kubernetes集群的分布式存储,用于存储Kubernetes集群的配置信息、状态信息等。
  2. kube-api-server:Kubernetes API服务器,提供REST API接口,用于与Kubernetes集群进行交互。
  3. kube-controller-manager:Kubernetes控制器管理器,用于监控和控制Kubernetes集群的状态和控制器,如Replication Controller、Deployment Controller等。
  4. kube-scheduler:Kubernetes调度器,用于为容器选择合适的Worker节点运行。

Worker节点负责运行容器,包括以下组件:

  1. kubelet:Kubernetes节点代理,运行在每个Worker节点上,负责管理节点上的容器。
  2. kube-proxy:Kubernetes网络代理,运行在每个Worker节点上,负责负载均衡、服务发现等网络相关的任务。
  3. Pod:Kubernetes最小的调度单位,包含一个或多个容器,并共享网络和存储资源。

Kubernetes架构中的各组件之间通过API接口进行通信和交互,实现了高度自动化的容器编排和部署,提高了应用程序的可靠性和可伸缩性。

在这里插入图片描述

Kubernetes核心概念

Kubernetes提供了多种资源对象来管理容器化应用程序,以下是其中几个比较常用的资源对象:

  1. 命名空间(Namespace):命名空间提供了Kubernetes集群内的虚拟集群概念,可以将不同的资源对象划分到不同的命名空间中进行隔离。使用命名空间可以将不同的应用程序、不同的环境(如开发、测试、生产等)隔离开来,避免命名冲突和资源争用。
  2. 容器组(Pod):容器组是Kubernetes最小的调度单元,是一个或多个容器的组合,共享网络和存储资源。容器组中的所有容器都运行在同一个Worker节点上,共享同一个网络命名空间和存储卷。通常情况下,容器组中只运行一个主容器和若干个辅助容器。
  3. 部署(Deployment):部署是管理容器组的对象,用于实现容器组的自动化部署、扩容、滚动更新等功能。部署对象中定义了容器组的模板、副本数、滚动更新策略等信息。
  4. 服务(Service):服务是暴露容器组的网络服务的对象,提供了稳定的DNS名称和IP地址,以及负载均衡、服务发现等功能。服务对象通过选择器(Selector)将一组容器组作为服务的后端,并为这些容器组提供一个统一的入口。
  5. 标签(Label):标签是一种用于标识和选择资源对象的机制,可以通过标签将多个资源对象进行分类和组合。例如,可以使用标签来标识不同环境的资源对象(如dev、test、prod等),或者按照不同的业务功能来划分资源对象。
  6. 复制控制器(Replication Controller):复制控制器是管理容器组副本数的对象,用于保证容器组的副本数始终保持在预期值之内。复制控制器会根据副本数的变化自动调整容器组的运行状态。
  7. 存储卷(Volume):存储卷是用于存储容器数据的对象,提供了持久化存储的功能。存储卷可以将宿主机的文件或目录挂载到容器中,也可以使用云存储等外部存储服务进行存储。

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...