k8s 使用 traefik 将clusterIP的 svc 暴露服务的方法

Posted jinanxiaolaohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s 使用 traefik 将clusterIP的 svc 暴露服务的方法相关的知识,希望对你有一定的参考价值。

0. 前置条件

安装好k8s..

traefik的简介图

技术分享图片

 

1. 安装 traefik

方法:

创建一个目录 并且存放部分文件等.

mkdir /traefik

cd /traefik

git clone https://github.com/containous/traefik.git

cd traefik/examples/k8s/

里面的文件主要有偶:

[[email protected] k8s]# tree
.
├── cheese-default-ingress.yaml
├── cheese-deployments.yaml
├── cheese-ingress.yaml
├── cheese-services.yaml
├── cheeses-ingress.yaml
├── traefik-deployment.yaml
├── traefik-ds.yaml
├── traefik-rbac.yaml
└── ui.yaml

 

这里面不需要 全部使用, 只需要 example 里面的 两个即可 

一个是rbac文件 一个是 deployment或者是 ds 文件即可

分别进行创建

kubectl apply -f  traefik-rbac.yaml
kubectl apply -f traefik-deployment.yaml

创建完成之后查看 服务

get svc -n kube-system
NAME TYPE CLUSTER
-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 6d kubernetes-dashboard NodePort 10.111.89.164 <none> 80:31000/TCP 5d tiller-deploy ClusterIP 10.111.62.105 <none> 44134/TCP 4d traefik-ingress-service NodePort 10.111.143.164 <none> 80:44209/TCP,8080:61087/TCP 46m traefik-web-ui ClusterIP 10.100.235.138 <none> 80/TCP 41m

看到主要有两个服务  然后用 8080 端口对应的 61087 (这个端口是任意的.. 不过也可以在 deployment 里面指定nodeport)

2. 管理界面查看

我这里面的查询地址显而易见的是:

http://10.24.104.1:61087/dashboard/

效果

请忽略我已经生成的内容. 

技术分享图片

这里面能够看到挺多的内容了..

3. bookinfo的显示效果.

我这边使用 创建了 istio 的 bookinfo的样例.

如图

技术分享图片

但是因为是clusterip 我外部机器无法访问, 所以使用 traefik 进行暴露服务

方法 创建一个 yaml文件 我这边简单的内容为:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: istiozhaobsh
  namespace: default
spec:
  rules:
  - host: istio.zhaobsh.com
    http:
      paths:
      - path: /
        backend:
          serviceName: productpage
          servicePort: 9080

直接创建服务 查看ui管理界面

技术分享图片

 

 4.  我自己的windows机器办公访问

方法:

 修改 /etc/hosts 文件  增加部分内容

技术分享图片

 

 然后使用浏览器查看

一定要注意 我选中的这里的端口 

技术分享图片

 

 这个端口的来源 

我这边使用的样例是 nodeport的 很多笔记里面没有写 浪费了至少one hour 自己对k8s的理解 还是不够深入, 总是浪费时间..

技术分享图片

 












以上是关于k8s 使用 traefik 将clusterIP的 svc 暴露服务的方法的主要内容,如果未能解决你的问题,请参考以下文章

实操教程丨如何在K8S集群中部署Traefik Ingress Controller

实操教程丨如何在K8S集群中部署Traefik Ingress Controller

k8s实践12:traefik基础部署(外部访问kuberntes业务应用)

k8s ingress-controller 之 traefik

k8s ingress-controller 之 traefik 1.X

traefik透传用户端的真实ip(基于k8s平台)