K8S Ingress 服务配置步骤说明

ops/2024/12/24 20:51:16/

部署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/ops/144665.html

相关文章

Selenium 全面指南

Selenium 是一个强大的 Web 自动化工具&#xff0c;支持多种浏览器和语言绑定。 1. Selenium 的基本概念 WebDriver&#xff1a;Selenium 提供的核心接口&#xff0c;用于控制浏览器操作。显式等待&#xff1a;等待特定条件满足后再执行操作。隐式等待&#xff1a;全局设置一个…

如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台

简介 Graylog 的开源特性、丰富的功能、灵活性和可扩展性使其成为一个流行的日志管理平台。在本教程中&#xff0c;我将向你展示如何在 Ubuntu 22.04 上安装 Graylog&#xff0c;包括配置 Graylog 服务器软件包和访问 Graylog Web UI。 Graylog 是什么&#xff1f; Graylog …

PostgreSQL: 事务年龄

排查 在 PostgreSQL 数据库中&#xff0c;事务年龄&#xff08;也称为事务 ID 年龄&#xff09;是一个重要的监控指标&#xff0c;因为 PostgreSQL 使用事务 ID&#xff08;XID&#xff09;来保持事务的隔离性。每个事务都会被分配一个唯一的事务 ID&#xff0c;这个 ID 随着每…

【JAVA】JAVA接口公共返回体ResponseData封装

一、JAVA接口公共返回体ResponseData封装&#xff0c;使用泛型的经典 例子 public class ResponseData<T> implements Serializable { /** * */ private static final long serialVersionUID 7098362967623367826L; /** * 响应状态码 */ …

本地电脑使用命令行上传文件至远程服务器

将本地文件上传到远程服务器&#xff0c;在本地电脑中cmd使用该命令&#xff1a; scp C:/Users/"你的用户名"/Desktop/environment.yml ws:~/environment.yml 其中&#xff0c;C:/Users/“你的用户名”/Desktop/environment.yml是本地文件的路径&#xff0c; ~/en…

机器人角度参考方式

机器人的角度可以根据需求和系统设计来决定。通常情况下&#xff0c;机器人角度&#xff08;如航向角或偏航角&#xff09;有两种常见的参考方式&#xff1a; 参考开机时的 0&#xff1a;这是最常见的方式&#xff0c;机器人在开机时会将当前的方向作为 0&#xff08;即参考方向…

typora数学符号

typora数学符号 Typora 是一个支持 LaTeX 数学公式的优秀 Markdown 编辑器&#xff0c;可以直接编写数学公式并实时渲染。以下是如何在 Typora 中使用数学公式的详细指南&#xff1a; 1. 启用数学公式支持 默认情况下&#xff0c;Typora 支持 LaTeX 格式的数学公式&#xff0…

STM32-笔记6-震动控制灯(中断法)

1、复制06工程文件&#xff0c;重命名07-震动控制灯&#xff08;中断法&#xff09; 打开工程文件 打开exti.c文件 将震动传感器的DO口接32板的A4引脚 更改代码 2、代码&#xff08;老师的&#xff09; exti.c #include "sys.h" #include "exti.h" …