为什么我不国誉自我手帐使用方法Kubernetes Ingress

Kubernetes Ingress_腾讯视频
三倍流畅播放
1080P蓝光画质
新剧提前看
1080P蓝光画质
纯净式无框播放器
三倍流畅播放
扫一扫 手机继续看
下载需先安装客户端
{clientText}
客户端特权:
3倍流畅播放
当前播放至 {time}
扫一扫 手机继续看
副标题要不要
副标题要不要
副标题要不要kubernetes之Ingress部署
<span type="1" blog_id="2060587" userid='
分享到朋友圈
好的文章,和好友一起分享Ingress Support
在开始使用 资源之前,你需要准备一个Kubernetes 。并且建议在本地电脑上 ,以便更容易地将Kubernetes的资源发布到Rancher中。或者,你可以使用Rancher UI提供的shell来启动资源。
Kubernetes Ingress资源可以支持你选择的任何负载均衡器类型,因此,为了利用Rancher的负载均衡功能,我们引入了Rancher Ingress控制器的概念。ingress控制器是ingress-controller服务的一部分,它做为Kubernetes系统栈的组件被部署。
ingress控制器管理着Rancher负载均衡器的创建/迁移/更新。每个负载均衡器的创建/删除/更新都是基于 Kubernetes ingress 资源。
如果一个ingress被更新或服务端点(Service endpoint)被更改,ingress控制器将更新相应的Rancher负载均衡器,使其与ingress的变化相对应。
同理,如果ingress被移除,Rancher负载均衡器也会被移除。如果一个ingress的后端服务发生了变化(例如,当复制控制器被放大或缩小或重新创建一个pod时),Rancher负载均衡器也将相应地更新。ingress控制器确保了Rancher负载均衡器与Kubernetes的ingress和后端服务相匹配。
目前的局限性
Ingress资源只能通过kubectl工具添加
Rancher Ingress 控制器
Rancher ingress控制器利用Rancher中现有的负载均衡功能,将Kubernetes ingress的内容转换到Rancher的负载均衡器。
ingress controller 功能:
监听Kubernetes服务器事件;
部署负载平衡器,并将其与Ingress中定义的路由规则进行适配;
通过配置Ingress Address 字段来做为负载均衡器的公共接入地址。
在Rancher中创建Ingress资源
设置一个Nginx服务示例
在配置任何ingress之前, 需要在Kubernetes中创建服务. 首先在Kubernetes环境中添加一个服务和复制控制器(Replication Controller)。
这里添加单个的nginx服务到Kubernetes中。
示例:nginx-service.yml:
apiVersion: v1
kind: Service
name: nginx-service
k8s-app: nginx-service
- port: 90
targetPort: 80
protocol: TCP
name: http
k8s-app: nginx-service
apiVersion: v1
kind: ReplicationController
name: nginx-service
replicas: 1
k8s-app: nginx-service
k8s-app: nginx-service
terminationGracePeriodSeconds: 60
containers:
- name: nginx-service
image: nginx:latest
- containerPort: 80
让我们使用kubectl将nginx服务发布到Kubernetes。请记住,
你也可以为本地机器配置kubectl ,或者在Kubernetes/kubectl的UI中使用shell。
$ kubectl create -f nginx-service.yml
service "nginx-service" created
replicationcontroller "nginx-service" created
配置单个ingress资源
你可以为单个服务设置单一的ingress资源。
示例:simple-ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
name: simplelb
serviceName: nginx-service
servicePort: 90
让我们使用kubectl创建ingress。在创建ingress后, ingress 控制器将触发创建一个负载均衡器并且可以在Kubernetes -& System
标签栏中看到创建的 kubernetes-ingress-lbs 应用栈 .
默认情况下,负载均衡器服务只有一个实例被部署。 通过kubectl, 可以看到 ingress被创建, 但通过UI只能看到负载均衡器应用.
ingress控制器已经完成了所有ingress转换到Rancher负载均衡器的请求。
$ kubectl create -f simple-ingress.yml
ingress "simplelb" created
$ kubectl get ingress
nginx-service:80
ingress中的address将是负载均衡器服务启动的公共接入地址。如果负载均衡器被移动到不同的主机并得到不同的公共端点(public endpoint),则ingress地址将被更新。
你可以在缺省端口80(例如:http://1.2.3.4:80)或直接访问地址(例如:http://1.2.3.4)来访问你的应用。
配置多个服务
如果你希望ingress做为多个服务的入口点,那么需要使用主机名路由规则来配置它,它允许将host/path 的路由添加到服务。
让我们添加多个服务到 Kubernetes中.
示例:multiple-nginx-services.yml:
apiVersion: v1
kind: Service
name: nginx-service-1
k8s-app: nginx-service-1
- port: 90
targetPort: 80
protocol: TCP
name: http
k8s-app: nginx-service-1
apiVersion: v1
kind: ReplicationController
name: nginx-service-1
replicas: 1
k8s-app: nginx-service-1
k8s-app: nginx-service-1
terminationGracePeriodSeconds: 60
containers:
- name: nginx-service-1
image: nginx:latest
- containerPort: 80
apiVersion: v1
kind: Service
name: nginx-service-2
k8s-app: nginx-service-2
- port: 90
targetPort: 80
protocol: TCP
name: http
k8s-app: nginx-service-2
apiVersion: v1
kind: ReplicationController
name: nginx-service-2
replicas: 1
k8s-app: nginx-service-2
k8s-app: nginx-service-2
terminationGracePeriodSeconds: 60
containers:
- name: nginx-service-2
image: nginx:latest
- containerPort: 80
让我们用kubectl将我们的服务和复制控制器发布到Kubernetes中,请记住,你可以为本地机器配置kubectl,也可以在Kubernetes-kubectl的UI中使用shell。
$ kubectl create -f multiple-nginx-services.yml
service "nginx-service-1" created
replicationcontroller "nginx-service-1" created
service "nginx-service-2" created
replicationcontroller "nginx-service-2" created
基于主机路由配置 Ingress 资源
示例:host-based-ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
name: host-based-ingress
- host: foo.bar.com
- backend:
serviceName: nginx-service-1
servicePort: 90
- host: bar.foo.com
- backend:
serviceName: nginx-service-2
servicePort: 90
让我们使用kubectl创建ingress。在创建ingress后, ingress 控制器 将触发创建一个负载均衡器并且可以在Kubernetes -& System
标签栏中看到创建的 kubernetes-ingress-lbs 应用栈 .
默认情况下,负载均衡器服务只有一个实例被部署。 通过ingress,负载均衡器将有一个以主机名命名的路由规则被创建。
通过kubectl, 可以看到 ingress 被创建, 但通过UI只能看到负载均衡器应用.
ingress控制器已经完成了所有ingress转换到Rancher负载均衡器的请求。
$ kubectl create -f host-based-ingress.yml
ingress "host-based-ingress" created
$ kubectl get ingress
host-based-ingress
foo.bar.com
nginx-service-1:80
foo1.bar.com
nginx-service-2:80
与单个ingress负载均衡器类似,这个负载均衡器将在Kubernetes/System选项卡中位于Kubernetes-lbs的应用栈中。
ingress中的地址将是负载均衡器服务启动的公共接入地址。.如果负载均衡器被移动到不同的主机并得到不同的公共端点,则ingress地址将被更新
你可以在缺省端口80(例如:http://1.2.3.4:80)或直接访问地址(例如:http://1.2.3.4)。来访问你的应用。
使用基于路径的路由配置Ingress资源
如果有多个想要做负载均衡的服务,那么可以向ingress添加基于路径的路由。
示例:path-based-ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
name: path-based-ingress
- host: foo.bar.com
- path: /foo
serviceName: nginx-service-1
servicePort: 90
- path: /bar
serviceName: nginx-service-2
servicePort: 90
让我们使用kubectl创建ingress。在创建ingress后, ingress 控制器 将触发创建一个负载均衡器并且可以在Kubernetes -& System
标签栏中看到创建的 kubernetes-ingress-lbs 应用栈。默认情况下,负载均衡器服务只有一个实例被部署。负载均衡器将拥有从ingress创建的主机名路由规则。
通过kubectl, 可以看到 ingress 被创建, 但是UI中只能看到负载均衡器应用.
ingress控制器已经完成了所有在ingress中的转换到Rancher负载均衡器的请求。
$ kubectl create -f path-based-ingress.yml
ingress "path-based-ingress" created
$ kubectl get ingress
path-based-ingress
foo.bar.com
nginx-service1:80
nginx-service2:80
与单个的ingress负载均衡器类似,这个负载均衡器将在Kubernetes-System选项卡中位于Kubernetes-lbs的堆栈中。
ingress中的address将是负载均衡器服务启动的公共接入地址。如果负载均衡器被移动到不同的主机并得到不同的公共端点,则ingress地址将被更新。
要访问你的应用程序,可以在缺省端口80(例如:http://1.2.3.4:80)或地址直接访问地址(例如:http://1.2.3.4)。
Kubernetes Ingress的负载均衡器选项
默认情况下,Kubernetes ingress将在默认80/443端口上使用http/https部署1个负载均衡器实例。Rancher可支持多组负载均衡,用户可以根据需要自行制定端口。扩展ingress后,Kubernetes 配置的地址将被复制到所有负载均衡器。
注意: 如果增加ingress实例数量,你需要确保在Kubernetes环境中至少有同等数量的主机可用。
设置单个服务
在建立任何一个ingress之前,需要在Kubernetes中创建服务。首先在Kubernetes环境中添加一个服务和复制控制器。
这里向Kubernetes添加一个单个的nginx服务。
示例:nginx-service.yml:
apiVersion: v1
kind: Service
name: nginx-service
k8s-app: nginx-service
- port: 90
targetPort: 80
protocol: TCP
name: http
k8s-app: nginx-service
apiVersion: v1
kind: ReplicationController
name: nginx-service
replicas: 1
k8s-app: nginx-service
k8s-app: nginx-service
terminationGracePeriodSeconds: 60
containers:
- name: nginx-service
image: nginx:latest
- containerPort: 80
使用kubectl,让我们将nginx服务发布到Kubernetes。请记住,你可以为本地机器配置kubectl,也可以在Kubernetes-kubectl的UI中使用shell。
$ kubectl create -f nginx-service.yml
service "nginx-service" created
replicationcontroller "nginx-service" created
#### 示例:两个负载均衡器使用交替的端口
你可以在两个不同的主机上运行2个负载均衡器启动一个ingress,它使用一个99端口代替默认的80端口。为了让这个ingress正常工作,你的kubernetes环境至少需要两台拥有99端口的主机。
示例:scaled-ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
name: scaledlb
annotations:
# Scaling to 2 load balancer instances
scale: "2"
# Using a different port (not 80)
http.port: "99"
serviceName: nginx-service
servicePort: 90
让我们使用kubectl创建ingress。在创建ingress之后,ingress控制器将触发在Kubernetes-System选项卡中创建的负载均衡器服务,并在Kubernetes-ingss-lbs堆栈中可见。由于在ingress中scale 设置为2,所以在负载均衡器服务中会有两个负载均衡器实例被部署。。
在kubectl中,你可以看到ingress创建,但是UI只显示负载均衡器。ingress控制器已经完成了在ingress转化到Rancher负载均衡器的所有请求。因为有两个负载均衡器,需要在ingress中设置两个地址。
$ kubectl create -f scaled-ingress.yml
ingress "host-based-ingress" created
$ kubectl get ingress
nginx-service:90
1.2.3.4,5.6.7.8
示例:使用TLS
如果你想要在Kubernetes中使用TLS,那么你需要将证书添加到Rancher中。在Rancher中添加的证书可以用于为TLS终端提供一个安全的ingress。
假设我们添加了一个名为foo的证书
示例:tls-ingress.yml 使用这个 foo 证书。
apiVersion: extensions/v1beta1
kind: Ingress
name: tlslb
annotations:
https.port: "444"
- secretName: foo
serviceName: nginx-service
servicePort: 90
让我们使用kubectl创建ingress。在创建ingress之后,ingress控制器将触发在Kubernetes-System选项卡中创建的负载均衡器服务,并在Kubernetes-ingss-lbs堆栈中可见。默认情况下,负载均衡器服务只有一个负载均衡器的实例被部署。
在kubectl中,你可以看到ingress被创建,但是UI只显示负载均衡器应用。ingress控制器已经完成了在ingress中转换到Rancher负载均衡器所有请求的。
默认情况下,即使使用了TLS,端口80也是可以访问的。为了阻止80端口,你可以添加额外的参数(annotation) (allow.http: “false”)做为ingress模板的一部分。
示例:tls-ingress.yml and 禁用80 端口
apiVersion: extensions/v1beta1
kind: Ingress
name: tlslb
annotations:
https.port: "444"
# Added to block HTTP
allow.http: "false"
- secretName: foo
serviceName: nginx-service
servicePort: 90
#### 示例:用户定制
在Rancher中,我们的负载均衡器运行的是HAProxy软件。如果你想要定制负载均衡器配置文件的global 和defaults 部分,可以通过ingress注释(annotations)来配置它们。
示例:custom-ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
name: customlb
annotations:
# Customizing HAProxy in the load balancer
config: "defaults\nbalance source\ntimeout server 70000\nglobal\nmaxconnrate 60"
serviceName: nginx-service
servicePort: 80
在配置中,默认和全局关键字标识可自定义的部分,后面应该紧跟着有新的换行。 这些部分中的每个参数都应该跟着一条新的换行。
示例:在所有主机上运行负载均衡器
在当前环境中,可以让负载均衡器在所有主机上运行。这些全局负载均衡器可以使用注释(annotations)进行调度,i.e. io.Rancher.scheduler.global: "true".
示例:global-ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
name: globallb
annotations:
# Create load balancers on every host in the environment
io.Rancher.scheduler.global: "true"
serviceName: nginx-service
servicePort: 80
示例:在特定主机上运行负载均衡器
在当前环境中,你可以将负载均衡器安排到某个特定主机上。为了将负载均衡器安排到特定的主机上,你需要向主机添加标签。主机上的标签是一个键值对,比如你可以给主机设置标签为foo=bar。主机添加标签之后,你需要使用参数annotation,(如Rancher.scheduler.affinity.host_label: “foo=bar”`)以使负载均衡器容器安排到标记的主机上。
apiVersion: extensions/v1beta1
kind: Ingress
name: scheduledlb
annotations:
# Search for a host that has label foo=bar and schedule the load balancer on that host.
io.Rancher.scheduler.affinity.host_label: "foo=bar"
serviceName: nginx-service
servicePort: 80
例:将流量导向同一主机上的不同容器
你可以配置负载均衡器,将流量路由到与负载均衡器容器同一主机上的服务容器。如果主机上没有目标服务的容器,那么负载均衡器不会将任何流量路由到目标服务的其他容器,就像它们在其他主机上一样。为了配置负载均衡器,你需要使用annotation参数i.e. io.Rancher.lb_service.target: "only-local".
apiVersion: extensions/v1beta1
kind: Ingress
name: onlylocallb
annotations:
# Direct traffic to only containers that are on the same host as the load balancer container
io.Rancher.lb_service.target: "only-local"
serviceName: nginx-service
servicePort: 80
示例:在同一主机上对容器的流量进行优先级排序
对于一个多实例服务,你可以配置负载均衡器,使流量优先分配到与负载均衡器容器相同主机的服务容器中。如果主机上没有目标服务的容器,则负载均衡器将流量引导到目标服务所在的其他主机上。为了配置负载均衡器,你将使用一个annotation, i.e. io.Rancher.lb_service.target: "prefer-local".
apiVersion: extensions/v1beta1
kind: Ingress
name: preferlocallb
annotations:
# Prioritize traffic to containers that are on the same host as the load balancer container
io.Rancher.lb_service.target: "prefer-local"
serviceName: nginx-service
servicePort: 80
示例:粘滞会话
可以为Rancher负载均衡器中运行的HAProxy软件的配置粘性策略。
例如,你可以配置负载均衡器使来自相同源的流量路由到相同的容器。
为了配置负载均衡器,你需要使用一条包括粘性政策的annotation参数 (i.e. io.Rancher.stickiness.policy)。
可以设置一个HAProxy软件能够识别的关键参数 \n做为界限值。
apiVersion: extensions/v1beta1
kind: Ingress
name: test
annotations:
# Configure stickiness policy
io.Rancher.stickiness.policy: "name: testname\n cookie: cookie123\ndomain: test.domain"
serviceName: nginx-service
servicePort: 80
Copyright &
. All Rights Reserved.他的最新文章
他的热门文章
个人微信公众号
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)在Kubernetes上使用Traefik
时间: 23:37:04
&&&& 阅读:798
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&本节内容:
Traefik介绍
部署测试用的两个服务
Role Based Access Control configuration (Kubernetes 1.6+ only)
部署Traefik
部署 Ingress
部署Traefik UI
一、Traefik介绍
traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持;同 nginx 等相比,traefik 能够自动感知后端容器变化,从而实现自动服务发现。
由于微服务架构以及 Docker 技术和 kubernetes 编排工具最近几年才开始逐渐流行,所以一开始的反向代理服务器比如 nginx、apache 并未提供其支持,毕竟他们也不是先知;所以才会出现 Ingress Controller 这种东西来做 kubernetes 和前端负载均衡器如 nginx 之间做衔接;即 Ingress Controller 的存在就是为了能跟 kubernetes 交互,又能写 nginx 配置,还能 reload 它,这是一种折中方案;而 traefik 天生就是提供了对 kubernetes 的支持,也就是说 traefik 本身就能跟 kubernetes API 交互,感知后端变化,因此可以得知: 在使用 traefik 时,Ingress Controller 已经没什么用了,整体架构如下:
二、部署测试用的两个服务
部署两个服务nginx1-7和nginx1-8,后面用Traefik去负载这两个服务:
apiVersion: v1
kind: Service
name: frontend
- port: 80
targetPort: 80
app: nginx1-7
apiVersion: apps/v1beta1
kind: Deployment
name: nginx1-7-deployment
replicas: 2
app: nginx1-7
containers:
- name: nginx
image: nginx:1.7.9
- containerPort: 80
nginx1-7.yaml
apiVersion: v1
kind: Service
name: my-nginx
- port: 80
targetPort: 80
app: nginx1-8
apiVersion: apps/v1beta1
kind: Deployment
name: nginx1-8-deployment
replicas: 2
app: nginx1-8
containers:
- name: nginx
image: nginx:1.8
- containerPort: 80
nginx1-8.yaml
运行两个服务:
[ nginx_ingress]# kubectl create -f nginx1-<span style="color: #.yaml
service "frontend" created
deployment "nginx1-7-deployment" created
[ nginx_ingress]# kubectl create -f nginx1-<span style="color: #.yaml
service "my-nginx" created
deployment "nginx1-8-deployment" created
三、Role Based Access Control configuration (Kubernetes 1.6+ only)
我这里部署的是1.6.0集群,开启了RBAC,授权需要使用角色和绑定角色。
[ traefik]# pwd
/opt/traefik
[ traefik]# vim ingress-rbac.yaml
apiVersion: v1
kind: ServiceAccount
name: ingress
namespace: kube-system
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
name: ingress
- kind: ServiceAccount
name: ingress
namespace: kube-system
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
ingress-rbac.yaml
四、部署Traefik
[ traefik]# pwd
/opt/traefik
[ traefik]# vim traefik-deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
name: traefik-ingress-lb
namespace: kube-system
k8s-app: traefik-ingress-lb
k8s-app: traefik-ingress-lb
name: traefik-ingress-lb
terminationGracePeriodSeconds: 60
hostNetwork: true
restartPolicy: Always
serviceAccountName: ingress
containers:
- image: traefik
name: traefik-ingress-lb
resources:
memory: 30Mi
memory: 20Mi
- name: http
containerPort: 80
hostPort: 80
- name: admin
containerPort: 8580
hostPort: 8580
- --web.address=:8580
- --kubernetes
traefik-deploy.yaml
其中 traefik 监听 node 的 80 和 8580 端口,80 提供正常服务,8580 是其自带的 UI 界面,原本默认是 8080,因为环境里端口冲突了,所以这里临时改一下。
【注意】:这里用的是Deploy类型,没有限定该pod运行在哪个主机上。
五、部署 Ingress
[ traefik]# cat traefik.yaml
apiVersion: extensions/v1beta1
kind: Ingress
name: traefik-ingress
namespace: default
- host: traefik.nginx.io
serviceName: my-nginx
servicePort: 80
- host: traefik.frontend.io
serviceName: frontend
servicePort: 80
traefik.yaml
其中的backend中要配置default namespace中启动的service名字,如果你没有配置namespace名字,默认使用default namespace,如果你在其他namespace中创建服务想要暴露到kubernetes集群外部,可以创建新的ingress.yaml文件,同时在文件中指定该namespace,其他配置与上面的文件格式相同。path就是URL地址后的路径,如traefik.frontend.io/path,service将会接受path这个路径,host最好使用service-name.filed1.filed2.domain-name这种类似主机名称的命名方式,方便区分服务。
根据实际环境中部署的service的名字和端口自行修改,有新service增加时,修改该文件后可以使用kubectl replace -f traefik.yaml来更新。
六、部署Traefik UI
traefik 本身还提供了一套 UI 供我们使用,其同样以 Ingress 方式暴露,只需要创建一下即可。
[ traefik]# cat traefik-ui-service.yaml
apiVersion: v1
kind: Service
name: traefik-web-ui
namespace: kube-system
k8s-app: traefik-ingress-lb
- name: web
targetPort: 8580
apiVersion: extensions/v1beta1
kind: Ingress
name: traefik-web-ui
namespace: kube-system
- host: traefik-ui.local
serviceName: traefik-web-ui
servicePort: web
traefik-ui-service.yaml
最后一起创建:
[ traefik]# kubectl create -f .
serviceaccount "ingress" created
clusterrolebinding "ingress" created
deployment "traefik-ingress-lb" created
service "traefik-web-ui" created
ingress "traefik-web-ui" created
ingress "traefik-ingress" created
七、访问测试
查看traefik pod被分配到了哪台主机上:&
[ traefik]# kubectl get pods -n kube-system -l k8s-app=traefik-ingress-lb -o wide
traefik-ingress-lb-<span style="color: #-1dg9n
<span style="color: #/<span style="color: #
<span style="color: #
<span style="color: #2.16.<span style="color: #.152
<span style="color: #2.16.<span style="color: #.152
浏览器输入http://172.16.7.152:8580/,将可以看到dashboard。
左侧黄色部分部分列出的是所有的rule,右侧绿色部分是所有的backend。
在Kubernetes集群的任意一个节点上执行。假如现在我要访问nginx的"/"路径。
curl -H Host:traefik.nginx.io http://<span style="color: #2.16.7.152/
如果需要在kubernetes集群以外访问就需要设置DNS,或者修改本机的hosts文件。
<span style="color: #2.16.<span style="color: #.152 traefik.nginx.io
<span style="color: #2.16.<span style="color: #.152 traefik.frontend.io
所有访问这些地址的流量都会发送给172.16.7.152这台主机,就是我们启动traefik的主机。
Traefik会解析http请求header里的Host参数将流量转发给Ingress配置里的相应service。
修改hosts后就就可以在kubernetes集群外访问以上两个service。
八、健康检查
关于健康检查,测试可以使用 kubernetes 的 Liveness Probe 实现,如果 Liveness Probe检查失败,则 traefik 会自动移除该 pod。
【示例】:我们定义一个 test-health 的 deployment,健康检查方式是 cat /tmp/health,容器启动 2 分钟后会删掉这个文件,模拟健康检查失败。
test-health的deployment:
[ traefik]# cat test-health-deploy.yaml
apiVersion: v1
kind: Deployment
apiVersion: extensions/v1beta1
name: test
namespace: default
test: alpine
replicas: 1
matchLabels:
test: alpine
test: alpine
name: test
containers:
- image: mritd/alpine:3.4
name: alpine
resources:
memory: 30Mi
memory: 20Mi
- name: http
containerPort: 80
- "echo ok & /tmp/sleep 120;rm -f /tmp/health"
livenessProbe:
- /tmp/health
initialDelaySeconds: 20
test-health-deploy.yaml
test-health 的 service:
[ traefik]# vim test-health-service.yaml
apiVersion: v1
kind: Service
name: test
name: test
- port: 8123
targetPort: 80
name: test
test-health-service.yaml
test-health的 Ingress:
[ traefik]# vim test-health-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
name: test
- host: test.com
serviceName: test
servicePort: 8123
test-health-ingress.yaml
全部创建好以后,进入 traefik ui 界面,可以观察到每隔 2 分钟健康检查失败后,kubernetes 重建 pod,同时 traefik 会从后端列表中移除这个 pod。
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:http://www.cnblogs.com/zhaojiankai/p/7898282.html
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 如何使用查找我的朋友 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信