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

news2025/5/9 17:02:39

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

前提条件

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

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

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

实现的过程

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

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tomcat9
  name: tomcat9
spec:
  replicas: 3 #指定集群的节点个数
  selector:
    matchLabels:
      app: tomcat9
  template:
    metadata:
      labels:
        app: tomcat9
    spec:
      containers:
      - image: tomcat:9.0.85-jre8
        name: tomcat
        # 启动时自动复制 webapps.dist 内容到 webapps
        lifecycle:
          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: tomcat9
  name: tomcat9
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
    nodePort: 30080  # 指定易记端口,对外访问端口
  selector:
    app: tomcat9
  type: NodePort
  externalTrafficPolicy: 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.coloradmin.cn/o/2371642.html

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

相关文章

【项目篇之统一硬盘操作】仿照RabbitMQ模拟实现消息队列

统一硬盘操作 创建出实例封装交换机的操作封装队列的操作封装绑定的操作封装消息的操作总的完整代码: 我们之前已经使用了数据库去管理交换机,绑定,队列 还使用了数据文件去管理消息 此时我们就搞一个类去把上述两个部分都整合在一起&#…

基于 GO 语言的 Ebyte 勒索软件——简要分析

一种新的勒索软件变种,采用Go 语言编写,使用ChaCha20进行加密,并使用ECIES进行安全密钥传输,加密用户数据并修改系统壁纸。其开发者EvilByteCode曾开发过多种攻击性安全工具,现已在 GitHub 上公开 EByte 勒索软件。尽管该勒索软件声称仅用于教育目的,但滥用可能会导致严重…

0基础 | STM32 | STM32F103C8T6开发板 | 项目开发

注:本专题系列基于该开发板进行,会分享源代码 F103C8T6核心板链接: https://pan.baidu.com/s/1EJOlrTcProNQQhdTT_ayUQ 提取码:8c1w 图 STM32F103C8T6开发板 1、黑色制版工艺、漂亮、高品质 2、入门级配置STM32芯片(SEM32F103…

南京大学OpenHarmony技术俱乐部正式揭牌 仓颉编程语言引领生态创新

2025年4月24日,由OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会与南京大学软件学院共同举办的“南京大学OpenHarmony技术俱乐部成立大会暨基础软件与生态应用论坛”在南京大学仙林校区召开。 大会聚焦国产自主编程语言…

主场景 工具栏 植物卡牌的渲染

前置知识:使用easyx图形库 1.IMAGE内存变量存储的是一张位图(图像),存储了像素数据(颜色,尺寸等) 2.loadimage(&变量名,"加载的文件路径")表示从文件中加载图像到变量中 3. saveimage("文件路径", &变…

Java三大基本特征之多态

多态(Polymorphism)是面向对象编程(OOP)的三大特性之一(另外两个是 封装 和 继承),它允许 同一个行为具有不同的表现形式。在 Java 中,多态主要通过 方法重写(Override&a…

OpenCV 基于生物视觉模型的工具------模拟人眼视网膜的生物视觉机制类cv::bioinspired::Retina

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::bioinspired::Retina 是 OpenCV 中用于仿生视觉处理的一个类,它基于生物视觉模型进行图像预处理。该算法特别适用于动态范围调整…

前端跨域问题怎么在后端解决

目录 简单的解决方法: 添加配置类: 为什么会跨域 1. 什么是源 2. URL结构 3. 同源不同源举🌰 同源例子 不同源例子 4. 浏览器为什么需要同源策略 5. 常规前端请求跨域 简单的解决方法: 添加配置类: packag…

Python小程序:上班该做点摸鱼的事情

系统提醒 上班会忘记一些自己的事,所以你需要在上班的的时候突然给你弹窗,你就知道要做啥了 源码 这里有一个智能家居项目可以看看(开源) # -*- coding:utf-8 -*- """ 作者:YTQ 日期: 2025年04日29 21:51:24 """ impor…

飞云分仓操盘副图指标操作技术图文分解

如上图,副图指标-飞云分仓操盘指标,指标三条线蓝色“首峰线”,红色“引力1”,青色“引力2”,多头行情时“首峰线”和“引力1”之间显示为红色,“引力1”和“引力2”多头是区间颜色显示为紫色。 如上图图标信…

基于vueflow可拖拽元素的示例(基于官网示例的单文件示例)

效果图 代码 <template><div style"width: 100%;height: calc(100vh - 84px)"><VueFlow :nodes"nodes" :edges"edges" drop"onDrop" dragover"onDragOver" dragleave"onDragLeave"><div cl…

【MongoDB篇】MongoDB的副本集操作!

目录 引言第一节&#xff1a;副本集的核心概念&#xff1a;它是什么&#xff1f;为什么需要它&#xff1f;&#x1f914;&#x1f9e0;第二节&#xff1a;副本集的“骨架”&#xff1a;成员与数据同步机制 &#x1f451;&#x1f504;❤️‍&#x1f525;第三节&#xff1a;生死…

Kubernetes 集群优化实战手册:从零到生产级性能调优

一、硬件资源优化策略 1. 节点选型黄金法则 # 生产环境常见节点规格&#xff08;AWS示例&#xff09; - 常规计算型&#xff1a;m5.xlarge (4vCPU 16GB) - 内存优化型&#xff1a;r5.2xlarge (8vCPU 64GB) - GPU加速型&#xff1a;p3.2xlarge (8vCPU V100 GPU)2. 自动扩缩容…

【Redis分布式】主从复制

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【中间件】企业级中间件剖析 一、主从复制 在分布式系统之中为了解决单点问题&#xff08;1、可用性问题&#xff0c;该机器挂掉服务会停止2、性能支持的并发量是有限的&#xff09;通常会把数据复制多…

用递归实现各种排列

为了满足字典序的输出&#xff0c;我采用了逐位递归的方法&#xff08;每一位的所能取到的最小值都大于前一位&#xff09; 1&#xff0c;指数型排列 #include<bits/stdc.h> using ll long long int; using namespace std; int a[10];void printp(int m) {for (int h …

测试用例介绍

文章目录 一、测试用例基本概念1.1 测试用例基本要素 二、测试用例的设计方法2.1 基于需求的设计方法2.2 等价类2.3 边界值2.4 错误猜测法2.6 场景设计法2.7 因果图2.5 正交排列 三、综合&#xff1a;根据某个场景去设计测试用例&#xff08;万能公式&#xff09;四、如何使用F…

phpstudy升级新版apache

1.首先下载要升级到的apache版本&#xff0c;这里apache版本为Apache 2.4.63-250207 Win64下载地址&#xff1a;Apache VS17 binaries and modules download 2.将phpstudy中原始apache复制备份Apache2.4.39_origin 3.将1中下载apache解压&#xff0c; 将Apache24复制一份到ph…

React Native基础环境配置

React Native基础环境配置 1.引言2.React-Native简介3.项目基础环境搭建1.引言 感觉自己掌握的知识面还是有点太窄了,于是决定看看移动端的框架,搞个react搭一个后端管理项目,然后拿react-native写个小的软件,试着找个三方上架一下应用市场玩玩。毕竟不可能一直在简历上挂一…

【Linux修炼手册】Linux开发工具的使用(一):yum与vim

文章目录 一、Linux 软件包管理器——yum安装与卸载的使用方法查看软件包 二、Linux编辑器——vimvim命名模式常用指令底行模式常用指令 一、Linux 软件包管理器——yum Linux安装软件的方式有3种&#xff1a; 源代码安装——成本极高rmp安装——具有安装依赖、安装源、安装版…

如何查看电脑显卡配置参数 一文读懂

显卡是电脑的重要硬件之一&#xff0c;尤其对于游戏玩家、设计师、视频编辑等用户来说&#xff0c;显卡的性能直接影响电脑的使用体验。如果您想知道电脑的显卡信息&#xff0c;或者打算升级显卡&#xff0c;那么了解如何查看显卡配置是非常必要的。本文将为您提供多种简单实用…