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是一个开源的容器编排平台,用于自动化部署、扩缩、管理容器化应用程序。 2. 集群和节点 集群:K8S将多个机器统筹和管理起来,彼此保持通讯,这样的关系称之为集群。 节点…...
[服务器] 腾讯云服务器免费体验,成功部署网站
文章目录 概要整体架构流程概要 腾讯云服务器免费体验一个月。 整体架构流程 腾讯云服务器体验一个月, 选择预装 CentOS 7.5 首要最重要的是: 添加阿里云镜像。 不然国外源速度慢, 且容易失败。 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/li…...
vue中el-select 模糊查询下拉两种方式
第一种:先获取所有下拉数据再模糊查询,效果如下 1,页面代码:speciesList是种类列表List, speciesId 是speciesList里面对应的id,filterable是过滤查询标签 <el-form-item label"种类" prop"species…...
深入解析PostgreSQL中的PL/pgSQL语法
在数据库管理系统中,PostgreSQL因其强大的功能和稳定性而受到广泛欢迎。其中,PL/pgSQL作为PostgreSQL的过程化语言,为用户提供了更为灵活和强大的编程能力。本文将深入解析PL/pgSQL的语法,帮助读者更好地掌握这门语言,…...
Vue 3集成海康Web插件实现视频监控
🌈个人主页:前端青山 🔥系列专栏:组件封装篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来组件封装篇专栏内容:Vue 3集成海康Web插件实现视频监控 引言 最近在项目中使用了 Vue 3 结合海康Web插件来实…...
多目标优化算法:多目标蛇鹫优化算法(MOSBOA)求解DTLZ1-DTLZ9,提供完整MATLAB代码
一、蛇鹫优化算法 蛇鹫优化算法(Secretary Bird Optimization Algorithm,简称SBOA)由Youfa Fu等人于2024年4月发表在《Artificial Intelligence Review》期刊上的一种新型的元启发式算法。该算法旨在解决复杂工程优化问题,特别是…...
机器翻译基础与模型 之三:基于自注意力的模型
基于RNN和CNN的翻译模型,在处理文字序列时有个问题:它们对序列中不同位置之间的依赖关系的建模并不直接。以CNN的为例,如果要对长距离依赖进行描述,需要多层卷积操作,而且不同层之间信息传递也可能有损失,这…...
如何使用PCL处理ROS Bag文件中的点云数据并重新保存 ubuntu20.04
如何使用PCL处理ROS Bag文件中的点云数据并重新保存 要精确地处理ROS bag中的点云数据并使用PCL进行处理,再将处理后的数据保存回新的ROS bag文件,以下方案提供了详细、专业和严谨的步骤。 步骤 1: 环境设置 确保安装了ROS和PCL,并配置好环…...
背包问题(动态规划)
背包问题是一种组合优化的问题,它有多种变体,但最常见的两种是0/1背包问题和完全背包问题。 0/1背包问题 问题描述: 假设你有一个背包,背包的容量为W(可以是重量或者体积等度量),同时有n个物品…...
从0开始学习机器学习--Day26--聚类算法
无监督学习(Unsupervised learning and introduction) 监督学习问题的样本 无监督学习样本 如图,可以看到两者的区别在于无监督学习的样本是没有标签的,换言之就是无监督学习不会赋予主观上的判断,需要算法自己去探寻区别,第二张…...
Vue3插槽v-slot使用方式
在 Vue 3 中,v-slot 是用来定义和使用插槽的指令。插槽是 Vue 的一个功能,允许你在组件内部定义占位内容,便于在父组件中提供动态内容。以下是 v-slot 的详细使用方法: 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发序列化利用的学习
一、前言 前面的学习中,过了一遍cc1-cc7的利用链,在CC2的利用链中,学习了 java.util.PriorityQueue,它在Java中是一个优先队列,队列中每一个元素都有自己的优先级。在反序列化这个对象时,为了保证队列顺序…...
运维云计算SRE-第2周
1. 总结学过的权限,属性及ACL相关命令及选项,示例。 一、Linux安全模型 (一)资源分派 Authentication(认证):验证用户身份,确保登录系统的用户是合法的。 Authorization(…...
React Native 全栈开发实战班 - 用户界面进阶之响应式设计实践
在移动应用开发中,响应式设计 是确保应用在不同设备、屏幕尺寸和方向下都能提供良好用户体验的关键。React Native 提供了多种工具和技巧来实现响应式设计,包括 Flexbox 布局、动态样式、屏幕尺寸适配等。本章节将详细介绍如何在 React Native 中进行响应…...
SlickGrid点击/双击事件
分析 SlickGrid提供了点击事件方法grid.onClick和grid.onDblClick用于捕获用户对表格列的点击,捕获到点击事件之后,修改表格数据,然后使用grid.updateRow方法将修改后的数据更新到表格中。 展示 代码 创建grid(HTML)…...
一文详细深入总结服务器选型
1. 题记: 服务器选型工作是项目规划检讨的一项非常重要的工作,本文详细深入总结服务器选型。 2. 服务器基础知识概览 2.1 服务器的定义与功能 2.1 .1 定义 服务器是一种高性能计算机,其设计目的是在网络中提供服务。它可以处理来自多个客…...
一、Nginx反向代理(七层代理)二、Nginx的TCP/UDP调度器(四层代理)
一、Nginx反向代理(七层代理) 实验要求 使用Nginx实现Web反向代理功能,实现如下功能: 后端Web服务器两台,可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为…...
CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回
实现弹力球效果,碰到屏幕边框弹回,效果如下 代码如下: <img src"../image/ball.png" alt"" class"ball"> <style>.ball {position: fixed;top: 50vh;left: 50vw;width: 15vw;height: 15vw;border…...
MySQL服务启动失败:NET HELPMSG 3534错误全面解析与实战解决方案
1. 遇到NET HELPMSG 3534错误时该怎么办 当你兴致勃勃地安装完MySQL,准备大干一场时,突然在命令行输入net start mysql后,屏幕上跳出"MySQL服务无法启动。服务没有报告任何错误。请键入NET HELPMSG 3534以获得更多的帮助"这样的提…...
基于S7-200 PLC与组态王的大棚控制系统:产品原理图与IO分配详解
基于S7-200 PLC和组态王温室大棚控制 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面 菜农张叔上周还给我打电话吐槽:“小王啊,上周那场降温加突然转晴,我三点爬起来盖半层棉被…...
中国象棋AlphaZero实战指南:从零开始构建超人类棋力AI
中国象棋AlphaZero实战指南:从零开始构建超人类棋力AI 【免费下载链接】ChineseChess-AlphaZero Implement AlphaZero/AlphaGo Zero methods on Chinese chess. 项目地址: https://gitcode.com/gh_mirrors/ch/ChineseChess-AlphaZero 想要打造一个能击败业余…...
Qwen3-0.6B-FP8多语言落地:支持粤语、闽南语、藏语等方言指令理解实测
Qwen3-0.6B-FP8多语言落地:支持粤语、闽南语、藏语等方言指令理解实测 1. 引言:当AI能听懂你的家乡话 想象一下,你正在用粤语和AI助手聊天,让它帮你写一份工作报告;或者用闽南语问它今天的天气,它不仅能听…...
Zotero-GPT插件:如何正确配置API密钥以激活AI文献分析功能
Zotero-GPT插件:如何正确配置API密钥以激活AI文献分析功能 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt Zotero-GPT是一款将GPT人工智能能力深度整合到Zotero文献管理软件中的开源插件,…...
python基于微信小程序的方言文化传播平台的设计与开发
目录需求分析与规划技术选型与架构设计核心功能实现数据处理与优化测试与部署运营与迭代项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析与规划 明确平台的核心功能需求,包括方言内容展示、语音录制与分享、…...
通义千问3-Reranker-0.6B效果惊艳:数学证明步骤间逻辑连贯性重排序
通义千问3-Reranker-0.6B效果惊艳:数学证明步骤间逻辑连贯性重排序 1. 模型介绍与核心能力 通义千问3-Reranker-0.6B是Qwen3 Embedding模型系列的最新成员,专门针对文本重排序任务进行了深度优化。这个6亿参数的模型虽然体积小巧,但在数学证…...
别再让AI失忆了!手把手教你用Mem0为ChatGPT添加长期记忆(附Next.js实战代码)
为Next.js聊天应用注入长期记忆:Mem0集成实战指南 当你的AI助手开始记住用户的咖啡偏好和生日祝福时,整个交互体验会发生质的变化。本文将带你从零开始,在Next.js应用中实现这种"记忆魔法"。 1. 环境准备与Mem0初始化 首先创建一个…...
OpCore-Simplify:零基础黑苹果配置终极指南,5分钟搞定复杂EFI
OpCore-Simplify:零基础黑苹果配置终极指南,5分钟搞定复杂EFI 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为黑苹果配置…...
SDMatte企业级应用:批量商品图去背景+Alpha Matte交付方案
SDMatte企业级应用:批量商品图去背景Alpha Matte交付方案 1. 产品概述 SDMatte是一款专为商业场景设计的高精度AI抠图工具,特别适合电商、广告和设计行业的大规模图像处理需求。它能快速将商品图片中的主体与背景分离,生成带有Alpha通道的透…...
