使用Ubuntu22.04搭建k8s环境和一些k8s基础知识

minikube搭建

基本环境

  • 我使用virtualBox构建的ubuntu,选择4核4G内存
  • minikube是一个K8S集群模拟器,可以快速构建一个单节点的集群,用于在本地测试和开发
  • 首先使用官方脚本安装docker
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh

然后参考官方文档安装minikube
安装好了以后启动minikube start报错
在这里插入图片描述

  • 我没有添加用户到docker中,执行sudo usermod -aG docker vboxuser && newgrp docker之后再启动,注意这里要添加你的用户
    在这里插入图片描述
  • 目前看起来比较正常,安装好了以后安装kubectl,这是k8s的一种命令行工具,参考官网
  • 然后kubectl get services可以获取当前服务
  • 这样一个单节点集群就搭建好了

k8s

  • k8s全称是kubernetes,因为k和s中间正好8个字符,所以简写为k8s

概念

  1. Cluster(集群),它是计算、存储和网络资源的集合,kubernetes利用这些资源运行各种基于容器的应用
  2. Master(主节点),它是Cluster的大脑,主要职责是调度,觉醒将应用放在哪里运行。Master运行linux操作系统,可以是物理机或者虚拟机,为了实现高可用,可以运行多个Master
  3. Node(节点),它的职责是运行容器应用,由主节点Master管理,Node负责监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期,Node运行在Linux操作系统上,可以是虚拟机或者物理机
  4. Pod,它是kubernetes的最小工作单元,每个Pod包含一个或多个容器,Pod中的容器会作为一个整体被Master调度到一个Node上运行。Pod提供了比容器更高层次的抽象,将它们封装到一个部署单元中。Kubernetes以Pod为最小单位进行调度、扩展、共享资源、管理生命周期;Pod中的所有容器使用同一个网络namespace,即相同的IP地址和Port空间。它们可以直接用localhost通信,同样的,这些容器可以共享存储,当Kubernetes挂载volume到Pod,本质上是将volume挂载到Pod中的每一个容器。Pod中可能有一个或者多个容器,无论哪种情况,Kubernetes都是对Pod进行管理而非容器,如果想在一个Pod中部署多个容器,那么推荐是这些容器联系必须十分紧密,而且需要直接共享资源
  5. Controller,Kubernetes通常是通过Controller来管理Pod的。Controller中定义了Pod的部署特性,比如有几个副本、在什么样的Node上运行等,为了满足不同业务场景,Kubernetes提供了多种Controller,下面逐一介绍
    (1) Deployment,这是最常用的Controller,它可以来管理Pod的多个副本,并确保Pod按照期望的状态运行
    (2) ReplicaSet实现了Pod的多副本管理,使用Deployment时会自动创建ReplicaSet,也就是说Deployment是通过ReplicaSet来管理Pod的多个副本的,我们通常不需要直接使用ReplicaSet
    (3) DaemonSet,用于每个Node最多只运行一个Pod副本的场景,通常用于运行daemon,也就是守护进程
    (4) StatefuleSet,它能够保证Pod的每个副本在整个生命周期中名称不变,而其他Controller不提供这个功能。当某个Pod发生故障需要删除或者重新启动时,Pod的名称会发生变化,同时StatefuleSet会保证副本按照固定的顺序启动、更新或者删除
    (5)Job用于运行结束就删除的应用,而其他Controller中的Pod通常是长期持续运行
  6. Service,外界通过Service访问Pod,因为Pod频繁的销毁或者重启会导致ip改变,而k8s的Service定义了外界访问一组特定Pod的方式。Service有自己的IP和端口,Service为这些Pod提供了负载均衡,k8s运行与访问Pod分别由Controller和Service执行
  7. Namespace,对于多个用户或者项目组使用同一个k8s Cluster,使用Namespace将他们创建的Controller、Pod等资源分开,Namespace可以将一个物理的Cluster逻辑上划分成多个虚拟Cluster,每个Cluster就是一个Namespace,不通的Namespace里的资源是完全隔离的,可以使用kubectl get namespace查看一下有哪些Namespace

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue——模板引用

目录 访问模板引用​ v-for 中的模板引用​ 函数模板引用​ 组件上的 ref​ 虽然 Vue 的声明性渲染模型为你抽象了大部分对 DOM 的直接操作,但在某些情况下,我们仍然需要直接访问底层 DOM 元素。要实现这一点,我们可以使用特殊的 ref att…

【FPGA】多功能ALU

目录 实验要求 源代码 顶层模块 数据输入模块 ALU运算模块 结果处理模块 扫描数码管模块 扫描数码管顶层 分频器 数码管显示 仿真代码 结构层图 管脚配置 实验板卡:xc7a100tlc sg324-2L,共20个开关 实验要求 通过高低位控制,实现32位数…

Spring boot基础学习之(十八):通过shiro框架使用Mybatis实现用户的认证完整的认证流程

在上几篇文章的基础上,实现本次案例 注意:本篇文章的实现代码在几篇文章都已经详细的讲过了,所以在此篇文章,将不再有理论知识的陈述,更过的流程,如何通过代码实现连接数据库进行认证 添加本次案例所需要的…

00后也太卷了吧!进厂起薪18K,原来面试时候都说了这些......

都说00后躺平了,但是有一说一,该牛的还是牛。 这不,前段时间公司来了个00后,工作都没两年,跳槽起薪18K。本来还以为是个年少有为的技术大牛呢,结果相处一个月下来发现技术也就那样。 问起他是如何做到和老…

NumPy 数组学习手册:6~7

原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 译者:飞龙 六、性能分析,调试和测试 分析,调试和测试是开发过程的组成部分。 您可能熟悉单元测试的概念。 单元测试是程序员编写的用于测试其代码的自动测试。 例如&…

android jetpack Navigation的使用(java)

简介 Navigation通过图形化的方式管理配置页面的切换。 基本使用 添加依赖 implementation androidx.navigation:navigation-fragment:2.5.3implementation androidx.navigation:navigation-ui:2.5.3创建xml文件(添加导航图)——nav_graph.xml nav_…

六个阶段形成CRM销售漏斗,优点有哪些

CRM销售漏斗是反映机会状态以及销售效率的重要的销售管理模型。对企业来说,CRM销售漏斗是一个必不可少的工具。通过销售漏斗,企业可以跟踪和分析客户旅程的每个阶段,并制定相应的销售战略。下面来说说,什么是CRM销售漏斗&#xff…

Nginx

文章目录一、目录结构二、多进程模型和请求基本流程三、基础配置3.1 最小配置文件3.2 servername的多种匹配方式3.2.1完整匹配3.2.2通配符匹配3.2.3通配符结束匹配3.2.4正则匹配四、反向代理4.1 反向代理到外网与内网主机的配置4.2 负载均衡配置五、动静分离六、URLRewrite 伪静…

C-关键字(下)

文章目录循环控制switch-case-break-defaultdo-while-forgetchar()break-continuegotovoidvoid*returnconstconst修饰变量const修饰数组const修饰指针指针补充const 修饰返回值volatilestruct柔型数组union联合体联合体空间开辟问题利用联合体的性质,判断机器是大端还是小端enu…

运行时内存数据区之虚拟机栈——动态链接、方法返回地址与一些附加信息

动态链接(Dynamic Linking)——指向运行时常量池的方法引用 每一个栈帧内部都包含一个指向运行时常量池中该栈帧所属方法的引用。包含这个引用的目的就是为了支持当前方法的代码能够实现动态链接(Dynamic Linking)。比如:invokedynamic指令。…

( “树” 之 DFS) 101. 对称二叉树 ——【Leetcode每日一题】

101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 提示&#xff1a…

聚焦元宇宙赋能产业,打造数字世界,“OFweek2023广州元宇宙产业发展高峰论坛”圆满落幕!

2023年4月12日下午,由广东潮域科技有限公司、OFweek维科网共同主办,OFweek人工智能网承办的“OFweek 2023 广州元宇宙产业发展高峰论坛”在广州保利世贸博览馆1号馆盛大举办。 元宇宙产业相关技术及设备,包括VR/AR、虚拟现实、物联…

springboot配置跨域问题

近期自己搭建项目时,遇到一个跨域问题。我们以前项目解决跨域是在controller上加一个跨域注解CrossOrigin(allowCredentials "true"),很方便。但是在我自己搭建的项目中,启动时竟然报错了,错误如下: When …

不会写代码也能做自动化?推荐一款自动化测试神器

在软件测试这条道路上,大部分的职业技能发展道路都会是纯业务手工测试→自动化测试→性能测试→安全测试/测试开发。 但是却有着一部分人起初进入软件测试这一行看重的就是软件测试属于IT行业,门槛比较低,不需要代码基础。 这就导致了这一部…

第07章_面向对象编程(进阶)

第07章_面向对象编程(进阶) 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 1. 关键字:this 1.1 this是什么? 在Java中,this关键字不算难理解…

<数据结构> 链表 - 单链表(c语言实现)

B.最简单结构的链表——不带哨兵位单链表的实现(关于哨兵位结点) 一、不带哨兵位单链表结点的创建1.1 typedef 链表的数据类型 1.2 结点的结构体创建 二、单链表要实现的功能 三、需要包含的头文件四、函数接口一览为什么有些函数参数传递的是二级指针&a…

【大数据之Hadoop】十一、MapReduce之Shuffle、MapTask、ReduceTask工作机制

1 Shuffle机制 对于排序而言分为两个阶段,MapTask后和ReduceTask前。 2 MapTask工作机制 MapTask并行度由切片个数决定;切片个数由切片大小(切片大小取决于块大小、maxsize(Long的最大值)和minsize(默认为…

设计模式之模板模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、模板模式是什么? 模板模式是一种行为型的软件设计模式,在父类中定义了一个模板算法,只实现…

Android---MVC/MVP/MVVM的演进

目录 一个文件打天下 一个文件--->MVC MVC--->MVP MVP--->MVVM 6大设计原则 完整demo 我们通过"#字棋"游戏来展现MVC-->MVP-->MVVM 之间的演进 一个文件打天下 数据、视图以及逻辑都放在一个 class 里面。而一个 class 里最多 500 行代码&…

GPT-4 和ChatGPT API的定价分析

OpenAI发布了他们的ChatGPT新机器学习模型GPT-4。GPT-4是GPT-3的一大进步,GPT-3是当前ChatGPT免费版本(GPT 3.5 Turbo)所运行的模型的基础,今天我们也来凑个热点,研究一下它们的定价 GPT-4新的功能 GPT-4可以在对话中使用图像,并…