Kubernetes(k8s)学习笔记(四)--入门基本操作

本文通过kubernetes部署tomcat集群,来学习和掌握kubernetes的一些入门基本操作

前提条件

1.各个节点处于Ready状态;

2.配置好docker镜像库(否则会出现ImagePullBackOff等一些问题);

3.网络配置正常(否则即使应用发布没问题,浏览器访问不了)。

实现的过程

一.编写一个tomcat发布的yaml文件tomcat-9.0-deployment.yaml,内容类似下面这样的:

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: tomcat9name: tomcat9
spec:replicas: 3 #指定集群的节点个数selector:matchLabels:app: tomcat9template:metadata:labels:app: tomcat9spec:containers:- image: tomcat:9.0.85-jre8name: tomcat# 启动时自动复制 webapps.dist 内容到 webappslifecycle:postStart:exec:command: ["/bin/sh", "-c", "cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/"]ports:- containerPort: 8080
--- # 使用三个短横线分隔不同的配置,一个yaml文件可以配置多个
apiVersion: v1
kind: Service
metadata:labels:app: tomcat9name: tomcat9
spec:ports:- port: 80protocol: TCPtargetPort: 8080nodePort: 30080  # 指定易记端口,对外访问端口selector:app: tomcat9type: NodePortexternalTrafficPolicy: Cluster

二.使用yaml文件部署tomcat集群

kubectl apply -f ./tomcat-9.0-deployment.yaml

 执行后输出:deployment和service created的信息

三.验证应用的发布

使用下面的命令,查看所有资源情况

kubectl get all 

 

从上图可以看到,3个tomcat节点都处于运行状态,对外访问端口是30080。

然后使用浏览器访问,出现tomcat的欢迎页面,注意这里的IP不是CLUSTER-IP,而是前面文章配置时获得的ip。可使用这个命令查看启动是否正常,是否可访问:

[root@k8s-node1 k8s]# kubectl exec -it tomcat9-f4d6f4687-7vwch -- curl -I localhost:8080
HTTP/1.1 200 
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sat, 03 May 2025 08:06:38 GMT

返回200则表示正常。

如果不知道yaml文件怎么写,可以尝试在命令后面添加--dry-run,这样就会输出示例yaml文件

例如:

kubectl create deployment tomcat9 --image=tomcat:9 --dry-run -o yaml > tomcat9-deployment.yaml

就会在当前目录下输出一个tomcat9-deployment.yaml文件从而获得app的配置信息,但并不会创建一个发布,同样kubectl expose deployment tomcat9 --port=80 --target-port=8080 --type=NodePort --dry-run -o yaml则在当前目录下输出service配置的内容,然后把service配置的内容添加到前面的tomcat9-deployment.yaml(使用---分隔开来),然后以最终的tomcat9-deployment.yaml来发布应用。

拓展:常用命令 

1.获取所有的命名空间

kubectl get ns

2.获取所有命名空间的节点信息,用户创建的发布均位于default空间下:

kubectl get pods --all-namespaces

3.获得默认命名空间的节点基本信息

kubectl get pods

3.获得默认命名空间的节点详细信息

kubectl get pods  -o wide

4.获取所有资源信息

kubectl get all

5.获取所有的节点信息

kubectl get nodes

6.获取所有的服务信息

kubectl get svc

7.使用指定文件创建发布

kubectl apply -f xxx.yaml

8.删除发布的应用

kubectl delete deployment.apps/应用名

9.向外暴露端口

kubectl expose deployment 应用名(比如tomcat9) --port=80 --target-port=8080 --type=NodePort

10.将应用扩容到指定数目的数量

kubectl scale --replicas=3 deployment 应用名

11.进入应用内部

kubectl exec -it pod/应用名称 -- /bin/bash

12.获得服务的详细信息

kubectl describe service tomcat9

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

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

相关文章

【大模型面试每日一题】Day 7:为什么大模型训练选择 Adam 而非 SGD?Adam 的关键改进是什么?

【大模型面试每日一题】Day 7:为什么大模型训练选择 Adam 而非 SGD?Adam 的关键改进是什么? 📌 题目重现 🌟🌟 面试官:为什么大模型训练选择 Adam 而非 SGD?Adam 的关键改进是什么…

轻量级在线Excel预览工具

轻量级在线Excel预览工具 简介 在日常工作中,我们经常需要快速查看Excel文件的内容,但不一定总是需要打开完整的Excel软件。为了解决这个问题,我开发了一个轻量级的在线Excel预览工具,让您可以通过浏览器快速查看Excel文件内容。…

[Vue]props解耦传参

在 Vue 中,通过 props 传递路由参数(即 props 解耦)是一种将组件与路由参数解耦的推荐方式。这种方法能显著提升组件的独立性、复用性和可维护性。以下是详细解释: 一、什么是 props 解耦? props 解耦是指&#xff1a…

Trae 使用心得:从新手到上手

Trae 使用心得:从新手到上手 最近,我开始试用 Trae,一款新兴的 AI 开发工具。在使用过程中,我发现它与我之前用过的 Cursor 有些不同,也带来了一些新的体验。 初体验:操作的便利性 一开始,我…

游戏引擎学习第256天:XBox 控制器卡顿和修复 GL Blit 伽玛问题

回顾并为今天定下基调 今天的主要任务是让我们的性能分析工具正常工作,因为昨天已经完成了结构性工作。现在,剩下的工作大部分应该是调试和美化。性能分析工具现在应该已经基本可用了。昨天我们在这个方面取得了很大的进展。 接下来,我们将…

PVD中断检测掉电

文章目录 概述配置掉电擦写注意 概述 STM32 PVD功能具体可以检测到上电、掉电瞬间,其处理方式有中断响应及事件响应。掉电设置为上升沿触发,上电为下降沿触发 配置 1.开启PVD中断并设置其优先级 2.配置响应中断或事件的阈值电压 3.配置响应模式 生成…

快速掌握--cursor

Cursor - The AI Code Editor 官网下载安装 详细教程:cursor 下载安装使用(保姆教程)_cursor下载-CSDN博客 不知道为啥,第一次给我用的是繁体回答 然后改了一下询问方式 codebase就是告诉ai可以从整个项目中找答案&#xff0…

1993年地级市民国铁路开通数据(地级市工具变量)

1993年地级市民国铁路开通数据(地级市工具变量) 1、时间:1933年 2、指标:是否开通铁路 3、来源:《Z国铁道便览》 4、方法说明:参考田坤(2023)参考章元(2008&#xff…

AI优化SEO关键词实践路径

内容概要 随着人工智能技术深度渗透数字营销领域,SEO关键词优化正经历从人工经验驱动向算法智能决策的跃迁。本文聚焦AI技术在SEO关键词全生命周期管理中的应用框架,系统阐述智能算法如何通过海量数据挖掘潜在搜索需求、解析用户意图的语义关联性&#…

论微服务架构及其应用

试题四 论微服务架构及其应用 微服务提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。在微服务架构中,每个服务…

基于SpringBoot+Vue实现的电影推荐平台功能三

一、前言介绍: 1.1 项目摘要 2023年全球流媒体用户突破15亿,用户面临海量内容选择困难,传统推荐方式存在信息过载、推荐精准度低等问题。传统推荐系统存在响应延迟高(平均>2s)。随着互联网的快速发展,…

ARM 算数指令

加法 ADD 减法 SUB 取负 NEG 比较 CMP 乘法 MUL 移位 LSL、LSR、ASL、ASR、ROL、ROR加法和减法 绝大多数微处理器都实现了带进位的加法指令,能够将两个操作数和条件码寄存器中的进位位加到一起。这条指令会使字长大于计算机固有字长的链接运算更加方便。 说明了如何…

JAVA---集合ArrayList

集合 1. 自动扩容 ,集合长度可变 2. 只可以存引用数据类型,如果要存基本数据类型,需要将其转换成对应的包装类 ArrayList 定义在 java.util 下的,实现了 List 接口。ArrayList 内部以动态数组的形式存储元素,这意…

Scrapy框架之【settings.py文件】详解

settings.py 文件的主要作用是对 Scrapy 项目的全局设置进行集中管理。借助修改这个文件中的配置项,你可以对爬虫的行为、性能、数据处理等方面进行灵活调整,而无需修改爬虫代码。 ①默认英文注释settings.py # Scrapy settings for douban project # …

Java变量学习笔记

Java变量 -为什么需要变量? 一个程序就是一个世界 变量是程序的基本组成单位 不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,比如: //变量有三个基本要素(类型名称值) class Test{public static void main(String [largs){int a1;…

数据结构*队列

队列 什么是队列 是一种线性的数据结构,和栈不同,队列遵循“先进先出”的原则。如下图所示: 在集合框架中我们可以看到LinkedList类继承了Queue类(队列)。 普通队列(Queue) Queue中的方法 …

Nginx — 防盗链配置

防盗链简述 防盗链是一种保护网络资源所有者权益的技术手段,旨在防止未经授权的用户或网站通过直接链接的方式盗用资源,以下是关于防盗链的简述: 原理 基于请求头验证:服务器通过检查请求头中的特定字段,如Referer字…

【浅学】Windows下ffmpeg+nginx+flv将本地视频推流在本地搭建的Web前端页面中播放,超详细步骤

Nginx安装和配置 下载nginx-1.19.3-http-flv 模块预编译包并解压放在d盘,路径就跟安装步骤里说的一样(如下图),不然会有其他问题出现。 打开conf/nginx.conf,查看RTMP和http相关的配置,确认端口号和路由名称 ffpemg推流视频…

Ubuntu-tomcat安装部署

https://blog.csdn.net/weixin_43877427/article/details/144697087 Linux下Tomcat安装与配置_tomcat linux安装及配置教程-CSDN博客 一、下载Tomcat 1、官网下载 进入后根据自己需要选择不同的版本,点击download 进入后,在下图标注的里边选择要下载…

希洛激活器策略思路

在复杂多变的外汇市场中,交易者常常寻求有效的工具来辅助决策。 希洛激活器作为一种综合性的技术指标,结合了江恩理论、CCI(商品通道指数)和MACD(移动平均收敛发散指标),旨在为交易者提供更为全…