外部使用 k8s 建置好的服務
快速建置 traefik ingress controller …
安裝
k8s-m1> git clone https://github.com/jamesblockk/blog-cicd.git
k8s-m1> cd k8s-traefik
設定 k8s 節點標籤
format : kubectl label nodes [node-name] [key=value]
k8s-m1 k8s-traefik > kubectl label nodes k8s-n1 IngressProxy=true
查看 k8s 節點標籤
k8s-m1 k8s-traefik > kubectl get nodes --show-labels
部署 traefik
k8s-m1 k8s-traefik > kubectl apply -f crd.yaml
k8s-m1 k8s-traefik > kubectl apply -f rbac.yaml
k8s-m1 k8s-traefik > kubectl apply -f config.yaml
k8s-m1 k8s-traefik > kubectl apply -f deploy.yaml
部署 traefik-dashboard
k8s-m1 k8s-traefik > kubectl apply -f dashboard.yaml
到 client 端
echo "your-node-ip traefik.awesome-domain.com" >> /etc/hosts
curl traefik.awesome-domain.com
現在到 瀏覽器 瀏覽 http://traefik.awesome-domain.com 可以看到網頁了~
service 設定
回到 k8s-m1 設定 service
service-hello.yaml
---
apiVersion: v1
kind: Service
metadata:
name: hello-app
spec:
selector:
app: hello-app
ports:
- protocol: TCP
port: 80
targetPort: 80
k8s-m1 > kubectl apply -f service-hello.yaml
設定 ingress
ingress-hello.yaml
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: service-ingress
spec:
rules:
- host: traefik.testdomain.com
http:
paths:
- path: /hello
backend:
serviceName: hello-app
servicePort: 80
k8s-m1 > kubectl apply -f ingress-hello.yaml
到 要瀏覽的主機 設定 client 的 dns 解析
echo "your-node-ip traefik.testdomain.com" >> /etc/hosts
執行
curl traefik.testdomain.com/hello
完成!!!!!