kubernetes-traefik(二十一)
时间:2022-07-26
本文章向大家介绍kubernetes-traefik(二十一),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
参考文档:http://traefik.cn/
traefik和ingress的对比
ingress:
使用nginx作为前端负载均衡,通过ingress controller不断的和kubernetes api交互,实时获取后端service,pod等的变化,然后动态更新nginx配置,并刷新使配置生效,达到服务发现的目的。
traefik:
traefik本身设计的就能够实时跟kubernetes api交互,感知后端service,pod等的变化,自动更新配置并重载。
traefik更快速方便,同时支持更多的特性,使反向代理,负载均衡更直接更高效
helm部署traefik
下载traefik需要用到的chart
[root@k8s-master ~]# git clone https://github.com/helm/charts.git
修改traefik使用宿主机网络
[root@k8s-master ~]# vim charts/stable/traefik/templates/deployment.yaml
hostNetwork: true
配置dashboard
[root@k8s-master ~]# cd charts/stable/
[root@k8s-master stable]# vim traefik/traefik.yaml
serviceType: NodePort
replicas: 1
resources:
limits:
cpu: 500m
memory: 512Mi
dashboard:
enabled: true
domain: traefik.test.com
service:
nodePorts:
http: 30080
https: 30443
rbac:
enabled: true
metrics:
prometheus:
enabled: true
部署
[root@k8s-master stable]# helm install ./traefik --name traefik --namespace kube-system -f traefik/traefik.yaml
[root@k8s-master ~]# kubectl get pod -n kube-system -o wide |grep traefik
traefik-74df464495-w288l 0/1 Running 0 7s 192.168.0.123 k8s-node01 <none> <none>
[root@k8s-node01 ~]# netstat -tnlp |grep traefik
tcp6 0 0 :::8080 :::* LISTEN 110720/traefik
tcp6 0 0 :::8880 :::* LISTEN 110720/traefik
tcp6 0 0 :::80 :::* LISTEN 110720/traefi
部署应用
[root@k8s-master demo]# cat deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-backend-pod
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: myapp
release: canary
template:
metadata:
labels:
app: myapp
release: canary
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v2
ports:
- name: http
containerPort: 80
[root@k8s-master demo]# cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: default
spec:
selector:
app: myapp
release: canary
ports:
- name: http
targetPort: 80
port: 80
[root@k8s-master demo]# kubectl apply -f .
deployment.apps/myapp-backend-pod created
service/myapp created
[root@k8s-master demo]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 46h
myapp ClusterIP 10.1.125.169 <none> 80/TCP 43s
[root@k8s-master demo]# curl 10.1.125.169
Hello MyApp | Version: v2 | <a href="hostname.html">Pod Name</a>
配置ingress规则使集群外部访问
[root@k8s-master demo]# cat ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-ingress
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: hello.test.com
http:
paths:
- path: /
backend:
serviceName: myapp
servicePort: 80
[root@k8s-master demo]# kubectl apply -f ingress.yaml
ingress.extensions/hello-ingress created
traefik的Dashboard
一个简单的Dashboard, 可以看当前的路由规则,和转发的结果统计。
- Day5下午解题报告1
- [编程经验] Python中处理时间的方法小结
- 数据城堡参赛代码实战篇(一)---手把手教你使用pandas
- [编程经验] SciPy之图像处理小结
- Day6上午解题
- TensorFlow从0到1 - 5 - TensorFlow轻松搞定线性回归
- Day6下午题解1
- [编程经验]Python中os模块最最常用的方法
- HDU3853
- [编程经验]Python中的Lambda,Map, Reduce小结
- TensorFlow从0到1 - 6 - 解锁梯度下降算法
- linux下join命令的用法
- [编程经验] 我是如何半自动抓取素材公社图片的
- linux 便捷使用防火墙控制端口访问
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何在centos7上看墙外的世界
- 远程仓库的使用
- 破解某交(y)友(p)app的VIP&&半自动im机器人
- 关于compareTo使用的几种情况
- 高通量数据中批次效应的鉴定和处理(二)
- 通过ansible管理docker容器
- HBASE 技术细节 读取与写入 Region Split与合并介绍
- django2.2+Daphne+nginx+supervisor 生产环境部署
- Python 爬虫进阶必备 | 趣解某不可逆加密(短文警告)
- confluence6.3安装与破解
- git分支
- git使用介绍
- jenkins添加git地址时报错问题
- git基础—-标签
- zabbix添加自定义模板以及自动发现等