kubernates实战

news/2024/12/24 3:06:46 标签: kubernetes, 云原生

使用k8s来部署tomcat
1、创建一个部署,并指定镜像地址

kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8

2、查看部署pod状态

kubectl get pods # 获取default名称空间下的pods
kubectl get pods --all-namespaces # 获取所有名称空间下的pods
kubectl get pods -o wide # 获取pods详细信息

3、查看所有pods,deployment,service,replicaset信息

[root@k8s-master ~]# kubectl get all
NAME                           READY   STATUS    RESTARTS   AGE
pod/tomcat6-5f7ccf4cb9-8qjhm   1/1     Running   0          19m

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        23h
service/tomcat6      NodePort    10.96.226.207   <none>        80:32383/TCP   3m16s

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/tomcat6   1/1     1            1           19m

NAME                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/tomcat6-5f7ccf4cb9   1         1         1       19m

4、向外部暴露service服务

kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort

–port:pod的端口
–target-port:容器端口
–type=NodePort:指定暴露的方式

5、查看暴露的service

[root@k8s-master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        23h
tomcat6      NodePort    10.96.226.207   <none>        80:32383/TCP   12s

在上面我们可以看到k8s向外部暴露tomcat端口为32383
结合下面信息我们可以看到tomcat6是在node3上面的

[root@k8s-master ~]# kubectl get pods -o wide
NAME                       READY   STATUS    RESTARTS   AGE   IP           NODE        NOMINATED NODE   READINESS GATES
tomcat6-5f7ccf4cb9-8qjhm   1/1     Running   0          20m   10.244.2.2   k8s-node3   <none>           <none>

这里node3的地址是192.168.1.109,所以访问192.168.1.109:32383即可访问tomcat首页
在这里插入图片描述
6、动态扩容
扩容三个tomcat

kubectl scale --replicas=3 deployment tomcat6

查看pod信息

[root@k8s-master ~]# kubectl get pods -o wide
NAME                       READY   STATUS    RESTARTS   AGE     IP           NODE        NOMINATED NODE   READINESS GATES
tomcat6-5f7ccf4cb9-2bjhq   1/1     Running   0          5m56s   10.244.2.3   k8s-node3   <none>           <none>
tomcat6-5f7ccf4cb9-8qjhm   1/1     Running   0          33m     10.244.2.2   k8s-node3   <none>           <none>
tomcat6-5f7ccf4cb9-s42g5   1/1     Running   0          5m56s   10.244.1.4   k8s-node2   <none>           <none>

此时使用node2地址也能访问tomcat了(http://192.168.1.105:32383/)

7、故障转移和容量伸缩
假如node3节点挂点,会重新在node2节点上拉起两个pod,保持pod数量保持3个,
假如手动stop节点上的容器,也会自动重新拉起。
重新设置pod复制数量为1时(kubectl scale --replicas=1 deployment tomcat6),会选择停掉三个pod中的两个。

8、删除

[root@k8s-master ~]# kubectl get all
NAME                           READY   STATUS    RESTARTS   AGE
pod/tomcat6-5f7ccf4cb9-2bjhq   1/1     Running   0          9m50s
pod/tomcat6-5f7ccf4cb9-8qjhm   1/1     Running   0          37m
pod/tomcat6-5f7ccf4cb9-s42g5   1/1     Running   0          9m50s

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        23h
service/tomcat6      NodePort    10.96.226.207   <none>        80:32383/TCP   21m

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/tomcat6   3/3     3            3           37m

NAME                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/tomcat6-5f7ccf4cb9   3         3         3       37m

可以删除deployment,service,pod

kubectl delete pod/tomcat6-5f7ccf4cb9-2bjhq
kubectl delete service/tomcat6
kubectl delete deployment.apps/tomcat6

http://www.niftyadmin.cn/n/5797251.html

相关文章

【网络】超以太网联盟 UEC|下一代 “RoCE” 协议--编辑中

术语 UEC: 超级以太联盟 UET: 超级以太传输协议 Tail latency: 尾部延迟&#xff0c;&#xff08;以通信阶段最后一条消息的到达时间为衡量标准&#xff09;是系统性能的关键指标。 未来 AI 和 HPC 网络的关键需求 为了实现低尾延迟&#xff0c;UEC 规范通过满足下一代应用…

HarmonyOS 实践 - 设计模式在代码中的作用

文章目录 前言设计模式概述单例模式&#xff1a;全局状态管理代码分析 策略模式&#xff1a;界面主题切换代码分析 示例测试单例模式测试策略模式测试 体验评价总结 前言 在软件开发中&#xff0c;设计模式是公认的最佳实践&#xff0c;它能帮助开发者通过模块化和规范化的代码…

【Mybatis-Plus】连表查询 逻辑删除 多租户

文章目录 连表查询逻辑删除多租户 连表查询 引入 mybatis-plus-join-boot-starter 依赖 <dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join-boot-starter</artifactId><version>1.5.1</version>…

VSCode 中 Git 功能比较:内置 Git、GitLens 与 Git History 插件

在软件开发领域&#xff0c;版本控制是维护代码变更的重要工具。Git 作为最流行的版本控制系统&#xff0c;被广泛集成在各种代码编辑器中。Visual Studio Code&#xff08;VSCode&#xff09;不仅内置了 Git 支持&#xff0c;还提供了丰富的扩展来增强 Git 功能。本文将对比 V…

SQL 使用带聚集函数的联结

聚集函数用于汇总数据&#xff0c;通常用于从一个表中计算统计信息&#xff0c;但也可以与联结一起使用。以下是一个例子&#xff0c;展示如何使用聚集函数统计每个顾客的订单数。 示例 1&#xff1a;使用 COUNT() 函数与 INNER JOIN 假设我们需要检索所有顾客及每个顾客所下…

AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python

支持向量机是AI开发中最常见的一种算法。之前我们已经一起初步了解了它的概念和应用&#xff0c;今天我们用它来进行一次文本情感分析训练。 一、概念温习 支持向量机&#xff08;SVM&#xff09;是一种监督学习算法&#xff0c;广泛用于分类和回归问题。 它的核心思想是通过…

深度学习中的MSE与MAE

有空再把内容补上来 均方误差&#xff08;Mean Squared Error&#xff0c;MSE&#xff09;和平均绝对误差&#xff08;Mean Absolute Error&#xff0c;MAE&#xff09;是深度学习中常用的两种损失函数&#xff0c;用于衡量模型预测结果与真实标签之间的差异&#xff0c;以下是…

robots协议

robots协议&#xff0c;也称为爬虫协议、爬虫规则、机器人协议等&#xff0c;其全称是“网络爬虫排除标准”&#xff08;Robots Exclusion Protocol&#xff09;。以下是对robots协议的详细介绍&#xff1a; 一、定义与功能 robots协议是指网站可以建立一个名为robots.txt的文…