k8s的ingress使用
ingress
可以配置一个入口来提供k8s上service从外部来访问的url、负载平衡流量、终止SSL和提供基于名称的虚拟主机。
配置ingress的yaml:
要求域名解析无误
要求service对应的pod正常
一、test1.domain.com --> service1:8080
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
path: /
二、test1.domain.com --> /aaa --> service2:8080
--> /bbb --> service3:8080
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
path: /aaa
- backend:
serviceName: service2
servicePort:
path: /bbb
三、test1.domain.com --> service1:8080
test2.domain.com --> service4:8080
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
- host: test2.domain.com
http:
paths:
- backend:
serviceName: service4
servicePort:
四、test1.domain.com --> service1:8080
没在request中定义主机名(即没有显示请求头)的请求 --> service5:8080
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
- http:
paths:
- backend:
serviceName: service5
servicePort:
五、https://test1.domain.com --> service1:8080
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
tls:
- hosts:
- test1.domain.com
secretName: domain-tls #证书见下
证书yaml
apiVersion: v1
data:
tls.crt: cert(base64) #转码见下
tls.key: key(base64)
kind: Secret
metadata:
name: domain-tls
namespace: test
type: kubernetes.io/tls
base64转码
cat fullchain.pem | base64 | tr '\n' ' ' | sed s/[[:space:]]//g #中间去掉换行和空格
cat privkey.pem | base64 | tr '\n' ' ' | sed s/[[:space:]]//g
六、nginx中的设置,在ingress是通过annotations来配置的
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
annotations:
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600s"
nginx.ingress.kubernetes.io/proxy-read-timeout: "600s"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600s"
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
path: /
详细ingress链接:https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress中annotations的配置选项:https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
k8s的ingress使用的更多相关文章
- [转帖]理解k8s 的 Ingress
理解k8s 的 Ingress https://www.jianshu.com/p/189fab1845c5/ 暴露一个http服务的方式 service 是 k8s 暴露http服务的默认方式, 其 ...
- Kubernetes K8S之Ingress详解与示例
K8S之Ingress概述与说明,并详解Ingress常用示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C ...
- 容器编排系统k8s之Ingress资源
前文我们了解了k8s上的service资源的相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14161950.html:今天我们来了解下k8s上的In ...
- k8s 执行 ingress yaml 文件报错: error when creating "ingress-myapp.yaml": Internal error occurred: failed calling webhook
k8s 执行 ingress yaml 文件报错:错误如下: [root@k8s-master01 baremetal]# kubectl apply -f ingress-test.yaml Err ...
- 详解k8s组件Ingress边缘路由器并落地到微服务 - kubernetes
写在前面 Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群必经之口.这到大门到底有什么作用?我们如何使用Ingress?k8s又是如何进行服务发现的呢?先看一 ...
- k8s安装ingress
1. 环境准备 安装nginx-ingress-controller和backend cd /etc/yum.repos.d/mainfests 下载镜像的脚本 vi ingressnginx.sh ...
- (转)详解k8s组件Ingress边缘路由器并落地到微服务 - kubernetes
转:https://www.cnblogs.com/justmine/p/8991379.html 写在前面 Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群 ...
- k8s系列---ingress资源和ingress-controller
https://www.cnblogs.com/zhangeamon/p/7007076.html http://blog.itpub.net/28916011/viewspace-2214747/ ...
- k8s中ingress,service,depoyment,pod如何关联
k8s中pod通过label标签名称来识别关联,它们的label name一定是一样的.ingress,service,depoyment通过selector 中app:name来关联 1.查询发布 ...
随机推荐
- 删除文件时提示 你需要来自system的权限才能对此文件夹进行更改
问题描述: 我的计算机是Win7 x64操作系统,在我的计算机的F盘中,不知道什么时候多了个“12e4k69m762nzcgt8zx”这样一个文件夹,应该是某个软件自己创建并留下的文件夹,想删除掉则提 ...
- MYSQL主从复制配置遇到的问题
在进行配置从服务器时遇到的错误. mysql> change master to master_host='192.168.136.129',master_user='repl',master_ ...
- WCF中WcfSvcHost.exe如何禁止自动启动
今天同事问在一个WCF server的解决方案里调试时如何禁止Server自动启动. 经过调查发现, VS的工具WcfSvcHost会在调试时自动扫描工程里的WCF server, 然后启动起来. 如 ...
- 使用TortoiseGit来访问GitHub
因为以前一直在用TSVN, 对其界面操作比较熟悉. 因此,决定不用Git Gui而是用TortoiseGit来访问GitHub. 安装TortoiseGit成功后, 1.运行PuTTY Key Gen ...
- Kill掉MySQL中所有sleep的client线程 (转)
vim killsleep.sh #It is used to kill processlist of mysql sleep #!/bin/sh while : do n=`mysqladmin ...
- C++STL 库中set容器应用
#include<iostream> #include<cstdio> #include<set> using namespace std; set<int& ...
- 游戏中的 2D 可见性
转自:http://www.gameres.com/469173.html 拖动圆点转一圈,看看玩家都能看到些什么: 这个算法也能计算出给定光源所照亮的区域.对每条光线,我们可以构建出被照亮区域的光线 ...
- java基础知识学习 java异常
1: Unchecked Exception( 也就是运行时异常) VS Check Exception(非运行时异常) 2: 运行期异常 VS 非运行期异常? 非运行时异常: 必须在代码中显示 ...
- C# 处理Json
下面是JSON对象转换为字符串 public static string ToJson(object obj) { try { JavaScriptSerializer serializer = ne ...
- BluetoothSetServiceState 函数
DWORD BluetoothSetServiceState( HANDLE hRadio, BLUETOOTH_DEVICE_INFO* pbtdi, GUID* pGuidService, DWO ...