K8s—使用教程

article/2025/6/20 15:27:15

目录

什么是Kubernetes?

Kubernetes的主要对象

Kubernetes的特征

Kubernetes体系结构

主节点(控制平面)

从节点(工人节点)

Linux安装Kubernetes


什么是Kubernetes?

Kubernetes也被称为” k8s”。这个词来自希腊语, 意思是飞行员或舵手。Kubernetes是Google在2014年设计的可扩展、可移植的开源平台。它主要用于在节点集群中自动执行基于容器的应用程序的部署、扩展和操作。它还旨在使用不同的方法来管理容器化应用程序的服务, 这些方法可提供可伸缩性、可预测性和高可用性

它实际上是” Borg”的增强版本, 用于管理长时间运行的流程和批处理作业。如今, 许多云服务都提供了基于Kubernetes的基础架构, 可以将其部署为平台提供的服务。此技术或概念可与许多容器工具(例如docker)一起使用, 并遵循客户端-服务器体系结构。

Kubernetes的主要对象

以下是Kubernetes中存在的关键对象:

  1. :它是Kubernetes应用程序中最小、 最简单的基本单元。该节点标识集群中正在运行的进程。
  2. 节点:节点不过是一个主机, 用于运行虚拟机或物理机。 Kubernetes集群中的一个节点也称为奴才。
  3. 服务:Kubernetes中的服务是Pod的逻辑集合, 可以协同工作。借助服务, 用户可以轻松管理负载平衡配置。
  4. 复制集:Kubernetes中的ReplicaSet用于标识在给定时间正在运行的Pod副本的特定数量。它取代了复制控制器, 因为它功能更强大, 并允许用户使用”基于集合”的标签选择器。
  5. 命名空间:Kubernetes支持各种虚拟集群, 称为名称空间。这是在两个或多个用户之间分配群集资源的一种方法。

Kubernetes的特征

Kubernetes教程

 

以下是Kubernetes的基本功能:

  1. Pod:它是Kubernetes中的一个部署单元, 具有单个Internet协议地址。
  2. 水平缩放:这是Kubernetes中的重要功能。此功能使用Horizo​​ntalPodAutoscalar根据观察到的CPU利用率自动增加或减少部署, 复制控制器, 副本集或有状态集中的窗格数。
  3. 自动装箱:Kubernetes帮助用户声明其容器的计算机的最大和最小资源。
  4. 服务发现和负载平衡:Kubernetes为一组容器分配IP地址和DNS名称, 并在它们之间平衡负载。
  5. 自动部署和回滚:Kubernetes使用部署, 将更改和更新分发到应用程序或其配置。如果系统中发生任何问题, 则此技术会立即为你回滚这些更改。
  6. 持久存储:Kubernetes提供了一项称为“持久存储”的基本功能来存储数据, 在吊舱被终止或重新安排之后不会丢失。 Kubernetes支持各种存储系统来存储数据, 例如Google Compute Engine的永久磁盘(GCE PD)或Amazon Elastic Block Storage(EBS)。它还提供了分布式文件系统:NFS或GFS。
  7. 自我修复:此功能在Kubernetes的概念中起着重要的作用。在执行过程中失败的那些容器, Kubernetes会自动重新启动它们。并且, 那些不回复用户定义的运行状况检查的容器将阻止它们自动运行。

Kubernetes体系结构

Kubernetes教程

Kubernetes的架构实际上遵循客户端-服务器架构。它由以下两个主要组件组成:主节点(控制平面)、从节点(工人节点)

主节点(控制平面)

Kubernetes体系结构中的主节点用于管理集群的状态。实际上, 它是所有类型的管理任务的切入点。在Kubernetes集群中, 存在多个用于检查容错性的主节点。以下是主节点或Kubernetes控制平面中存在的四个不同组件:

  1. 服务器API:Kubernetes API服务器接收用户发送的REST命令。接收后, 它将验证REST请求, 进行处理, 然后执行它们。执行REST命令后, 集群的结果状态将作为分布式键值存储存储在” etcd”中。
  2. 排程器:主节点中的调度程序将任务调度到工作节点。并且, 对于每个工作节点, 它用于存储资源使用信息。换句话说, 它是负责将吊舱分配给可用工作节点的过程。
  3. 财务经理:控制器管理器也称为控制器。它是一个在非终止控制循环中执行的守护程序。主节点中的控制器执行任务并管理集群的状态。在Kubernetes中, 控制器管理器执行各种类型的控制器来处理节点, 端点等。
  4. 经济合作发展组织:它是一种开放源代码, 简单的分布式键值存储, 用于存储集群数据。它是用GO编程语言编写的主节点的一部分。

现在, 我们已经了解了主节点的功能和组件。让我们看看从属节点/工作节点的功能是什么以及它的组成部分。

从节点(工人节点)

Kubernetes中的Worker节点也称为奴才。工作节点是使用Pod执行应用程序的物理计算机。它包含所有基本服务, 这些服务使用户可以将资源分配给计划的容器。以下是工作节点或从节点中存在的不同组件:

  1. 婴儿:此组件是在群集中每个工作节点上执行的代理服务。它可以确保Pods及其容器运行顺畅。每个工作程序节点中的每个kubelet与主节点通信。它还将启动, 停止和维护由主节点直接组织为pod的容器。
  2. 古巴代理:它是Kubernetes的代理服务, 仅在集群中的每个工作节点上执行。该组件的主要目的是请求转发。每个节点都通过Kube-proxy与Kubernetes服务进行交互。
  3. Pods:Pods容器是逻辑上在节点上一起执行的一个或多个容器的组合。一个工作节点可以轻松执行多个Pod。

Linux安装Kubernetes

在Linux上安装Kubernetes是一个简单的过程。请按照以下步骤安装Kubernetes。在安装Kubernetes时, 每个步骤都是必需的。

步骤1:在这一步中, 我们必须使用两个命令来更新系统的必要依赖关系。

第一个命令用于获取所有更新。在终端中执行以下命令;它将要求输入系统密码。

sudo apt-get update

输出如下:

Kubernetes教程

成功执行第一个命令后, 键入以下第二个命令, 该命令用于创建存储库。

sudo apt-get install -y apt-transport-https

输出如下:

Kubernetes教程

步骤2:成功执行上述步骤后, 我们必须在此步骤中安装docker的依赖项。

输入以下命令以安装docker。在安装过程中, 我们必须选择Y来确认安装。

sudo apt install docker.io

输出如下:

Kubernetes教程

安装docker之后, 我们必须键入两个不同的命令来启动和启用docker。键入以下第一个命令, 以启动docker:

sudo systemctl start docker

现在, 键入以下第二条命令, 以启用docker:

sudo systemctl enable docker

输出如下:

Kubernetes教程

现在, 我们可以通过键入以下命令来检查docker的版本:

Docker -version

输出如下:

Kubernetes教程

步骤3:成功执行第二步的所有命令后, 我们必须安装curl命令。 curl用于使用URL语法发送数据。

现在, 使用以下命令安装curl。在安装中, 我们必须输入Y。

sudo apt-get install curl

输出如下:

Kubernetes教程

 

现在, 我们必须通过以下命令下载Kubernetes的添加包密钥:

sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add

输出如下:

Kubernetes教程

如果你从上述命令中得到错误, 则表明你的curl命令未成功安装, 因此请先安装curl命令, 然后再次运行上述命令。现在, 我们必须通过以下命令添加Kubernetes存储库:

sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

输出如下:

Kubernetes教程

 

成功执行以上命令后, 我们必须通过执行以下命令来检查所有更新:

sudo apt-get update

输出如下:

Kubernetes教程

 

步骤4:在上述步骤中执行完上述命令后, 我们必须通过执行以下命令来安装Kubernetes的组件:

sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni

输出如下:

Kubernetes教程

步骤5:完成上述安装后, 我们必须通过执行以下命令来初始化kubeadm。以下命令在其他设备上禁用交换:

sudo swapoff -a

输出如下:

Kubernetes教程

现在, 我们必须通过执行以下命令来初始化kubeadm:

sudo kubeadm init

输出如下:

Kubernetes教程

步骤6:成功执行上述命令后, 我们必须运行以下命令, 这些命令在kubeadm的初始化中给出。这些命令显示在上面的屏幕截图中。以下命令用于启动集群:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

 

Kubernetes教程

Kubernetes教程

输出如下:

步骤7:在这一步中, 我们必须使用以下命令来部署路径:

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

输出如下:

Kubernetes教程

步骤8:执行上述命令后, 我们必须运行以下命令来验证安装:

sudo kubectl get pods --all-namespaces

输出如下:

Kubernetes教程

如果输出如上面的屏幕截图所示。这意味着Kubernetes已成功安装在我们的系统上。


http://chatgpt.dhexx.cn/article/D3F4FtfZ.shtml

相关文章

尚硅谷Kubernetes教程(K8s入门到精通) 01

PAAS 平台即服务 用户下单,云厂商,派出运维 构建 自动化运维工具-自动环境创建 docker公司 自动构建运行环境 容器的集群化 资源管理器 分布式系统内核 Twitter 改用k8s 退出历史舞台 kubernetes 背靠 谷歌 功能全面 稳定 go 语言(解释性 轻量级 ) 开源 弹性伸缩 负…

k8s教程(Volume篇)-PV详解

文章目录 01 引言02 PV详解2.1 示例配置详解2.1.1 存储容量 (Capacity)2.1.2 存储卷模式 (Volume Modes)2.1.3 访问模式 (Access Modes)2.1.4 存储类别(Class)2.1.5 回收策略 (Reclaim Policy)2.1.6 挂载选项 (Mount Options)2.1.6 节点亲和性 (Node Affinity) 03 文末 01 引言…

K8s 初学者入门教程

Kubernetes 简称为 K8s 文章目录 写在前面1. 什么是 K8s1.1 K8s 解决了什么问题?1.2 容器编排工具提供了哪些特性? 2. K8s 组件2.1 Node & Pod2.2 Service & Ingress2.3 ConfigMap & Secret2.4 Volumes2.5 Deployment & StatefulSet 3.总结参考 写…

K8s集群搭建教程

学习并总结一下使用三台虚拟机搭建一个kubernetes集群的过程。 目录 一、环境规划二、环境准备2.1 搭建流程概述:2.2 安装环境准备2.2.1 升级系统内核2.2.2 设置主机名和hosts本地解析2.2.3 关闭防火墙和SELinux2.2.4 时间同步2.2.5 关闭 swap 分区2.2.6 将桥接的IP…

k8s教程(Volume篇)-总结

文章目录 01 引言02 内容整理2.1 概念2.2 PV2.3 PVC2.4 StorageClass2.5 CSI 03 文末 01 引言 至此,volume的相关知识已经讲解完了,下面是相关文章的详情总结: 《k8s教程(Volume篇)-k8s存储机制概述》《k8s教程&…

【K8S教程分享】Kubernetes K8S高级视频教程

Kubernetes K8S高级视频教程,目前的云计算(PaaS),事实上已经以K8S为标准建立平台,各大开源项目也都依据K8S对接进行开发或二次开发,所以K8S是目前云计算领域的必备技能,当能结合openstackk8s双平台者的运维、开发、使用者&#xf…

k8s教程(基础篇)-安装与配置概述

文章目录 01 系统要求02 安装概述03 私有镜像库配置与升级3.1 私有镜像库配置3.2 升级 04 CRI(容器运行时接口)详解 4.1 CRI 概述 4.2 CRI 的主要组件 4.3 Pod 和容器的生命周期管理 4.4 面向容器级别的设计思路 4.5 尝试使用新的 Docker-CRI 来创建容器…

K8S入门教程

目录 1.Kubernetes概述 1.1 Kubernetes介绍 1.2 基本架构与常用术语 2.Kubernetes集群 2.1 环境准备与规划 2.2 Master安装 2.3 Node1安装 2.4 Node2安装 2.5 健康检查与示例测试 1.Kubernetes概述 1.1 Kubernetes介绍 1.1.1 Kubernetes是什么及作用 Kubernetes(K8S)是Google在…

k8s教程(基础篇)-入门及案例

文章目录 1. 了解 Kubernetes 1.1 Kubernetes是什么 1.2 Kubernetes的基本知识 1.2.1 Service 1.2.2 Pod 2. 为什么要用 Kubernetes 3. 从一个简单的例子开始 3.1 启动 MySQL 服务 3.1.1 Deployment定义文件 3.1.2 service定义文件 3.2 启动 Tomcat应用 3.2.1 Deployment定义文…

k8s搭建(超详细,保姆级教程)

1、简介 这里就不赘述,想要了解的朋友直接去这里深入了解什么是K8S。 2、环境要求 2台以上机器,操作系统 CentOS7.7-64位系统硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多集群中所有机器之间网络互通可以…

k8s教程----零基础快速入门

k8s详解教程----零基础快速入门 前言: Kubernetes(k8s)作为云原生的核心平台,吸引了越来越多的运维、开发、测试以及其他技术员去了解学习。随着行业越来越内卷,k8s已经被广泛使用,作为一名运维人员&#…

K8S使用教程(详细)

Kubernetes详细教程 1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点…

零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s

一、前言 作为一个工作十余年,拥有比较丰富的计算机网络运维、主机运维、云计算平台运维、自动化运维开发经验的老鸟,我来说说我当初刚接触Kubernetes时的一些感受以及学习技巧。 刚开始学习k8s时,我觉得挺难的,一头雾水&#x…

python input函数换行_python input函数换行_python_input函数

Python raw_input() 函数 Python内置函数 python raw_input()用来获取控制台的输入。 raw_input()将所有输入作为字符串看待,返回字符串类型。注意:input()和 raw_input()这两个函 Python input和print函数 - 箬笠蓑衣 258x256 - 5KB - PNG python row函数_row函数_python row_…

Python基础之input函数和eval函数

Python基础之&#xff08;二&#xff09; 一、 input()函数-数据输入 input()函数的功能&#xff1a;显示用户输入的值 input()函数可以包含一些提示性文字 通过使用input()函数&#xff0c;可以使用户主动输入的内容变成程序中的字符串变量的值 <字符串变量> input(&l…

函数input()讲解

目录 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 2.input与提示语 3.input与print 例子 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 input在pyth…

Python input函数

input()函数 import timeprint(亲爱的同学&#xff1a;) time.sleep(1)print(我们愉快地通知您&#xff0c;您已获准在霍格沃茨魔法学校就读。) time.sleep(2)print(随信附上所需书籍及装备一览。) time.sleep(1)print(学期定于九月一日开始。) time.sleep(1)print(鉴于您对魔…

python中input函数最简单详细的了解

一、input&#xff08;&#xff09;函数 有了 输入 魔法&#xff0c;程序就有了对话的功能。计算机根据你的回答进行对应的处理&#xff0c;好像能听懂你的话一样。 你通过 Python 代码向计算机提供指令&#xff0c;计算机执行指令&#xff0c;然后通过 input() 函数把问题显…

input函数和int函数的使用

第一&#xff0c;input函数接受一个标准输入数据&#xff0c;返回str类型 第二&#xff0c;int函数可以把str强制转换为整形 第三&#xff0c;int(input()) ps&#xff1a;最近搞深度学习的视频&#xff0c;但是依然需要实操

python中input函数的使用

input() 函数接受一个标准输入数据&#xff0c;返回为 string 类型。 input() # 单个输入使用input ninput() print(n) print(type(n))ninput("输入&#xff1a;") print(n) print(type(n))ninput() print(n) print(type(n))input().split() split()方法通过指定分…