K8S Ingress 服务配置步骤说明

devtools/2024/12/26 7:53:43/

部署Pod服务

分别使用kubectl run和kubectl apply 部署nginx和tomcat服务

# 快速启动一个nginx服务
kubectl run my-nginx --image=nginx --port=80# 使用yaml创建tomcat服务
kubectl apply -f my-tomcat.yaml

my-tomcat.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: tomcat-deploymentlabels:app: tomcat
spec:replicas: 2selector:matchLabels:app: tomcattemplate:metadata:labels:app: tomcatspec:containers:- name: tomcat-containerimage: tomcat:latestports:- containerPort: 8080
  • kubectl run:主要用于快速创建一个新的Pod,通常用于临时或一次性任务
  • kubectl apply:跟进yaml文件中定义的资源进行创建或更新,适合管理长期存在的Kubernetes对象
执行成功后,可以看到Pod已经执行起来
[root@master ~]# kubectl get pods
NAME                                READY   STATUS    RESTARTS        AGE
my-nginx                            1/1     Running   1 (3h17m ago)   8h
tomcat-deployment-6cc9875b5-krskl   1/1     Running   1 (13m ago)     55m
tomcat-deployment-6cc9875b5-qkk9h   1/1     Running   0               55m

部署service服务

部署nginx service服务

# 使用`kubectl expose`命令基于已有的`my-nginx` Pod 快速生成 Service 的 YAML 文件
kubectl expose pod my-nginx --name=my-nginx-service --port=18080 --target-port=80 --type=NodePort --dry-run=client -o yaml > my-nginx-service.yaml[root@master ~]# kubectl apply -f my-nginx-service.yaml[root@master ~]# kubectl get service
NAME               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)           AGE
kubernetes         ClusterIP   10.96.0.1        <none>        443/TCP           46h
my-nginx-service   NodePort    10.109.146.167   <none>        18080:32192/TCP   6m46s

部署tomcat service服务

kubectl expose deployment tomcat-deployment --name=my-tomcat-service --port=18089 --target-port=8080 --type=NodePort --dry-run=client -o yaml > my-tomcat-service.yaml[root@master ~]# kubectl apply -f my-tomcat-service.yaml 
service/my-tomcat-service created[root@master ~]# kubectl get service
NAME                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)           AGE
kubernetes          ClusterIP   10.96.0.1        <none>        443/TCP           2d
my-nginx-service    NodePort    10.109.146.167   <none>        18080:32192/TCP   141m
my-tomcat-service   NodePort    10.99.171.11     <none>        18089:31875/TCP   15s

安装ingress controller服务

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.12.0-beta.0/deploy/static/provider/cloud/deploy.yaml# 通过节点的31520/30871 访问nginx controller的80/443端口
[root@master ~]# kubectl get service -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.109.66.157   <pending>     80:31520/TCP,443:30871/TCP   171m
ingress-nginx-controller-admission   ClusterIP      10.110.31.148   <none>        443/TCP                      171m

使用ingress转发服务

kubectl create ingress my-ingress-nginx --class=nginx --rule="mynginx.com/*=my-nginx-service:18080" --dry-run=client -o yaml > my-nginx-ingress.yamlkubectl create ingress my-ingress-tomcat --class=nginx --rule="mytomcat.com/*=my-tomcat-service:18089" --dry-run=client -o yaml > my-tomcat-ingress.yaml[root@master ~]# kubectl apply -f my-tomcat-ingress.yaml
ingress.networking.k8s.io/my-ingress-tomcat created[root@master ~]# kubectl apply -f my-nginx-ingress.yaml
ingress.networking.k8s.io/my-ingress-nginx created# 两个ingress资源已经被创建
[root@master ~]# kubectl get ingress
NAME                CLASS   HOSTS          ADDRESS   PORTS   AGE
my-ingress-nginx    nginx   mynginx.com              80      9s
my-ingress-tomcat   nginx   mytomcat.com             80      6s

通过浏览器,ingress controller地址

配置hosts172.16.15.129 mynginx.com
172.16.15.129 mytomcat.com

访问nginx
http://mynginx.com:31520
在这里插入图片描述

访问tomcat
http://mytomcat.com:31520/index.jsp

在这里插入图片描述


http://www.ppmy.cn/devtools/145051.html

相关文章

【YashanDB知识库】ycm-YashanDB列表有数据库显示故障排除步骤

本文内容来自YashanDB官网&#xff0c;原文内容请见 https://www.yashandb.com/newsinfo/7802959.html?templateId1718516 数据库状态 正常 异常 1、查看告警列表 例如&#xff1a;告警显示实例无法连接&#xff0c;一般是数据库实例服务掉了&#xff0c;需要尽快联系系统…

Liveweb视频融合共享平台在果园农场等项目中的视频监控系统搭建方案

一、背景介绍 在我国的大江南北遍布着各种各样的果园&#xff0c;针对这些地处偏僻的果园及农场等环境&#xff0c;较为传统的安全防范方式是建立围墙&#xff0c;但是仅靠围墙仍然无法阻挡不法分子的有意入侵和破坏&#xff0c;因此为了及时发现和处理一些难以察觉的问题&…

Github优质项目推荐(第九期)

文章目录 Github优质项目推荐&#xff08;第九期&#xff09;一、【tldraw】&#xff0c;37.1k stars - 在 React 中创建无限画布体验的库二、【zapret】&#xff0c;9.1k stars - 独立&#xff08;无需第三方服务器&#xff09;DPI 规避工具三、【uBlock】&#xff0c;48.3k s…

流年运势API接口_解析个人命理十年大运PHP实现方法返回json数据

介绍 流年运势与十年大运的 API 接口提供了一种高效的方式来分析个体的命理特征。通过输入个人的基本信息&#xff08;包括姓、名、性别、出生日期和时间&#xff09;&#xff0c;用户可以获取详细的命理分析&#xff0c;包括五行数量、生肖、八字、十神、命宫等信息。这些数据…

数字逻辑(五)——用二进制来表示音频和视频

目录 1. 用二级制来表示音频 1.1 采样 1.2 量化 1.3 编码 2. 用二进制来表示视频 2.1 使用二进制来存储文件 2.2 使用二进制来采集视频 2.3 计算机如何播放视频 1. 用二级制来表示音频 声音是由物体的振动来表示的&#xff0c;振动是一种连续的波形&#xff0c;因此…

选择屏幕的用法

**************************定义控件*********************************** SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002. SELECT-OPTIONS bukrs FOR iloa-bukrs . "公司代码 SELECT-OPTIONS swerk FOR iloa-swerk OBLIGATORY . "工厂 SELECT-O…

STM32-按键扫描配置

问题引入 由于在使用例程中的按键时&#xff0c;发现按键无效&#xff0c;经过Debug发现程序进入按键扫描死循环中。 由于初始按键引脚时&#xff0c;按键引脚上拉&#xff0c;按下为高电平。给的引脚配置为浮空输入&#xff08;不确定高低电平&#xff09;&#xff0c;导致初…

如何理解TCP/IP协议?如何理解TCP/IP协议是什么?

理解TCP/IP协议 1. 什么是TCP/IP协议? TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是一组用于实现网络通信的协议,广泛用于互联网和局域网中。TCP/IP协议栈由一系列协议组成,规定了计算机如何在网络中发送和接收数据。它通常被用来…