Kubernetes(k8s) 笔记总结(二)

news2025/1/23 22:40:03

提示:针对kubernetes的工作均衡学习。

文章目录

  • 1. Kubernetes 创建资源方式
  • 2. Kubernetes 操作NameSpace
  • 3. Kubernetes的 Pod应用
    • 3.1 Pod的 解释
    • 3.2 通过命令行来创建一个pod
    • 3.3 配置文件方式创建一个Pod
    • 3.4 dashboard 可视化操作Pod
    • 3.5 针对Pod的一些细节操作
    • 3.6 Pod的 多容器操作
  • 4. Kubernetes的 使用Deployment部署应用
    • 4.1 Deployment的 作用 和 自愈
    • 4.2 Deployment的 多副本能力
    • 4.3 Deployment的 扩缩容能力
    • 4.4 Deployment的 自愈&故障转移能力
    • 4.5 Deployment的 滚动更新
    • 4.6 Deployment的 版本回退
  • 5. Kubernetes的 工作负载

1. Kubernetes 创建资源方式


k8s资源创建方式:

  • 命令行,直接通过k8s对应命令行进行创建。
  • YAML,通过yaml配置文件,然后在执行kubectl apply -y xxx来应用的方式。

在这里插入图片描述

2. Kubernetes 操作NameSpace


名称空间:是对集群资源进行隔离划分。默认只隔离资源,不隔离网络。

在这里插入图片描述

在dashboard中可以看到一些名称空间:
在这里插入图片描述

方式一:通过命令行操作名称空间。

# 1. 查看名称空间
kubectl get ns

# 2. 查看pod应用对应的名称空间
kubectl get pods -A
# 不带参数A仅仅查询default默认名称空间的内容。
kubectl get pods 
# -n参数:指定名称,仅查看对应name的pod应用信心。

# 3. 创建名称空间:
kubectl create ns xxx
# 4. 删除名称空间:
kubectl delete ns xxx

方式二:使用yaml配置文件创建。

创建一个名称空间的yaml文件配置,如下:

  • 之后通过 kubectl apply -y xxx.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: hello

删除方式有两种:

# 1. 通过delete ns来命令删除
kubectl delete ns xxx
# 2. 通过delete -f 依据对应配置文件进行删除。
kubectl delete -f xxx.yaml

在这里插入图片描述

3. Kubernetes的 Pod应用

3.1 Pod的 解释


k8s的pod就像docker中的容器。

Pod:一个Pod可以运行多个docker容器,Pod是kubernetes中应用的最小单位。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 通过命令行来创建一个pod


# 1. 通过命令行创建一个pod应用(默认创建在了默认名称空间)
kubectl run mynginx --image=nginx

# 2. 查看default名称空间的Pod
kubectl get pod 
# 3. 查看pod的描述
kubectl describe pod Pod名字
# 4. 删除某名称空间下的pod,默认是default名称空间。
kubectl delete pod Pod名字 -n defautl
# 也可以删除多个。

# 5. 查看Pod的运行日志
kubectl logs Pod名字

kubectl describe命令:
在这里插入图片描述
之后,通过docker ps也能看到,毕竟本质还是docker容器:
在这里插入图片描述

3.3 配置文件方式创建一个Pod


一个Pod创建的配置文件形式如下:

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: mynginx
  name: mynginx
#  namespace: default
spec:
  containers:
  - image: nginx
    name: mynginx
# 1. 应用配置文件,创建pod
kubectl apply -f pod.yaml
# 2. 删除对应pod
kubectl delete -f pod.yaml 

3.4 dashboard 可视化操作Pod


dashboard 操作如下:
在这里插入图片描述
在这里插入图片描述

3.5 针对Pod的一些细节操作


可以通过以下命令进行更加详细的操作和测试:

# 假如:已经添加了一个nginx镜像的pod
# 1. 查看pod应用列表,对应的更加详细的信息(尤其是IP地址)
kubectl get pod -owide
# NAME      READY   STATUS    RESTARTS   AGE   IP              NODE        NOMINATED NODE   READINESS GATES
# mynginx   1/1     Running   0          85s   192.168.36.69   k8s-node1   <none>           <none> 


# 2. 使用Pod的ip+pod里面运行容器的端口就可以进行访问(nginx默认就是80)
curl 192.168.36.69
# 集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Pod

在这里插入图片描述

如果像进入Pod内部进行操作:

# 与docker的命令有点不同
kubectl exec -it mynginx -- /bin/bash

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 Pod的 多容器操作


多容器的yaml配置如下操作:

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: myapp
  name: myapp
spec:
# 创建多个容器:
  containers:
  - image: nginx
    name: nginx
  - image: tomcat:8.5.68
    name: tomcat

在这里插入图片描述

之后,等待下载完成即可:
在这里插入图片描述


同样刚创建的Pod也会被分配IP,并且通过对应端口来进行访问:
在这里插入图片描述


如果出现问题,可以通过logs日志查看:

  • 也可以kubectl logs通过命令行操作,查看问题。
    在这里插入图片描述

4. Kubernetes的 使用Deployment部署应用

4.1 Deployment的 作用 和 自愈


Deployment部署的作用:控制Pod,使Pod拥有多副本、自愈、扩缩容等能力。

# 1. 创建一个Pod
kubectl run mynginx --image=nginx
# 2. 创建一个应用deployment部署。部署的名字叫做:mytomcat
kubectl create deployment mytomcat --image=tomcat:8.5.68
# 创建一个部署后,部署会自动创建一个Pod

# 3. 测试监听命令可以使用如下:
watch -n 1 kubectl get pod # 来监听删除效果。

# 4. 只有删除对应的deployment部署,才行
kubectl delete deploy mytomcat

在这里插入图片描述
简而言之,就是不怕宕机,如果出现问题了,k8s的deployment会自动重新创建一个,也就是所谓的自愈能力。

4.2 Deployment的 多副本能力


deployment命令行添加:

# --replicas=3就是代表复制上三份,deployment的多副本效果。
kubectl create deployment my-dep --image=nginx --replicas=3

在这里插入图片描述
dashboard添加:
在这里插入图片描述

配置文件添加:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: my-dep
  name: my-dep
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-dep
  template:
    metadata:
      labels:
        app: my-dep
    spec:
      containers:
      - image: nginx
        name: nginx

4.3 Deployment的 扩缩容能力


在这里插入图片描述

# 1. 先部署3个
kubectl create deployment my-dep --image=nginx --replicas=3
# 2. 扩容到5个
kubectl scale --replicas=5 deployment/my-dep
# 3. 缩容到3个
kubectl scale --replicas=2 deploy/my-dep

还可以通过修改deploy部署配置文件来实现扩容、缩容:

# 通过修改配置文件来操作
kubectl edit deploy my-dep

还可以通过dashboard来操作:
在这里插入图片描述

4.4 Deployment的 自愈&故障转移能力


自愈:
在这里插入图片描述
故障转移:
在这里插入图片描述

提示:

# -w 参数也是监控 , 这个监控是k8s提供的
kubectl get pod -w

4.5 Deployment的 滚动更新


在这里插入图片描述

简而言之,就是开一个新版本,等新版本启动成功后,就杀死老版本。这样就完成了版本的迭代了。也就是不停机维护的效果。

# 可以查看yaml文件的一个配置
kubectl get deploy my-dep -oyaml
# 通过使用set来进行版本更新
kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
# 查看set版本更新是否成功
kubectl rollout status deployment/my-dep

在这里插入图片描述

4.6 Deployment的 版本回退


# 1. 查看版本的 历史记录
kubectl rollout history deployment/my-dep

# 2. 查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2

# 3. 回滚(回到上次)
kubectl rollout undo deployment/my-dep

# 4. 回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2

回滚也是一个滚动更新的过程。

5. Kubernetes的 工作负载


除了Deployment,k8s还有 StatefulSet 、DaemonSet 、Job 等 类型资源。我们都称为 工作负载。

Deployment:无状态应用部署,例如:微服务,提供多副本等功能。

  • 无状态可以理解为没有数据存储的效果。

StatefulSet:有状态应用部署,例如:redis,mysql,提供稳定的存储、网络等功能。

  • 有状态可以理解有稳定存储等效果的。

DaemonSet:守护型应用部署,例如:日志收集组件,每个机器都要运行。有且仅有一份。

Job/CronJob:定时任务部署,例如:垃圾清理组件,可以在执行时间运行。

官方地址:https://kubernetes.io/zh/docs/concepts/workloads/controllers/

在dashboard也能操作:
在这里插入图片描述

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

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

相关文章

如何评估PMO (项目管理办公室)的实施效果?

使用有效的组织战略、方法和技术&#xff0c;可以成功启动并制度化企业范围的PMO (项目管理办公室)。 一个企业范围内的PMO可以使用成熟的技术启动。 但你应该开发和使用适当的评估工具&#xff0c;以确定你的PMO实施的项目管理过程的有效性。这些工具可以包括正式的管理评估…

黑马学ElasticSearch(四)

目录&#xff1a; &#xff08;1&#xff09;RestClient操作文档-新建文档 &#xff08;2&#xff09;RestClient操作文档-查询文档 &#xff08;3&#xff09;RestClient操作文档-更新文档 &#xff08;4&#xff09;RestClient操作文档-删除文档 &#xff08;5&#xff…

包管理工具详解npm 、 yarn 、 cnpm 、 npx 、 pnpm

1、包管理工具npm &#xff08;1&#xff09;包管理工具npm&#xff1a; Node Package Manager&#xff0c;也就是Node包管理器&#xff1b;但是目前已经不仅仅是Node包管理器了&#xff0c;在前端项目中我们也在使用它来管理依赖的包&#xff1b;比如vue、vue-router、vuex、…

数据分析-深度学习 Day4

本专栏主本专栏主要介绍和讲解李宏毅老师最新2021春季机器学习课程相关内容&#xff0c;如有记录错误&#xff0c;或理解不对&#xff0c;欢迎留言批评指正...youtube课程地址&#xff1a;&#xff08;实时更新&#xff09;ML 2021 Springspeech.ee.ntu.edu.tw/~hylee/ml/2021-…

sxs卡数据怎么恢复?分享三种恢复方案

说起sxs卡&#xff0c;你们是否有所了解呢&#xff1f;sxs卡具有很好的传输性能&#xff0c;能够存储照片和视频数据&#xff0c;主要被放置在索尼XDCAM EX型摄像机上。而在使用sxs卡设备过程中&#xff0c;难免和其他设备一样&#xff0c;容易出现数据丢失情况。而如果丢失的是…

在虚拟机上安装win11

虚拟机版本呢vmware16win11镜像&#xff1a;zh-cn_windows_11_business_editions_version_22h2_updated_dec_2022_x64_dvd_0b26ca48.isoPE镜像&#xff1a;EasyU_v3.7.iso 通过优启通工具制作两个光驱&#xff0c;第一个选pe的iso&#xff0c;第二个选win11的iso点击开启虚拟机…

(day5) 自学Java——ArrayList集合

目录 1. ArrayList 2.集合练习 (1)添加字符串和整数&#xff0c;并遍历 (2)添加学生对象并遍历 (3)查找用户是否存在 (4)返回多个数据 1. ArrayList 数组有个致命的弱点&#xff0c;那就是创建时需要指定其长度&#xff0c;并且在使用时长度不可改变。 在Java教程中知道…

[ 数据结构 ] 图(Graph)--------深度优先、广度优先遍历

0 基本介绍 为什么要有图? 无论是线性表还是树结构,局限于表示一个直接前驱和一个直接后继的关系(一对一/一对多),当我们需要表示多对多的关系时&#xff0c; 这里我们就用到了图 节点间的连接成为边,节点称为顶点,一个顶点到另一个顶点所经过的边叫路径,边有方向的叫有向图,…

js逆向-某动网演出数据获取

声明 本文仅供学习参考&#xff0c;如有侵权可私信本人删除&#xff0c;请勿用于其他途径&#xff0c;违者后果自负&#xff01; 如果觉得文章对你有所帮助&#xff0c;可以给博主点击关注和收藏哦&#xff01; 前言 目标网站&#xff1a;aHR0cHM6Ly93d3cuc2hvd3N0YXJ0LmNv…

如何远程连接Linux系统服务器

Linux服务器远程连接方法这里给大家普及一下Linux服务器&#xff0c;是一台安装Ubuntu系统的工作站。这类服务器大部分用于程序员开发编程使用&#xff0c;说简单点就是拿来敲代码的。通常需要借助远程连接工具来连接Linux远程服务器&#xff0c;如xshell&#xff1b;putty&…

PostgreSQL实战之物理复制和逻辑复制(五)

目录 PostgreSQL实战之物理复制和逻辑复制&#xff08;五&#xff09; 5 流复制主备切换 5.1 判断主备角色的五种方法 5.2 主备切换之文件触发方式 5.3 主备切换之pg_ctl promote方式 5.4 pg_rewind PostgreSQL实战之物理复制和逻辑复制&#xff08;五&#xff09; 5 流…

Vue作业

文章目录作业1作业2作业3作业4作业1 作业&#xff1a;需要用data保存&#xff1a;商品名、单价、数量&#xff0c;然后显示到页面上&#xff0c;点击按钮可以变更数量&#xff0c;最小值1&#xff0c;减按钮不可用&#xff0c;最大值20&#xff0c;隐藏按钮 总价格应该是 单价…

酒业“新物种”的新思维:用户、品牌、模式

【潮汐商业评论/原创】中国的酒文化源远流长。古人有一万种喝酒的理由&#xff0c;或聚会畅饮&#xff0c;或独酌解忧&#xff0c;而餐桌是酒最常出现的地方。如今&#xff0c;与酒相关的场景日益多元&#xff0c;往往洋溢着青春的气息。一顶帐篷&#xff0c;三两好友围坐&…

一、数据仓库基础理论

数据仓库基础理论一、数据仓库1、概念2、数据仓库分层结构3、为什么要分层二、数据集市三、数据湖1、数据湖和数据仓库一、数据仓库 1、概念 数据仓库&#xff08;Data Warehouse, DW&#xff09;&#xff1a;一个面向主题的、集成的、非易失的、反应历史变化的、用来支持企业…

哈弗品牌发布新能源越野新品类车型:H-DOG

1月6日&#xff0c;哈弗品牌新能源车型哈弗H-DOG在海口新能源车展亮相。哈弗H-DOG针对用户5天通勤、2天郊野、e享时刻三大使用场景打磨&#xff0c;满足用户“可城、可野、可电”的用车需求&#xff0c;是哈弗品牌在新能源轻越野上的全新探索。• 哈弗H-DOG采用了全新的潮野力量…

Sentinel降级策略-RT、异常比例、异常数

Sentinel降级—RT 1&#xff09;RT&#xff1a;平均响应时间&#xff1b;配置平均响应时间为200ms&#xff0c;200ms内就要将请求处理完成&#xff1b; 2&#xff09;注意&#xff1a;Sentinel 默认统计的 RT 上限是4900ms&#xff0c;超出此阈值会算作 4900ms &#xff0c;若…

【PyTorch深度学习实践】05_逻辑斯蒂回归

文章目录1. 分类问题相关数据集1.1 MINIST1.2 CIFAR-102. 回归(Regression)VS分类(Classification)2.1 模型对比2.2 损失函数对比2.3 实现代码对比3. 完整代码之前使用线性回归解决的都是**回归&#xff08;预测&#xff09;**问题&#xff0c;逻辑斯蒂回归模型可以用来解决另一…

MySQL数据库:数据基本的增删改查

一、查询数据 1.查询表内所有数据 select * from 表名; 2.指定列查询 select 字段1, 字段2, …… from 表名; 3.查询字段为表达式 select 表达式1, 表达式2,…… from 表名; 4.起表名查询 如果对查询结果的字段名不满意&#xff0c;还可以自己进行取别名。 select 字段1 …

#Reading Paper# 【序列推荐】Session-based Recommendation with Graph Neural Networks

#论文题目&#xff1a;【序列推荐】SR-GNN: Session-based Recommendation with Graph Neural Networks&#xff08;SR-GNN:基于会话的图神经网络推荐&#xff09; #论文地址&#xff1a;https://arxiv.org/abs/1811.00855 #论文源码开源地址&#xff1a; https://github.com/C…

如何设置Windows文件夹背景为黑色?(其实就是“深色模式”)

大家好。我们直接进入正题! 如何把Windows文件夹背景改成黑色&#xff1f;就像下面这样。 第一步&#xff1a;打开 “个性化” 设置界面 这里介绍两种方法&#xff1a;(1)在电脑桌面 右键——》 个性化 &#xff0c;如下图 (2)点击 开始——》设置 ——》个性化 &#xff0c;如…