我正在使用带有traefik入口的minikube创建粘性会话。
所以我已经完成了traefik的部署,用户指南kubernetes为我提供了traefik。 https://docs.traefik.io/user-guide/kubernetes/
我使用DaemonSet部署traefik。因为这是一个小项目,并且是我第一次使用kubernetes和docker。
这是我的入口Yaml文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cp-pluggin
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: cppluggins.minikube
http:
paths:
- path: /
backend:
serviceName: cp-pluggin
servicePort: 80
我的服务Yaml文件
apiVersion: v1
kind: Service
metadata:
name: cp-pluggin
annotations:
traefik.ingress.kubernetes.io/affinity: "true"
traefik.ingress.kubernetes.io/session-cookie-name: "sticky"
spec:
type: NodePort
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: cp-pluggin-app
最后,我的部署Yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: cp-pluggin-app
labels:
app: cp-pluggin-app
spec:
replicas: 3
selector:
matchLabels:
app: cp-pluggin-app
template:
metadata:
labels:
app: cp-pluggin-app
spec:
containers:
- name: cp-pluggin-app
image: essoca/ubuntu-tornado
ports:
- containerPort: 8080
我期望
Hello world from: [ipserver]
但是我得到了
bad gateway
答案 0 :(得分:0)
我假设您正在使用Traefik 2.0,这是目前的最新版本。此版本有很多更改,即不再使用注释。除此之外,我认为您发布的代码缺少大部分必需的更改。
此外,使用DaemonSet并不是很有用,因为您使用的是minikube,并且它始终是一个节点。使用Deployment至少可以让您使用Kubernetes的放大/缩小功能。
我写了这篇文章,可能对您有用Traefik 2 as Ingress Controller