kubernetes入门介绍,从0到1搭建并使用

news2025/1/23 4:59:49

Kubernetes是一个容器编排系统,用于自动化应用程序部署、扩展和管理。本指南将介绍Kubernetes的基础知识,包括基本概念、安装部署和基础用法。

基础介绍

Kubernetes是Google开发的开源项目,是一个容器编排系统,可以自动化部署、扩展和管理容器化的应用程序。Kubernetes可以跨多个主机管理容器,并提供自动化负载均衡、弹性伸缩、自我修复和滚动更新等功能。

Kubernetes的基本架构由Master和Node组成。Master是集群控制中心,负责管理集群状态、控制应用程序部署和监控应用程序状态。Node是集群的工作节点,运行应用程序容器并将它们与Master通信。
在这里插入图片描述

基本概念

在使用Kubernetes之前,需要了解一些基本概念。以下是一些Kubernetes的核心概念:

  1. Pod:是Kubernetes的最小部署单元,通常包含一个或多个容器。Pod中的容器共享网络和存储,并在同一个主机上运行。
  2. Deployment:是一种Kubernetes资源对象,用于管理Pod的副本数,并支持滚动更新。
  3. Service:是一种Kubernetes资源对象,用于将一组Pod公开为一个网络服务,并提供负载均衡。
  4. Namespace:是一种Kubernetes资源对象,用于隔离不同应用程序或团队的资源。
  5. ConfigMap:是一种Kubernetes资源对象,用于将应用程序配置信息与容器分离。
  6. Secret:是一种Kubernetes资源对象,用于存储敏感信息,如密码和API密钥。

安装部署

Kubernetes可以在各种环境中部署,包括本地环境、云环境和物理机环境。以下是一些常用的部署选项:

  1. Minikube:是一种在本地环境中部署Kubernetes的工具。它可以在单个虚拟机中运行一个Kubernetes集群。
  2. kubeadm:是一种在物理机或虚拟机中快速部署Kubernetes集群的工具。
  3. Kubernetes云服务:包括Google Kubernetes Engine、Amazon Elastic Kubernetes Service和Microsoft Azure Kubernetes Service等。

以本地环境部署kubernetes为例,遵循以下的步骤:

  1. 安装Minikube和kubectl命令行工具:

    可以参考官方文档进行安装,具体安装方式可以根据自己的操作系统选择,这里不再赘述。

  2. 启动Minikube:

    在命令行中输入以下命令启动Minikube:

    minikube start
    

    这将启动一个本地的Kubernetes集群。

  3. 部署应用程序:

    可以使用kubectl命令行工具部署应用程序。以下是一个简单的示例:

    kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
    

    这将创建一个Deployment,并在其中运行一个Pod,Pod中的容器将运行一个Web服务器。

  4. 公开服务:

    在Kubernetes中,服务是一种将Pod公开为网络服务的机制。可以使用kubectl创建一个服务,使应用程序可以通过Kubernetes集群中的其他Pod或外部客户端访问。以下是一个示例:

    kubectl expose deployment hello-minikube --type=NodePort --port=8080
    

    这将创建一个服务,并将其公开为NodePort类型,使得可以通过Kubernetes集群中任何一个节点的IP地址和NodePort访问到服务。

  5. 访问应用程序:

    可以使用kubectl命令行工具获取Minikube节点的IP地址和NodePort,然后在Web浏览器中访问该IP地址和NodePort,以访问应用程序。

    minikube service hello-minikube --url
    

    这将返回服务的URL,可以将其复制到Web浏览器中进行访问。

基础用法

使用Kubernetes,可以通过Kubernetes API和kubectl命令行工具进行操作。以下是一些基本用法:

  1. 创建一个Pod:
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: my-container
      image: my-image
  1. 创建一个Deployment:
kind: Deployment
metadata:
  name: my-deployment
spec
  1. 手动缩放Pod:可以使用kubectl命令行工具手动缩放Pod的数量,以满足当前的负载需求。例如,可以使用以下命令来将Pod的数量扩展到3个:
cssCopy code
kubectl scale deployment my-app --replicas=3
  1. 自动扩展Pod:可以通过Kubernetes的自动伸缩机制来自动扩展Pod的数量。自动伸缩机制可以根据CPU使用率、内存使用率或其他指标来自动调整Pod的数量。

  2. 使用水平Pod自动伸缩器(HPA):可以使用HPA来自动扩展和收缩Pod。HPA根据当前的负载需求和配置的最小和最大Pod数量来自动调整Pod的数量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【100个 Unity实用技能】☀️ | C#泛型集合常用方法,查找符合要求的第一个元素并返回

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…

学数据结构第一个是学链表?不,是它

大家好,我是五月。前言以前很多小白都来询问过关于数据结构的内容,问题基本都是想学链表,堆栈、队列、树这些该怎么下手。一方面我表示赞许,另一方面又觉得他们对数据结构这个东西真是知之甚少。我告诉他们,第一个要学…

常用Linux的ssh远程终端连接工具

putty 说明 putty是最简单的SSH工具,无需安装,支持多系统版本,下载后就可以直接使用。 优点: 1.免费 2.免安装 缺点: 1、不支持标签模式; 2、默认设置不友好,很多功能都需要额外配置才行&…

Vue Slot (四种方式:超详细)

slot(插槽)的概念是把外层的内容塞进子元件的指定位置里。跟插槽的字面意思一样,前提是:有插口才能插。子元件需要开一个插口(slot),才可以在外层元件把内容塞进子元件里。 slot(插槽) 可分为四种: slot(插槽)Named slot(具名插槽)Scoped slot(作用域插槽)Dyn…

掌握MySQL分库分表(七)广播表、绑定表实战,水平分库+分表实现及之后的查询和删除操作

文章目录什么是广播表广播表实战数据库配置表Java配置实体类配置文件测试广播表水平分库分表配置文件运行测试什么是绑定表?绑定表实战配置数据库配置Java实体类配置文件运行测试水平分库分表后的查询和删除操作查询操作什么是广播表 指所有的分片数据源中都存在的…

redis(win版)

1. 前言1.1 什么是RedisRedis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母缩写,也就是「远程字典服务」。基于内存存储,读写性能高适合存储热点数据&am…

SealOS 一键安装 K8S

环境 # 查看系统发行版 $ cat /etc/os-release NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI_COLOR"0;31" CPE_NA…

黑马 Vue 快速入门 笔记

黑马 Vue 快速入门 笔记0 VUE相关了解0.1 概述0.2 MVVM0.3 JavaScript框架0.4 七大属性0.5 el:挂载点1 VUE基础1.0 第一个vue代码:Hello,vue1.1 v-bind 设置元素的属性 简写 :1.2 v-if , v-else , v-else-ifv-if , v-e…

【Npde.js】express以及nodemon

express初始Express什么是Express不使用Express可以创建web服务器吗?Express能做什么安装Express监听GET请求和post请求获取URL中携带的查询参数获取URL中携带的动态参数托管静态资源nodemon为什么使用nodemon初始Express 什么是Express 官方给出的概念&#xff0…

ctf pwn基础-1

在心中做了无数次决定,我终于还是准备学pwn了,为了继承学长的衣钵,更别说自己已经下定决心学习 c了,废话不多说下面正式开始。 目录 基础 实列讲解 基础 很多人一上来就叫你什么汇编啊、c啊什么的,让人往而却步&…

分布式任务调度处理方案(无代码)

业务涉及到,需要向数据库、redis、elasticsearch、MinIO写四份数据,这里存在分布式事务问题。如何解决问题,先分析cap,是要保证可用性,还是保证一致性。如何选择是CP还是AP?分析业务场景CP的场景&#xff1…

canvas样式与颜色,字体,图片,状态,形变

色彩 fillStyle color 设置图形的填充颜色。 strokeStyle color 设置图形轮廓的颜色。 备注: 一旦您设置了 strokeStyle 或者 fillStyle 的值,那么这个新值就会成为新绘制的图形的默认值。如果你要给每个图形上不同的颜色,你需要重新设置…

Java Scanner 类,超详细整理,适合新手入门

目录 一、什么是 Java Scanner 类? 二、引用数据类型 1、引用数据类型的定义 三、Scanner 类有哪些常用方法? hasNext()用法 四、next() 与 nextLine() 区别 next(): nextLine(): 五、使用 next 方法 五、使用 nextLine方法 一、什…

SkyWalking仪表盘使用

Skywalking仪表盘使用 1 仪表盘 作用:查看被监控服务的运行状态。 1)监控面板 1.1 APM APM:应用性能管理,通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案…

机器学习主要内容的思维导图

机器学习 机器学习: 定义:能够从经验中学习从而能够 把事情不断做好的计算机程序 人工智能的一个分支和 实现方式 理论基础:概率论 数理统计 线性代数 数学分析 数值逼近 最优化理论 计算复杂理论 核心要素:数据 算法 模型 机器…

【极海APM32替代笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时

【极海APM32替代笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时 外部定时器 采用定时器做延时使用时 需要计算好分频和计数 另外还要配置为不进行自动重载 对于50MHz的工作频率 分频为50-1也就是50M/501M 一次计数为1us 分频为50000-1也就是1k 一次计数为1ms 我配置的是…

论文解读 | [AAAI2020] 你所需要的是边界:走向任意形状的文本定位

目录 1、研究背景 2、研究的目的 3、方法论 3.1 Boundary Point Detection Network(BPDN) 3.2 Recognition Network 3.3 Loss Functions 4、实验及结果 论文连接:https://ojs.aaai.org/index.php/AAAI/article/view/6896 1、研究背景 最近,旨在…

2023美赛C题Wordle二三问分布预测和难度分类预测

文章目录前言题目介绍人数分布预测首先建立字母词典,加上时间特征数据预处理训练和预测函数保存模型函数位置编码模型及其参数设置模型训练以及训练曲线可视化预测人数分布难度分类预测总结前言 2023美赛选了C题,应该很多人会选,一看就好做&…

电动汽车充放电的优化调度(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

深度学习无监督磁共振重建方法调研(二)

深度学习无监督磁共振重建方法调研(二)Self-supervised learning of physics-guided reconstruction neural networks without fully sampled reference data(Magnetic Resonance in Medicine 2020)模型设计实验结果PARCEL: Physi…