k8s的陈述式管理

news2025/1/12 9:03:14

k8s的陈述式管理:

所谓的陈述式管离=也就是命令行工具

优点:90%以上都可以满足

对资源的增删查比较方便,对改不是很友好

缺点:命令比较冗长,复杂,难记

声明式:

k8s当中的YAML文件来实现资源管理----声明式

GUI:图形化工具管理

今天的主要任务:

1.kubectl命令的详解 查看 部署 查看pod的情况(详细信息和日志以及如何发布和回滚)

k8s命名行大全:

http://docs.kubernetes.org.cn/683.html

查看版本

kubectl version

查看所有api的资源对象名称

kubectl api-resources

查看k8s集群的信息

kubectl cluster-info

查看master节点的状态

kubectl get cs

查看默认命名空间的内的pod信息

kubectl get pods

查看当前集群所有的命名空间

kubectl get ns

查看指定命名空间内的pod,需要加-n 后面更上命名空间的名称

kubectl get pod -n kube-system

查看默认命名空间内pod的详细信息

kubectl get pod -o wide

查询节点信息和状态

kubectl get nodes

查看node节点的详细信息

kubectl get nodes -o wide

查看已经部署好的pod信息

kubectl get pod

查看已经部署好的pod的详细信息

kubectl describe pod nginx-5f447ccb-9vkjp (pod名)

查看指定命名空间的pod

kubectl describe pod -n kube-system etcd-master01

如何查看pod内部的日志

kubectl logs nginx-5f447ccb-9vkjp

动态查看

kubectl logs -f nginx-5f447ccb-9vkjp

如何创建,删除命名空间

如何删除pod

先声明动作,再删除

如何对pod部署

Deplyoment的部署pod:

陈述式部署:命令行

声明式:YAML文件部署

滚动更新:不式一次性的包所有pod全部部署,而是一个一个来,pod的更新时使用,他的状态是逐渐的引用新的pod,逐渐的减旧的pod

自我修复,如果有pod节点发生故障,deplayment会自动启动新的pod来进行代替

回滚:如果更新有问题,deployment会手动还原到未更新前的状态

扩容和缩容:deployment可以随时调整pod的数量。以适应流量的变化

上述的功能必须是基于deployment创建的服务才可以,绝大多数的pod创建都是deployment

查看当前集群当中默认命名空间里面的deployment创建的

kubectl get deployments.apps

daemonsets.apps 方式的创建方式

kubectl get daemonsets.apps

kubectl get daemonsets.apps -n kube-system

daemonsets.apps:不能通过命令行的方式创建,只能在YAML文件当中创建方式,后台运行创建,在每一个节点上都创建一个相同方式的,相同版本的容器运行的pod

一般都是依赖环境和重要组件,一般也不会对这些资源进行操作

演示指定命名空间创建

kubectl create ns kobe

kubectl create deployment nginx-kobe --image=nginx --replicas=3 -n kobe

kubectl get pod -n kobe

如何删除pod

注意:如果是deployment方式创建的pod,或者是daemonset方式创建的pod,是由控制器创建的pod,使用delete删除pod是删不掉的,相当于重启pod

那怎么删除呢

kubectl delete deployments.apps nginx-wdf

指定命名空间删除

kubectl delete -n kobe deployments.apps httpd-kobe

基于deployment方式创建的pod,一旦删除deployment,基于这个deployment创建的pod都会被删除

查看创建方式

kubectl get deployments.apps nginx

远程进入节点容器:

kubectl get pod -o wide

kubectl exec -it nginx-5f447ccb-vd8w8 bash

Docker的exec只能在本机内部使用,不能跨主机,kubectl exec可以跨主机进入容器

指定命名空间进入容器

kubectl create deployment nginx-kobe1 --image=nginx -n kobe

kubectl get pod -n kobe

kubectl exec -it -n kobe nginx-kobe1-7bfdff54bf-p55nr bash

快速结束容器

 kubectl delete pod nginx-kobe-79f486588-c26qn --force --force --grace-period=0

grace-period=0:表示过渡的存活期,默认是30秒,可以让容器优雅的结束容器内的进程,然后退出pod,等于0表示立刻退出,但是前面必须要有--force

注意:还是没有根除,还是等于重启,主要是用于结束卡在销毁状态的pod,为了就是快速重启,节约时间

如何对的deployment创建的扩缩容replicas指定副本数

 kubectl scale deployment nginx-kobe --replicas=5

 kubectl scale deployment nginx-kobe --replicas=1

创建时并没有指定副本数,后续也可以对他的副本数进行修改,仅限于deployment模式

如何把服务的service进行发布:

kubectl create deployment nginx --image=nginx:1.10 --replicas=3

Service的类型;

kubectl get service -n kube-system 指定查看

第一种类型ClusterIP:

创建service的默认类型,提供一个集群内部的虚拟IP地址,这是service的默认类型,通过这个虚拟IP可以直接访问pod的资源,仅限于内部访问,无法对外进行访问

第二种类型NodePort(常用):

会在每个node节点上都开放一个相同的端口,外部可以通过node的本机IP+端口,访问pod资源,这是集群外部访问service资源的一种方式,四层代理方式

Nodeip:nodeport

随机指派,也可以指定,范围在30000-32767

如和创建呢,还是基于deployment创建pod

kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort

--port=80 servicce集群的端口(集群内部访问的端口,可以改动)

--target-port=80  pod内部容器的端口(一般是固定的)

[root@master01 ~]# kubectl get svc

NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE

kubernetes      ClusterIP   10.96.0.1       <none>        443/TCP        24h

nginx-service   NodePort    10.96.114.241   <none>        80:30691/TCP   10s

10.96.114.241 :集群内部的IP地址,外部不可用访问这个IP地址的

80:对应的是内部的service的端口

30691:和内部service的80端口做映射

解析图:

实现负载均衡:

分别进入三个容器

kubectl exec -it nginx-6799fc88d8-dz5g4 bash

这只是内部访问端口

外部访问端口,本机IP+端口

改端口:

kubectl get service

第三种模式LoadBalancer:

如果service的类型设定为LoadBalancer,映射地址(云平台提供LoadBalancer的地址),这种用法仅用于公有云服务供应在云平台上设置的service的场景,外部来访问,实现负载均衡,LoadBalancer这个地址是要付费的,不是免费的

创建好了service,指定类型为LoadBalancer,会给你提供一个地址来代理pod内部的IP地址

演示

kubectl expose deployment nginx1 --port=8080 --target-port=80 --name=nginx1-service --type=LoadBalancer

内部访问没问题

第四种类型ExternalName:

DNS映射,给service分配一个域名,通过域名来访问后端pod资源,ExternalName的service类型,不能提供负载均衡,必须要设置一个ExternalName的地址可以实现

配置文件演示:

kubectl get service

做映射

访问测试

不能实现轮询,不能提供IP地址,只能通过映射访问

更新和回滚以及发布方式:

项目的生命周期:

创建(已演示)------发布(已演示)------更新------回滚--------删除

//获取修改模板

kubectl set image --help

//查看当前 nginx 的版本号

curl - I 20.0.0.71:30691

//将nginx 版本更新为 1.15 版本

kubectl set image deployment/nginx nginx=nginx:1.15

动态查看更新情况

kubectl get pod -w

回滚:

查看还原点:

 kubectl rollout history deployment nginx1

数字的大小决定了距离上次操作远近,数字越大,就是你最近一次的操作

#加入record可以现在变更的原因:

kubectl set image deployment nginx1 nginx=nginx:1.15 --record

回到还原点:

kubectl rollout undo deployment nginx1 --to-revison=1

查看还原状态

Kubectl rollout status deployment nginx1

动态查看更新情况

kubectl get pod -w

查看全部

kubectl get all -o wide

kubectl get all -o wide -n kube-system

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

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

相关文章

MySQL之视图案例

目录 一.视图1.1 含义1.2 操作 二.案例三.思维导图 一.视图 1.1 含义 虚拟表&#xff0c;和普通表一样使用 1.2 操作 1.创建视图 create view 视图名 as 查询语句&#xff1b; 2.视图的修改 方式一&#xff1a; create or replace view 视图名 as 查询语句 方式二&#x…

初始py和py开发工具

前言&#xff1a;上一章节给友友们讲解了如何安装py环境&#xff0c;这一章节就来练习一下如何写py的程序以及注意事项。 目录 一.你好世界 1.因为主播liunx用习惯的缘故所以所有的操作都在liunx上面执行&#xff0c;下面我们来看怎么写py的程序&#xff0c; 1.1首先打开liu…

欧系数学一眼假系列7.“欧拉常数”是弥天大谎

数学界一直在干一件令人恶心的丑事&#xff1a;明明我求的是Σ1/708249541360742487&#xff0c;它给的答案却是ln7082495413607424870.5772156649(欧拉常数&#xff0c;通常以C表示)&#xff0c;门外汉皆以为Σ1/n→∞是正经结论&#xff0c;全然不知它无关Σ1/n&#xff0c;而…

Java集合教程

文章目录 1、集合体系结构2、单列集合2.1 Collection2.1.1 Collection集合概述和使用2.1.2 自定义对象比较2.1.3 Collection集合的遍历2.1.3.1 迭代器遍历2.1.3.2 增强for2.1.3.3 lambda表达式 2.2 List2.2.1 List集合的概述和特点2.2.2 List集合的特有方法2.2.3 List集合的两个…

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-1+2课程介绍+电路系统建模、基尔霍夫定律

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-12课程介绍电路系统建模、基尔霍夫定律 1. 课程介绍2. 电路系统建模、基尔霍夫定律 1. 课程介绍 2. 电路系统建模、基尔霍夫定律 基本元件&#xff1a; 电量 库伦&…

SD卡变成了RAW怎么修复?

SD卡变成RAW格式是一种常见的故障&#xff0c;可能是由于多种原因导致的。本文将详细分析SD卡变成RAW的原因&#xff0c;并探讨相应的解决方法。首先&#xff0c;我们需要了解SD卡变成RAW的原因。常见的原因包括&#xff1a;文件系统损坏、存储芯片故障、病毒攻击等。这些原因可…

CentOS 7 安装 PPTP

环境&#xff1a; 阿里云试用机&#xff1a; 外网IP&#xff1a;114.55.80.150 内网IP&#xff1a;172.28.11.92 一、服务器安装 PPTP 1、安装 yum install epel-release -y 2、安装pptp yum install pptpd iptables-services -y 3、修改配置 vim /etc/pptpd.conf# 最…

uniapp 【专题详解 -- 时间】云数据库时间类型设计,时间生成、时间格式化渲染(uni-dateformat 组件的使用)

云数据表的时间类型设计 推荐使用时间戳 timestamp "createTime": {"bsonType": "timestamp","label": "创建时间&#xff1a;" }时间生成 获取当前时间 Date.now() .add({createTime: Date.now() })时间格式化渲染 下载安…

K9、希喂、SC哪款主食冻干适合全体质猫咪?深入对比,真实测评报告

随着越来越多的人开始重视科学养猫的方法&#xff0c;铲屎官们对猫咪主食的营养和健康要求也越来越高。主食冻干作为一种模拟猫咪原始猎物模型配比的食品&#xff0c;因其低温加工工艺而受到广大猫奴的喜爱。这种食品更符合猫咪的饮食天性&#xff0c;相比起高淀粉、碳水化合物…

技术学习|CDA level I 业务分析方法

业务分析方法有三个主要构成部分&#xff1a;业务指标分析、业务模型分析及业务分析方法。 业务指标分析是发现业务问题的核心方法&#xff1a;用于通用指标和场景指标的计算及分析方法&#xff0c;以及指标体系的设计与应用方法。业务模型是从一系列业务行为中抽象出来的信息…

(2023|NIPS,时空专家混合去噪,边缘检测及监督)RAPHAEL:通过大量混合的扩散路径生成文本到图像

RAPHAEL: Text-to-Image Generation via Large Mixture of Diffusion Paths 公和众和号&#xff1a;EDPJ&#xff08;添加 V&#xff1a;CV_EDPJ 或直接进 Q 交流君羊&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 3. 方法 3.1 空间-MoE 和时间-MoE 3.2 边缘…

[Flutter]WebPlatform上运行遇到的问题总结

[Flutter]WebPlatform上运行遇到的问题总结 目录 [Flutter]WebPlatform上运行遇到的问题总结 写在开头 正文 Q1、file_version_info.dart Q2、不兼容判断 Q3、跨域问题 Q4、flutter clean &#xff0c;无法删除build文件夹 其他 写在结尾 写在开头 Flutter项目已能在…

【Linux 内核源码分析】关于Linux内核源码目录结构

Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面&#xff0c;使程序更具有可读行。 使用Source Insight打开源码&#xff0c;如下图所示&#xff0c;可以看到源码是树形结构。 目录含义描述arch存放与体系结构相关的代码&#xff0c;包括不同硬件平台的特定代…

linux(mysql下载以及操作)

下载mysql 查看镜像 docker images 下载MySQL镜像 mysql/mysql-server:8.0 创建文件夹&#xff0c;创建配置文件和放数据文件 mkdir -p /data/mysql/{conf,,data} 创建配置文件 my.cnf 写入配置文件my.cnf的代码 [client] default-character-setutf8[mysql] de…

WEB 3D技术 three.js 包围盒

本文 我们来说 包围盒 如下图所示 就是一个方框 框住我们整个物体 它的作用 比较明显的就是 当用户点击某个物体 我们用包围盒套住 用户能够很直观的知道自己当前选中的物体是哪一个 还有就是 比如 我们物体做的比较复杂 是非常多顶点构建的 那么 我们判断它有没有和其他物体…

轻松玩转书生·浦语大模型趣味Demo

轻松玩转书生浦语大模型趣味Demo 大模型及InternLM模型介绍InternLM模型全链路开源 InternLM-Chat-7B智能对话Demo模型介绍模型部署webDemo运行 Lagent智能体工具调用DemoLagent介绍 浦语灵笔图文创作理解Demo通用环境配置模型下载 大模型及InternLM模型介绍 人工智能领域中 参…

LauraGPT

git&#xff1a;https://github.com/alibaba-damo-academy/FunCodec 文章目录 model archAudioTokenizermodel init model arch text-embedding 用千问的模型参数初始化&#xff1b;AudioEncoder用asr-conformer的参数初始化&#xff1b;所有的参数都参与更新&#xff0c;除了C…

Squish创建测试脚本

1、打开Squish IDE 2、创建TestSuit File-New TestSuit&#xff0c;输出TestSuit Name,选择路路径&#xff0c;点击Next按钮&#xff0c;ToolKit选择Qt,Scripting Language选择Python&#xff0c;选择AUT&#xff08;Application Under Test&#xff09;&#xff0c;点击Fish完…

第10课 实现多对多音视频会议功能

在前两节课&#xff0c;我们将推流端与播放端合并为一对一音视频聊天功能并解决了关键的回声问题&#xff0c;在此基础上&#xff0c;我们可以进一步改进实现多对多的视频会议功能。 1.备份demo9并修改demo9为demo10。 2.打开工程文件&#xff0c;修改mfc为四分屏画面。 界面…

Typora设置 “图片自动保存到文档对应目录下” 的方法(亲测有效)

众所周知&#xff0c;typora是程序员非常喜爱的一款笔记软件&#xff0c;但它也有缺点 如&#xff1a;当我们要将旧电脑的写好的文件转移到新的电脑上时&#xff0c;如果简单的将图片文件放在一起&#xff0c;那么文件就会不好对应&#xff0c;那么如何让笔记中所包含的照片自…