当前位置: 首页 > news >正文

K8S基础概念和环境搭建

K8S的基础概念

1. 什么是K8S

K8S的全称是Kubernetes

K8S是一个开源的容器编排平台,用于自动化部署、扩缩、管理容器化应用程序。

2. 集群和节点

集群:K8S将多个机器统筹和管理起来,彼此保持通讯,这样的关系称之为集群

节点:集群中的机器称之为节点,在集群中至少存在一个节点。

3. 控制面和普通节点

集群中的机器分为2种角色:

控制面:负责调度

普通节点:负责干活(运行容器)

        - 容器以Pod为单位,在普通节点中运行

        - 同一个Pod中的所有容器,在同一个节点中运行

通常情况下,要避免同一个机器,边干活,边调度。

所以负责调度的机器不会再负责干活,也就是说一个集群中至少要存在两个节点(一个调度、一个干活)

但是如果负责干活的机器只有一个,若该机器出现了故障,就没有机器可以干活了。

所以理想的情况下,至少要存在两个不同的干活节点,也就是在K8S集群中存在3个节点(一个调度、两个干活)

4. K8S组件

在控制面中包含如下组件:

1. API Server:

        - 核心组件之一,为集群各类资源提高同一个的接口(HTTP REST)

2. etcd:

        - 分布式(K-V)数据库,特点:高一致性,高可用(容错好)

        - redis也是分布式(K-V)数据库,特点:读写性能好,但是并不符合K8S的需要

3. kube-scheduler:

        - 监听新Pod创建需求,为其分配合适工作节点

        - 考虑Pod的资源需求、调整条件、负载状况等,尽量选出合适的工作节点

4. kube-controller-mange:

        - 包含多个不同的“控制器”的管理器

        - 可用创建、管理、监视“控制器”的工作情况

5. cloud-controller-mange:

        - 创建、管理、监视“云服务”的工作情况

在工作节点中包含如下组件:

1. kubelet:

        - 接收、执行、监控、反馈来自控制面的调度(Pod)

        - 上报节点自身状态

2. kuke-proxy:

        - 为Serive提供网络入口,提供负载均衡,调整网路规则

3. 容器运行时

        - 比如 docker、containerd

5. K8S API

K8S API 是控制面中【API-Server】组件 提供的 HTTP API

K8S API 供用户、集群中不同的部分、集群外不同的组件,相互通信

用户对集群的管理、配置、调度等操,背后都是通过K8S API实现的

搭建K8S开发测试环境

所需一个Ubuntu+Docker的云服务器,内存建议在4G及以上

此处搭建环境的方法是:minikube

其他的搭建方法:Microk8S、K3S等

1. 安装minikube

下载:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

安装:

sudo install minikube-linux-amd64 /usr/local/bin/minikube

查看是否安装成功:

minikube

2. 启动minikube

minikube start

 出现类似下图的内容就代表安装成功了 

 

在执行minikube过程中如果出现镜像下载失败的问题,可以详见我的另一篇文章: 

minikube start下载镜像失败-CSDN博客

3. 执行kubectl

minikube kubectl

执行结果可以参考下面的内容 

ubuntu@VM-20-9-ubuntu:~$ minikube kubectl
kubectl controls the Kubernetes cluster manager.Find more information at: https://kubernetes.io/docs/reference/kubectl/Basic Commands (Beginner):create          Create a resource from a file or from stdinexpose          Take a replication controller, service, deployment or pod and expose it as a new Kubernetes servicerun             Run a particular image on the clusterset             Set specific features on objectsBasic Commands (Intermediate):explain         Get documentation for a resourceget             Display one or many resourcesedit            Edit a resource on the serverdelete          Delete resources by file names, stdin, resources and names, or by resources and label selectorDeploy Commands:rollout         Manage the rollout of a resourcescale           Set a new size for a deployment, replica set, or replication controllerautoscale       Auto-scale a deployment, replica set, stateful set, or replication controllerCluster Management Commands:certificate     Modify certificate resourcescluster-info    Display cluster informationtop             Display resource (CPU/memory) usagecordon          Mark node as unschedulableuncordon        Mark node as schedulabledrain           Drain node in preparation for maintenancetaint           Update the taints on one or more nodesTroubleshooting and Debugging Commands:describe        Show details of a specific resource or group of resourceslogs            Print the logs for a container in a podattach          Attach to a running containerexec            Execute a command in a containerport-forward    Forward one or more local ports to a podproxy           Run a proxy to the Kubernetes API servercp              Copy files and directories to and from containersauth            Inspect authorizationdebug           Create debugging sessions for troubleshooting workloads and nodesevents          List eventsAdvanced Commands:diff            Diff the live version against a would-be applied versionapply           Apply a configuration to a resource by file name or stdinpatch           Update fields of a resourcereplace         Replace a resource by file name or stdinwait            Experimental: Wait for a specific condition on one or many resourceskustomize       Build a kustomization target from a directory or URLSettings Commands:label           Update the labels on a resourceannotate        Update the annotations on a resourcecompletion      Output shell completion code for the specified shell (bash, zsh, fish, or powershell)Subcommands provided by plugins:Other Commands:api-resources   Print the supported API resources on the serverapi-versions    Print the supported API versions on the server, in the form of "group/version"config          Modify kubeconfig filesplugin          Provides utilities for interacting with pluginsversion         Print the client and server version informationUsage:kubectl [flags] [options]Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).

 创建别名

alias kubectl="minikube kubectl --"

4. 测试环境是否搭建成功

我们可以通过如下命令,测试环境是否搭建成功

kubectl get pod -A
或者
minikube kubectl -- get pod -A

相关文章:

K8S基础概念和环境搭建

K8S的基础概念 1. 什么是K8S K8S的全称是Kubernetes K8S是一个开源的容器编排平台&#xff0c;用于自动化部署、扩缩、管理容器化应用程序。 2. 集群和节点 集群&#xff1a;K8S将多个机器统筹和管理起来&#xff0c;彼此保持通讯&#xff0c;这样的关系称之为集群。 节点…...

[服务器] 腾讯云服务器免费体验,成功部署网站

文章目录 概要整体架构流程概要 腾讯云服务器免费体验一个月。 整体架构流程 腾讯云服务器体验一个月, 选择预装 CentOS 7.5 首要最重要的是: 添加阿里云镜像。 不然国外源速度慢, 且容易失败。 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/li…...

vue中el-select 模糊查询下拉两种方式

第一种&#xff1a;先获取所有下拉数据再模糊查询&#xff0c;效果如下 1&#xff0c;页面代码&#xff1a;speciesList是种类列表List, speciesId 是speciesList里面对应的id&#xff0c;filterable是过滤查询标签 <el-form-item label"种类" prop"species…...

深入解析PostgreSQL中的PL/pgSQL语法

在数据库管理系统中&#xff0c;PostgreSQL因其强大的功能和稳定性而受到广泛欢迎。其中&#xff0c;PL/pgSQL作为PostgreSQL的过程化语言&#xff0c;为用户提供了更为灵活和强大的编程能力。本文将深入解析PL/pgSQL的语法&#xff0c;帮助读者更好地掌握这门语言&#xff0c;…...

Vue 3集成海康Web插件实现视频监控

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;组件封装篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来组件封装篇专栏内容:Vue 3集成海康Web插件实现视频监控 引言 最近在项目中使用了 Vue 3 结合海康Web插件来实…...

多目标优化算法:多目标蛇鹫优化算法(MOSBOA)求解DTLZ1-DTLZ9,提供完整MATLAB代码

一、蛇鹫优化算法 蛇鹫优化算法&#xff08;Secretary Bird Optimization Algorithm&#xff0c;简称SBOA&#xff09;由Youfa Fu等人于2024年4月发表在《Artificial Intelligence Review》期刊上的一种新型的元启发式算法。该算法旨在解决复杂工程优化问题&#xff0c;特别是…...

机器翻译基础与模型 之三:基于自注意力的模型

基于RNN和CNN的翻译模型&#xff0c;在处理文字序列时有个问题&#xff1a;它们对序列中不同位置之间的依赖关系的建模并不直接。以CNN的为例&#xff0c;如果要对长距离依赖进行描述&#xff0c;需要多层卷积操作&#xff0c;而且不同层之间信息传递也可能有损失&#xff0c;这…...

如何使用PCL处理ROS Bag文件中的点云数据并重新保存 ubuntu20.04

如何使用PCL处理ROS Bag文件中的点云数据并重新保存 要精确地处理ROS bag中的点云数据并使用PCL进行处理&#xff0c;再将处理后的数据保存回新的ROS bag文件&#xff0c;以下方案提供了详细、专业和严谨的步骤。 步骤 1: 环境设置 确保安装了ROS和PCL&#xff0c;并配置好环…...

背包问题(动态规划)

背包问题是一种组合优化的问题&#xff0c;它有多种变体&#xff0c;但最常见的两种是0/1背包问题和完全背包问题。 0/1背包问题 问题描述&#xff1a; 假设你有一个背包&#xff0c;背包的容量为W&#xff08;可以是重量或者体积等度量&#xff09;&#xff0c;同时有n个物品…...

从0开始学习机器学习--Day26--聚类算法

无监督学习(Unsupervised learning and introduction) 监督学习问题的样本 无监督学习样本 如图&#xff0c;可以看到两者的区别在于无监督学习的样本是没有标签的&#xff0c;换言之就是无监督学习不会赋予主观上的判断&#xff0c;需要算法自己去探寻区别&#xff0c;第二张…...

Vue3插槽v-slot使用方式

在 Vue 3 中&#xff0c;v-slot 是用来定义和使用插槽的指令。插槽是 Vue 的一个功能&#xff0c;允许你在组件内部定义占位内容&#xff0c;便于在父组件中提供动态内容。以下是 v-slot 的详细使用方法&#xff1a; 1. 基础使用 <template><BaseComponent><te…...

Axure二级菜单下拉交互实例

1.使用boxlabe进行基础布局 2.设置鼠标悬浮和选中状态 3.转换为动态面板 选中所有二级菜单,进行按钮组转换 选中所有二级菜单,进行动态面板转换 4.给用户管理增加显示/隐藏事件 1)选择toggle代表上拉和下拉切换加载 2)勾选Bring to Front,并选择Push/Pull Widgets代表收缩时…...

华为VPN技术

1.启动设备 2.配置IP地址 [FW1]int g1/0/0 [FW1-GigabitEthernet1/0/0]ip add 192.168.1.254 24 [FW1-GigabitEthernet1/0/0]int g1/0/1 [FW1-GigabitEthernet1/0/1]ip add 100.1.1.1 24 [FW1-GigabitEthernet1/0/1]service-manage ping permit [FW2]int g1/0/0 [FW2-Gi…...

CommonsBeanutils与Shiro发序列化利用的学习

一、前言 前面的学习中&#xff0c;过了一遍cc1-cc7的利用链&#xff0c;在CC2的利用链中&#xff0c;学习了 java.util.PriorityQueue&#xff0c;它在Java中是一个优先队列&#xff0c;队列中每一个元素都有自己的优先级。在反序列化这个对象时&#xff0c;为了保证队列顺序…...

运维云计算SRE-第2周

1. 总结学过的权限&#xff0c;属性及ACL相关命令及选项&#xff0c;示例。 一、Linux安全模型 &#xff08;一&#xff09;资源分派 Authentication&#xff08;认证&#xff09;&#xff1a;验证用户身份&#xff0c;确保登录系统的用户是合法的。 Authorization&#xff08…...

React Native 全栈开发实战班 - 用户界面进阶之响应式设计实践

在移动应用开发中&#xff0c;响应式设计 是确保应用在不同设备、屏幕尺寸和方向下都能提供良好用户体验的关键。React Native 提供了多种工具和技巧来实现响应式设计&#xff0c;包括 Flexbox 布局、动态样式、屏幕尺寸适配等。本章节将详细介绍如何在 React Native 中进行响应…...

SlickGrid点击/双击事件

分析 SlickGrid提供了点击事件方法grid.onClick和grid.onDblClick用于捕获用户对表格列的点击&#xff0c;捕获到点击事件之后&#xff0c;修改表格数据&#xff0c;然后使用grid.updateRow方法将修改后的数据更新到表格中。 展示 代码 创建grid&#xff08;HTML&#xff09;…...

一文详细深入总结服务器选型

1. 题记&#xff1a; 服务器选型工作是项目规划检讨的一项非常重要的工作&#xff0c;本文详细深入总结服务器选型。 2. 服务器基础知识概览 2.1 服务器的定义与功能 2.1 .1 定义 服务器是一种高性能计算机&#xff0c;其设计目的是在网络中提供服务。它可以处理来自多个客…...

一、Nginx反向代理(七层代理)二、Nginx的TCP/UDP调度器(四层代理)

一、Nginx反向代理&#xff08;七层代理&#xff09; 实验要求 使用Nginx实现Web反向代理功能&#xff0c;实现如下功能&#xff1a; 后端Web服务器两台&#xff0c;可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为…...

CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回

实现弹力球效果&#xff0c;碰到屏幕边框弹回&#xff0c;效果如下 代码如下&#xff1a; <img src"../image/ball.png" alt"" class"ball"> <style>.ball {position: fixed;top: 50vh;left: 50vw;width: 15vw;height: 15vw;border…...

shell编程规范和脚本变量

什么是shell 人和计算机内核之间的中介&#xff1a; 计算机的语言是二进制&#xff0c;把人类的语言翻译成计算机能够识别的语言&#xff0c;然后让内核来处理 内核完成之后要把结果反馈给用户&#xff0c;要把计算机的翻译成人类能够识别的语言 命令解释器&#xff0c;pyc…...

jspm美容院管理系统

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计…...

Prometheus结合K8s(二)使用

上一篇介绍了如何搭建 Prometheus结合K8s&#xff08;一&#xff09;搭建-CSDN博客&#xff0c;这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target&#xff0c;可以看到metrics的数据来源&#xff0c;即各…...

【虚幻引擎】UE5数字人开发实战教程

本套课程将会交大家如何去开发属于自己的数字人&#xff0c;包含大模型接入&#xff0c;流式输出&#xff0c;语音识别&#xff0c;语音合成&#xff0c;口型驱动&#xff0c;动画蓝图&#xff0c;语音唤醒等功能。 课程介绍视频如下&#xff1a; 【虚幻引擎】UE5 历时一个多月…...

深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 ros ubuntu20.04

深入分析&#xff1a;固定参考框架在RViz中的作用与对数据可视化的影响 RViz (Robot Visualization) 是 ROS (Robot Operating System) 中一种重要的三维可视化工具&#xff0c;主要用于实时观察和分析传感器数据、机器人状态信息以及环境模型。RViz的核心功能之一是固定参考框…...

Android:时间选择器(最下面有效果图)

1.创建DateUtil类 /*** Created by wangshuai on 2024/11/19.*/ public class DateUtil {public final static String PATTERN_ALL"yyyy-MM-dd HH:mm:ss";public final static String PATTERN_DEFAULT"yyyy-MM-dd";/*** 获取当前时间* return yyyy-MM-dd*…...

第十六届蓝桥杯模拟赛(第一期)-c++/c

c/c蓝桥杯模拟赛题解&#xff0c;非常详细 质因数 1、填空题 【问题描述】 如果一个数 p 是个质数&#xff0c;同时又是整数 a 的约数&#xff0c;则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提…...

如何挑选路由器?需要看哪些参数?

挑选路由器时&#xff0c;选择合适的型号和参数对于确保家庭或办公网络的速度、稳定性和覆盖范围至关重要。以下是挑选路由器时需要考虑的关键参数和因素&#xff1a; 1. 无线标准 (Wi-Fi标准) 无线标准是衡量路由器性能的核心指标。不同的无线标准提供不同的速率、范围和技术…...

mysql-备份(二)

前章介绍了MySQL的内部数据结构btree&#xff0c;这章讲述mysql的备份 1&#xff1a;环境 ubuntu22.04 LST mysql5.7.42 or win10 mysql5.7.44 (这里图简单直接windows部署) download:https://downloads.mysql.com/archives/community/ 2:install 1> unzip mysql-5.7.44-w…...

Tailwind CSS 和 UnoCSS简单比较

UnoCSS 和 Tailwind CSS 都是流行的原子化 CSS 框架&#xff0c;但它们在设计理念、性能和使用方式上有一些重要的区别。下面是对它们的详细对比&#xff1a; 1. 概述 Tailwind CSS&#xff1a;Tailwind 是一个原子化的 CSS 框架&#xff0c;提供了大量的预定义类&#xff08;…...

网站如何制作浙江/网站秒收录工具

初学Oracle,了解了一下Oracle的存储过程&#xff0c;运行了几个例子&#xff0c;做个备忘&#xff0c;方便以后使用&#xff1a;1、插入数据&#xff1a;向一张表里插入若干条数据/*创建表tb1包含两个字段col1、col2*/create table tb1(col1 char(20),col2 char(20));/*插入数据…...

帮做论文网站/引流最好的推广方法

1. 新建线程组 2. 新建http请求 3. 新建监听 4. 跑起来 5. 注意...

wordpress页面/营销管理培训课程培训班

1.在item级加触发器&#xff1a;key-listval&#xff1a;calendar.show; 2.修改该item属性&#xff1a; list of values &#xff1a;选择&#xff1a;enable_list_lamp&#xff1b; list y position: 设置为2.&#xff08;随意&#xff09; 是否从list验证&#xff1a;设置为n…...

临沂网站推广排名/免费推广链接

1.onCreate( )方法是android应用程序中最常见的方法之一&#xff1a;翻译过来就是说&#xff0c;onCreate()函数是在activity初始化的时候调用的&#xff0c;通常情况下&#xff0c;我们需要在onCreate()中调用setContentView(int)函数填充屏幕的UI&#xff0c;一般通过findVie…...

做移动网站点击软件/seo网站介绍

1.rbac-优化login函数   因为login是业务逻辑 ,而rbac是个组件 ,将rbac在login的代码分离 ###初始化权限函数分离出去 rbac/service/permission from untitled import settingsdef init_permission(request, obj):permission_query obj.roles.all().filter(permissions__url…...

wordpress上传到哪里/客户引流推广方案

连接远程服务器&#xff0c;备份生成SQL文件&#xff1a; pg_dump -h ip地址 -p 5433 -f xxx.sql -U 用户名 数据库名输入口令后&#xff0c;等待执行 创建本地数据库&#xff1a; CREATE DATABASE "数据库名"WITH OWNER 用户名ENCODING UTF8TABLESPACE pg_de…...