K8s实战一:基本概念与命令二
目录
1:Service:将一组Pods公开为网络服务的抽象方法。
2: Ingress:service统一的网关入口,总网关入口
测试:
1:环境准备
2:域名访问
3.路径重写
4.流量限制
1:Service:将一组Pods公开为网络服务的抽象方法。
#暴露Deploy,集群内部能够访问8080,来进入pod的80达到负载均衡
kubectl expose deploy my-dep --port=8000 --target-port=80#暴露Deploy,集群内外部能够访问8080,来进入pod的80达到负载均衡
kubectl expose deployment my-dep --port=8000 --target-port=80 --type=NodePort#使用标签检索Pod
kubectl get pod -l app=my-dep#删除暴露端口
kubectl delete service my-dep# 查看pod标签,相同的deployment 有同一个标签
kubectl get pod --show-labels
配置文件创建
apiVersion: v1
kind: Service
metadata:labels:app: my-depname: my-dep
spec:selector:app: my-depports:- port: 8000protocol: TCPtargetPort: 80
2: Ingress:service统一的网关入口,总网关入口
# 下载ingress
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/baremetal/deploy.yaml#修改镜像
vi deploy.yaml
#将image的值改为如下值:
registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/ingress-nginx-controller:v0.46.0# 检查安装的结果
kubectl get pod,svc -n ingress-nginx# 最后别忘记把svc暴露的端口要放行
80:31378/TCP,443:31782/TCP http访问31378端口 http访问31782端口
测试:
1:环境准备
部署两个Deployment,每个Deployment的pod有两个副本 ,部署两个网格分别管理两组pod
[root@k8s-master ~]# vim test.yaml
添加如下内容apiVersion: apps/v1
kind: Deployment
metadata:name: hello-server
spec:replicas: 2selector:matchLabels:app: hello-servertemplate:metadata:labels:app: hello-serverspec:containers:- name: hello-serverimage: registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/hello-serverports:- containerPort: 9000
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-demoname: nginx-demo
spec:replicas: 2selector:matchLabels:app: nginx-demotemplate:metadata:labels:app: nginx-demospec:containers:- image: nginxname: nginx
---
apiVersion: v1
kind: Service
metadata:labels:app: nginx-demoname: nginx-demo
spec:selector:app: nginx-demoports:- port: 8000protocol: TCPtargetPort: 80
---
apiVersion: v1
kind: Service
metadata:labels:app: hello-servername: hello-server
spec:selector:app: hello-serverports:- port: 8000protocol: TCPtargetPort: 9000
然后执行 [root@k8s-master ~]# kubectl apply -f test.yaml
2:域名访问
[root@k8s-master ~]# vim ingress-rule.yaml
添加如下内容apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-host-bar
spec:ingressClassName: nginxrules:- host: "hello.atguigu.com"http:paths:- pathType: Prefixpath: "/"backend:service:name: hello-serverport:number: 8000- host: "demo.atguigu.com"http:paths:- pathType: Prefixpath: "/nginx" # 把请求会转给下面的服务,下面的服务一定要能处理这个路径,不能处理就是404backend:service:name: nginx-demo ## java,比如使用路径重写,去掉前缀nginxport:number: 8000
注:修改电脑的hosts域名映射关系,集群任意一台主机ip即可
47.104.182.107 hello.atguigu.com
47.104.182.107 demo.atguigu.com
path: "/nginx" 与 path: "/" 虽然都为404,但是path: "/" 是ingress直接返回不处理,path: "/nginx" 是ingress把请求转给了nginx-demo服务处理,但nginx-demo没有对该路径处理
3.路径重写
[root@k8s-master ~]# rm -rf ingress-rule.yaml
[root@k8s-master ~]# vim ingress-rule.yaml
[root@k8s-master ~]# kubectl apply -f ingress-rule.yaml
ingress.networking.k8s.io/ingress-host-bar configured
[root@k8s-master ~]# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-host-bar nginx hello.atguigu.com,demo.atguigu.com 192.168.0.137 80 22m# vim ingress-rule.yaml的内容
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:annotations:nginx.ingress.kubernetes.io/rewrite-target: /$2name: ingress-host-bar
spec:ingressClassName: nginxrules:- host: "hello.atguigu.com"http:paths:- pathType: Prefixpath: "/"backend:service:name: hello-serverport:number: 8000- host: "demo.atguigu.com"http:paths:- pathType: Prefixpath: "/nginx(/|$)(.*)" # 把请求会转给下面的服务,下面的服务一定要能处理这个路径,不能处理就是404backend:service:name: nginx-demo ## java,比如使用路径重写,去掉前缀nginxport:number: 8000
4.流量限制
47.104.182.107 haha.atguigu.com
[root@k8s-master ~]# vim ingress-rule2.yaml
[root@k8s-master ~]# kubectl apply -f ingress-rule2.yaml
ingress.networking.k8s.io/ingress-limit-rate created
[root@k8s-master ~]# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-host-bar nginx hello.atguigu.com,demo.atguigu.com 192.168.0.137 80 27m
ingress-limit-rate nginx haha.atguigu.com 80 3s# vim ingress-rule2.yaml的内容
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-limit-rateannotations:nginx.ingress.kubernetes.io/limit-rps: "1" #每秒放行一个请求
spec:ingressClassName: nginxrules:- host: "haha.atguigu.com"http:paths:- pathType: Exactpath: "/"backend:service:name: nginx-demoport:number: 8000
记得疯狂刷新哦
K8s实战一:基本概念与命令二相关推荐
- 【k8s实战一】Jenkins 部署应用到 Kubernetes
[k8s实战一]Jenkins 部署应用到 Kubernetes 01 本文主旨 目标是演示整个Jenkins从源码构建镜像到部署镜像到Kubernetes集群过程. 为了简化流程与容易重现文中效果, ...
- Flutter实战一Flutter聊天应用(二十)
在上一篇文章<Flutter实战一Flutter聊天应用(十九)>中,我们完成了删除用户的逻辑,就是将会话的有效性设置为false就可以了.那么当会话的有效性为false时,用户再次添加该 ...
- Flutter实战一Flutter聊天应用(二十一)
在这一系列的前二十篇文章里,我们已经完成了最主要的添加.删除好友,并与好友聊天,还可以发送图片的功能.这一篇文章会完成个人资料与设置相关的功能,并将应用发布上线. 之前设置了个人资料的入口按钮,现在我 ...
- Flutter实战一Flutter聊天应用(二)
随着项目的代码越来越多,我们会碰到各种问题,所以我们需要学习一下如何使用IntelliJ定位并解决问题.我们可以在IntelliJ IDE上调试在模拟器/仿真器或真机设备上运行的Flutter应用程序 ...
- Flutter实战一Flutter聊天应用(汇总)
纸聊 这个应用程序使用Google的Flutter移动框架开发,是一个实时聊天应用程序,为了能专注于APP设计,应用程序的服务端使用Googler的Firebase平台.程序程序的名称为纸聊,意为像传 ...
- 【Kubernetes】k8s的svc所有概念和实操详细说明(含镜像和代码)【2】【svc作用是端口转发相关】【含LB和ingress【反向代理】-部署使用】
文章目录 service[svc]所有概念 环境准备 端口映射常规测试 创建pod 主机端口映射测试 修改pod副本数并测试 svc[service] 关于Service 定义Service的意义 没 ...
- 云原生(二十七) | Kubernetes篇之自建高可用k8s集群前置概念与操作
文章目录 自建高可用k8s集群前置概念与操作 一.内核升级 二.k8s集群架构
- UnrealEngine5实操--基础概念(持续补充)
UnrealEngine5实操--基础概念 Unreal 术语 UE5 上手指南 关卡快速搭建 视口标准按键操作 Editor 视角移动速度调节 Unreal Editor 快速测距 Actor 操作 ...
- Neo4j系统实战一
Neo4j系统实战一 Neo4j是一个高性能的图形数据库,查询的语言使用_Cypher_语言,通过创建节点和关系形成强大的节点网络. 目录: Neo4j基本概念: 标签Label:类比于数据中的一张数 ...
- 46.逻辑卷管理1,lvm架构,概念,常用命令介绍
LVM架构 LVM(Logical Volume Manager)可以让分区变得弹性,可以随时随地的扩大和缩小分区大小,前提是该分区是LVM格式的.lvm需要使用的软件包为lvm2.它的架构 相关概念 ...
最新文章
- Python 初学者进阶的九大技能(附代码)
- Cordic算法——verilog实现
- PX4 - position_estimator_inav
- 使用xslt批量修改xml 节点name
- 对于Ping的过程,你真的了解吗?
- 屏幕分析师确认两款iPhone 13将采用LTPO屏幕 支持120Hz刷新率
- 移动互联消亡者及原因分析
- vue 父子组件传值以及方法调用,平行组件之间传值以及方法调用大全
- EOSIO 指南(浏览源码)
- Elasticsearch 读时分词、写时分词
- C#:Access数据库的连接、读取,字段的增加、删除、更新、查询操作
- 温度采集系统(开源 原理图、PCB文件+源码+云平台+app端设计方案)
- 对ID3算法的理解及其优缺点
- 树莓派Ubuntu21.04 罗技键盘和鼠标重启后失效问题解决
- 面试5173的奇葩经历——老板与员工的博弈论
- Vulkan 多线程渲染
- C语言打印多颜色字体,多功能打印,协助开发调试
- vscode下载太慢,快速下载vscode方法!
- C语言候老师,两本留言册背后的C语言老师
- SQL server Date函数之DATEADD()函数
热门文章
- 小心利用大家的爱国热情来传播Worm.Win32.AutoRun.dgk的网页
- SCI论文分区有两种方法
- LIO-SAM_based_relocalization运行kitti回环序列并保存轨迹评估(一)——————源码的分析
- 前端程序员为何焦虑?web前端未来终将是什么样?
- druid监控页面SQL不显示问题
- Node-RED中建立Websocket客户端连接
- Clean Code 读书笔记四
- 树莓派中的 IM 私有云支持多少并发?
- 嘉应大学黄林鑫计算机学院,嘉应学院学子参加第十届全国大学生数学竞赛获佳绩...
- mac pro 安装双系统与windows下解决右键问题