K8s陈述式资源管理

命令行:kubectl命令行工具

  • 优点:90%以上的场景都可以满足

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

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

声明式:

看到声明式都是k8s当中的yml文件来实现资源管理。

GUI:

图形化工具

kubectl命令的详解,查看,部署,查看pod的情况(详细信息,日志,发布和回滚)

相关命令字典:Kubernetes kubectl 命令表 _ Kubernetes(K8S)中文文档_Kubernetes中文社区

k8s中基本管理信息的查看

查看k8s的版本

查看k8s的版本
kubectl version

k8s中所有资源对象和资源对象的简写

kubectl api-resource

k8s的集群信息

kubectl cluster-info

查看master节点的状态

kubectl get cs

查看node节点的状态

kubectl get pod
查看默认命名空间内的pod信息kubectl get ns
查看当前集群所有的命名空间kubectl get pod -n kube-system
-n来声明查看指定命名空间的资源kubectl get pod -o wide 
查看默认命名空间内pod的详细信息

kubectl get pod -n kube-system
-n来声明查看指定命名空间的资源

kubectl get pod -o wide 查看默认命名空间内pod的详细信息

查看指定命名空间的pod

 kubectl get pod -n kube-system -o wide

kubectl get node
查询节点的信息和状态kubectl get node -o wide
查看node节点的详细信息

如何查看pod的详细信息

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

kubectl get node
查看详细查看
kubectl describle pod myapp-hj-567cb4489c-fq2fd

如果查看指定命名空间的内容,一定要加-n,不加则显示默认

如何查看pod内部的日志

kubectl logs -f myapp-hj-567cb4489c-fq2fdkubectl logs -n kube-system etcd-master01
kubectl create ns zzrkubectl delete ns zzr

kubectl delete pod myapp-hj-567cb4489c-fq2fd
先声明动作,再跟上对象,最后是对象的名称

pod的部署

deployment的部署pod:

陈述式部署:命令行

声明式:yml文件部署

滚动更新:不是一次性的把所有pod全部部署,而是一个一个来。pod的更新时使用,逐步引入新的pod,逐步减少旧的pod。

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

回滚:如果更新有问题,deployment会提供还原点,可以手动还原到未更新前的状态。

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

上述的功能必须是基于deployment创建的服务才可以。绝大多数服务都是通过deployment来进行创建的

daemonset:不能通过命令行创建,只能在yml文件中定义这种创建方式。

后台运行创建,在每一个节点上都创建一个相同方式的,相同版本的容器运行的pod。

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

 kubectl get pod -n zzrkubectl create deployment nginx-hj --image=nginx --replicas=3 -n zzrkubectl get pod -n zzr-n:指定命名空间如果是基于deployment方式创建的pod,或者是daemonset方式创建的pod,是由控制器创建的pod,使用delete删除pod是删不掉的,相当于重启,

不是基于控制器创建的pod,是直接删除

远程进入节点容器

 kubectl exec -it nginx-zzr-6bdd8bcbb5-c5tdv bash

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

kubectl create deployment nginx-zzr --image=nginx --replicas=3 -n zzrkubectl exec -it nginx-zzr-6bdd8bcbb5-8ph4k bash -n zzrroot@nginx-zzr-6bdd8bcbb5-8ph4k:/# echo k8s-nginx > /usr/share/nginx/html/index.htmlroot@nginx-zzr-6bdd8bcbb5-8ph4k:/# echo k8s-nginx > /usr/share/nginx/html/index.html

如果有容器一直卡在“销毁”状态:

kubectl delete pod 容器名 --force --grace-period=0grace-period:表示过度存活期,默认是30秒。可以让pod优雅的结束容器内的进程,然后退出pod=0:立刻停止pod,必须要有force才能实现主要是用于结束卡在销毁状态的pod

对deployment创建的pod进行扩容和缩容

 kubectl scale deployment 容器名 --replicas=所需副本数kubectl scale deployment myapp-hj --replicas=2

如何把服务的service进行发布

service的类型:

kubectl get svc:查看当前命名空间的service

ClusterIP:

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

NodePort:

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

nodeip:nodeport

随即指派,也可以指定30000-32767

基于deployment的创建方式

kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePortkubectl get svc
NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP        24h
myapp-zzr       ClusterIP   10.96.38.125   <none>        30000/TCP      20h
nginx-service   NodePort    10.96.181.60   <none>        80:31989/TCP   2s10.96.232.240  集群内部的IP地址,外部是不可以访问这个IP地址80:对应的是内部的service端口31989:和内部的service的80端口做映射

kubectl expose deployment nginx1 --port=8080 --target-port=80 --name=nginx1-service --type=NodePort--port=8080:service和容器映射的端口,可以是任意
--target-port=80:容器内部的服务端口

如何实现负载均衡

kubectl edit svc nginx-service
修改nodeport端口。

LoadBalancer:

如果service的类型设定为LoadBalancer,映射地址(云平台提供LoadBalancer地址)

公有云服务供应商在云平台上设置的service的场景。外部来访问,实现负载均衡。LoadBalancer这个地址是要付费的。

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

ExternalName:

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

做映射对外提供访问是nodeport

ExternalNmae需要映射

LoadBalancer需要花钱

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

项目的生命周期:

创建------》发布------》更新-------》回滚------》删除

如何回滚:

查看回滚点:

kubectl rollout history deployment nginx1
数字越大,就是最近的操作

如何给回滚点加表示

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

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

如何查看

1.kubectl rollout status deployment nginx1

2.kubectl get pod -w

kubectl rollout history deployment nginx1kubectl get all
查看所有集群的信息

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

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

相关文章

什么是uniapp?用uniapp开发好不好用?

随着移动应用市场的持续发展&#xff0c;开发者们面临着不断增长的需求和多样化的平台选择。在这个背景下&#xff0c;UniApp 应运而生&#xff0c;成为一种跨平台开发框架&#xff0c;为开发者提供了一种高效、简便的方式来开发移动应用程序。利用 UniApp 开发应用程序可以节省…

天擎终端安全管理系统clientinfobymid存在SQL注入漏洞

产品简介 奇安信天擎终端安全管理系统是面向政企单位推出的一体化终端安全产品解决方案。该产品集防病毒、终端安全管控、终端准入、终端审计、外设管控、EDR等功能于一体&#xff0c;兼容不同操作系统和计算平台&#xff0c;帮助客户实现平台一体化、功能一体化、数据一体化的…

Django 文件上传(十二)

当 Django 处理文件上传时&#xff0c;文件数据最终会被放置在 request.FILES 。 查看文档&#xff1a;文件上传 | Django 文档 | Django Django工程如下&#xff1a; 创建本地存储目录 在static/应用目录下创建uploads目录用于存储接收上传的文件 在settings.py 配置静态目…

IDEA/VScode + Git Blame

IDEA IDEA中支持查看每行代码的commit信息&#xff0c;这是靠git blame命令来完成的。 鼠标悬置在上面&#xff0c;可以看到更多信息。 VScode vscode中有相应插件完成类似的工作。 找到一个Git Blame插件&#xff0c;就是专门用来完成这项工作的。 安装完成后&#xff0c;下…

每日一题——LeetCode942

方法一 个人方法&#xff1a; 找规律&#xff0c;碰到I优先放最小的数&#xff0c;碰到D优先放最大的数&#xff0c;将0-n按照从小到大的顺序放入数组保存&#xff0c;碰到I就从数组前面取值&#xff0c;碰到D就从数组后面取值 var diStringMatch function(s) {var arr[],pe…

python gui programming cook,python gui视频教程

大家好&#xff0c;给大家分享一下python gui programming cook&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; Source code download: 本文相关源码 前言 上一节我们实现了明细窗体GUI的搭建&#xff0c;并且设置了查看、修改、添加三种不…

C语言实例_stdlib.h库函数功能及其用法详解

一、前言 C语言作为一种高效、灵活的编程语言&#xff0c;标准库的使用对于开发人员来说是不可或缺的。其中&#xff0c;stdlib.h是C语言中一个重要的标准库头文件&#xff0c;提供了许多常用的函数和工具&#xff0c;以便开发人员能够更加便捷地进行内存管理、字符串处理、随…

大创项目推荐 深度学习中文汉字识别

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xf…

OCP NVME SSD规范解读-4.NVMe IO命令-1

针对NVMe-IO-1到NVMe-IO-14的解读如下&#xff1a; NVMe-IO-1&#xff1a; 设备应支持所有必需的NVMe I/O命令。这是设备能够进行基本数据读写操作的基础要求。NVMe I/O命令包括读、写、删除、擦除等操作&#xff0c;这些是存储设备的核心功能。 NVMe-IO-2&#xff1a; 设备应…

JavaOOP篇----第二十五篇

系列文章目录 文章目录 系列文章目录前言一、一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?二、AnonymousInnerClass(匿名内部类)是否可以继承其它类?是否可以实现接口?三、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?四、Java 中…

[计算机提升] Windows系统软件:管理类

3.6 系统软件&#xff1a;管理类 3.6.1 运行 通过运行程序&#xff0c;在打开输入框中输入名称&#xff0c;按下回车后可以打开相应的程序、文件夹、文档或Internet资源&#xff1a; 3.6.2 命令提示符&#xff1a;cmd 在Windows系统中&#xff0c;cmd是指"命令提示符…

nacos入门篇001-安装与启动

1、下载zip包 我这里下载的是版本2.2.0 Nacos 快速开始 2、修改配置文件 2.1集群模式修改成单例模式 vi startup.sh 2.2 修改数据库配置信息 3、初始化数据库 3.1 创建db名称&#xff1a;db_nacos 3.2 执行mysql-schema.sql 3.3 执行完截图&#xff1a; 4、运行脚本启动 …

听GPT 讲Rust源代码--src/tools(34)

File: rust/src/tools/clippy/clippy_lints/src/collection_is_never_read.rs 文件"collection_is_never_read.rs"位于Rust源代码中的clippy_lints工具中&#xff0c;其作用是检查在集合类型&#xff08;如Vec、HashMap等&#xff09;的实例上执行的操作是否被忽略了…

LT8612UX-HDMI2.0 to HDMI2.0 and VGA Converter with Audio,支持三通道视频DAC

HDMI2.0 to HDMI2.0 and VGA Converter with Audio 1. 描述 LT8612UX是一个HDMI到HDMI和vga转换器&#xff0c;它将HDMI2.0数据流转换为HDMI2.0信号和模拟RGB信号。 它还输出8通道I2S和SPDIF信号&#xff0c;使高质量的7.1通道音频。 LT8612UX支持符合HDMI2.0/ 1.4规范的…

ubuntu python播放MP3,wav音频和录音

目录 一.利用pygame&#xff08;略显麻烦&#xff0c;有时候播放不太正常&#xff09;1.安装依赖库2.代码 二.利用mpg123&#xff08;简洁方便&#xff0c;但仅争对mp3&#xff09;1.安装依赖库2.代码 三.利用sox&#xff08;简单方便&#xff0c;支持的文件格式多&#xff09;…

亚信安慧AntDB数据并行加载工具的实现(一)

1.概述 数据加载速度是评判数据库性能的重要指标&#xff0c;能否提高数据加载速度&#xff0c;对文件数据进行并行解析&#xff0c;直接影响数据库运维管理效率。基于此&#xff0c;AntDB分布式数据库提供了两种数据加载方式&#xff1a; 一是类似于PostgreSQL的Copy命令&am…

thingsboard前端缓存--nginx

thingsboardnginx thingsboard部署到阿里云服务器之后&#xff0c;由于登录界面要发送的文件很大&#xff0c;并且服务器的带宽目前有限&#xff0c;因此配置一个nginx&#xff0c;进行前端页面的一些缓存&#xff0c;参考了https://qianchenzhumeng.github.io/posts/Nginx%E5…

C语言编写Windows程序:组合启用/禁用Telnet客户端,并Telnet指定ip和端口

本文程序是将启用/禁用Telnet客户端的命令进行组合&#xff0c;单个命令的解析可参考文章&#xff1a; 启用/禁用Windows功能中的Telnet客户端的命令_()命令将阻止使用telnintel-CSDN博客 源代码如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include…

【重磅新品】小眼睛科技推出紫光同创盘古系列FPGA开发板套件,盘古200K开发板,紫光同创PG2L200H,Logos2系列

FPGA&#xff0c;即现场可编程门阵列&#xff0c;作为可重构电路芯片&#xff0c;已经成为行业“万能芯片”&#xff0c;在通信系统、数字信息处理、视频图像处理、高速接口设计等方面都有不俗的表现。近几年&#xff0c;随着国家战略支持和产业发展&#xff0c;国产FPGA迎来迅…

单机+内部备份_全备案例

此场景为单机数据库节点内部备份&#xff0c;方便部署和操作&#xff0c;但备份REPO与数据库实例处于同一个物理主机&#xff0c;冗余度较低。 前期准备 配置ksql免密登录(必须) 在Kingbase数据库运行维护中&#xff0c;经常用到ksql工具登录数据库&#xff0c;本地免密登录…