k8s的陈述式管理

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

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

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

相关文章

测试要不要写测试用例(多方面剖析)

前言 最近在网上看到关于这样的一个话题“测试需要写测试用例吗&#xff1f;”&#xff0c;引起了很多同学的讨论。这段话是这样的&#xff1a; 测试用例主要作用&#xff1a;有效地评估软件的质量&#xff0c;测试用例质量体现了测试的质量。 下面摘取一部分同学的观点&…

对比开源大语言模型的自然语言生成SQL能力

背景 NL-to-SQL&#xff08;自然语言到结构化查询语言&#xff09;任务是自然语言处理&#xff08;NLP&#xff09;领域的一个难题。 它涉及将自然语言问题转换为 SQL 查询&#xff0c;然后可以针对关系数据库执行该查询来回答问题。 该任务是 NLP 中的一个专门子领域&#xf…

Java企业电子招投标系统源代码,支持二次开发,采用Spring cloud框架

在数字化采购领域&#xff0c;企业需要一个高效、透明和规范的管理系统。通过采用Spring Cloud、Spring Boot2、Mybatis等先进技术&#xff0c;我们打造了全过程数字化采购管理平台。该平台具备内外协同的能力&#xff0c;通过待办消息、招标公告、中标公告和信息发布等功能模块…

SQL 在已有表中修改列名的方法

文章目录 1. MySQL2. SQL Server3. Oracle / PostgreSQL Question&#xff1a; 假设有一张表 StudentInfo&#xff0c;表中有一个列名是 Student_Name &#xff0c;想要把这个列名改成 StudentName 应该如何操作&#xff1f; 建表语句如下&#xff1a; --建表 if object_id(S…

Java-网络爬虫(一)

文章目录 前言一、网络爬虫1. 介绍2. 爬虫协议3. 法律法规 二、相关知识1. HttpClient2. Jsoup 三、综合案例1. 案例一2. 案例二 四、总结 前言 在大数据时代&#xff0c;信息采集是一项重要的工作&#xff0c;而互联网中的数据是海量的&#xff0c;如果单纯靠人力进行信息获取…

MATLAB习题操作实战

2.1创建一个有7个元素的一维数组&#xff0c;并做如下处理:直接寻访一维数组的第6个元素;寻访一维数组的第1、3、5个元素;寻访一维数组中第4个至最后1个元素;寻访一维数组中大于70的元素。 % 创建一维数组 array [50, 60, 70, 80, 90, 100, 110];% 直接寻访一维数组的第6个元…

【自动驾驶中的SLAM技术】第2讲:基础数学知识回顾

第二讲&#xff1a;基础数学回顾 文章目录 第二讲&#xff1a;基础数学回顾1 几何学1.1 坐标系1.2 坐标变换① 空间向量② 基变换③ 坐标变换④ 总结 1.3 四元数与旋转向量 2 运动学2.1 李群视角2.2 四元数视角2.3 四元数的李代数与旋转向量间的转换2.4 SO(3)t 上的运动学2.5 线…

六、HTML 段落

HTML 可以将文档分割为若干段落。 一、HTML 段落 段落是通过 <p> 标签定义的。 <p>这是一个段落 </p> <p>这是另一个段落</p> 注意&#xff1a;浏览器会自动地在段落的前后添加空行。&#xff08;</p> 是块级元素&#xff09; 二、不…

算法巡练day03Leetcode203移除链表元素707设计链表206反转链表

今日学习的文章视频链接 https://www.bilibili.com/video/BV1nB4y1i7eL/?vd_source8272bd48fee17396a4a1746c256ab0ae https://programmercarl.com/0707.%E8%AE%BE%E8%AE%A1%E9%93%BE%E8%A1%A8.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE 链表理论基础 见我的博…

Linux 命令echo

命令作用 输出一行字符串在shell中&#xff0c;可以打印变量的值输出结果写入到文件在显示器上显示一段文字&#xff0c;起到提示的作用 语法 echo [选项] [字符串] 参数 字符含义-n不自动换行-e解释转义字符-E不解释转义字符 如果-e有效&#xff0c;则识别以下序列&…

2024,这将是量子计算的真正挑战

2023年&#xff0c;一项项量子计算纪录被打破。 谷歌量子AI团队证明了将多个量子比特分组合成为一个逻辑量子比特的纠错方法可以提供更低的容错率。以往的纠错研究随着比特数的增加&#xff0c;错误率会提高&#xff0c;都是“越纠越错”&#xff0c;而这次谷歌首次实现了“越纠…

K8S本地开发环境-minikube安装部署及实践

引言 在上一篇介绍了k8s的入门和实战&#xff0c;本章就来介绍一下在windows环境如何使用minikube搭建K8s集群&#xff0c;好了废话不多说&#xff0c;下面就和我一起了解Minikube吧。 什么是Minikube&#xff1f; Minikube 是一种轻量级的 Kubernetes 实现&#xff0c;可在本…

1688商品详情API:实现商品详情自动化的关键步骤

一、准备工作 在使用1688商品详情API之前&#xff0c;我们需要进行一些准备工作。 注册与登录&#xff1a;首先&#xff0c;你需要在1688的开放平台上注册一个账号并创建一个应用。这样你就可以获得一个API密钥&#xff0c;这是调用API的凭证。阅读API文档&#xff1a;详细阅…

web开发-springboot-web

报错&#xff1a; Failure to find org.springframework.boot:spring-boot-starter-parent:pom:3.2.1.RELEASE in https://maven.aliyun.com/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval …

定制自己的GPTs,及使用ChatGPT/GPT4写程序的注意事项

如何能高效地处理文本、文献查阅、PPT编辑、编程、绘图和论文写作已经成为您成功的关键。而 ChatGPT&#xff0c;作为一种强大的自然语言处理模型&#xff0c;具备显著优势&#xff0c;能够帮助您在各个领域取得突破。 ChatGPT 在论文写作与编程方面也具备强大的能力。无论是进…

安卓在SOA中的运用

安卓在运用SOA研发的过程中&#xff0c;会针对实际情况对研发的架构和流程进行优化&#xff0c;通过优化过的架构和实施方案&#xff0c;不仅可以大大提升了整车开发的效率和灵活行以及功能落地的稳定性&#xff0c;同时也增加了系统的向上兼容性。 目前基于车载SOA系统的研发…

记一个CSS样式实现思路(鼠标聚焦时完整内容,失焦时只显示部分)

效果图 默认状态 鼠标悬浮时 缓慢展示完整内容 实现方法 方法一 使用max-width,当鼠标悬浮时&#xff0c;设置max-width为一个足够大的数值 <div class"flex justify-center align-center mt-20px"><div v-for"(item, key) in ssoList" :key&q…

HTML----JavaScript操作对象BOM对象

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 本章要求 了解BOM模型掌握BOM模型实际应用 一.BOM模型概述 BOM&#xff08;浏览器对象模型&#xff09;是JavaScript中的一个重要概念&#xff0c;它提供了一组用于控制浏览器窗口和页面内容的…

基于 ESP32-C3 开启 Flash 加密和安全启动并进行 OTA 测试

软件&#xff1a; esp-idf v5.1.2 硬件&#xff1a; ESP32-C3 board 1. 首先&#xff0c;准备一个明文固件 hello-world.bin 基于 esp-idf-v5.1.2\examples\get-started\hello_world 例程&#xff0c;使用如下指令&#xff0c;直接编译&#xff0c;获取明文固件 hello-worl…

大数据时代快速获取数据方法,爬虫技术理论剖析与实战演练

一、教程描述 人工智能和机器学习&#xff0c;都离不开数据&#xff0c;若是没有数据&#xff0c;再好的算法&#xff0c;再好的模型&#xff0c;都没有用武之地。数据不仅是指现成的数据库&#xff0c;更加是指每天增加的海量互联网数据。本套教程将通过多个实战项目&#xf…