envoy网络部署笔记

架构示意图

envoy需要使用到CONTOUR,所以我们先部署CONTOUR,官网

1)使用快速部署

kubectl apply -f https://projectcontour.io/quickstart/contour.yaml

2)创建一个简单的demo范例

我这里使用的httpproxy高级路由管理,比较强大,可以自定义很多的规则。

apiVersion: projectcontour.io/v1
kind: HTTPProxy
metadata:
  name: httpproxy-demo
  namespace: default
spec:
  virtualhost:
    fqdn: www.ik8s.io   #定义虚拟主机名,一般设置你的域名
    tls:    #设置https访问协议
      secretName: ik8s-tls      #这个secret需要你提前创建好的,tls这一块如果不需要可以注释掉。
      minimumProtocolVersion: "tlsv1.1"   #这是兼容的tls最低版本
  routes:
  - conditions:
    - prefix: /
    services:
    - name: demoapp-deploy
      port: 80
    permitInsecure: true    #是否重定向到https协议,你也可以理解为是否强制https,true是不强制https,就是你访问http也可以https也可以,如果是false到话你访问http到话会强制跳转到https
#注意如果直接采用访问IP地址的话可能会访问不同,建议通过域名访问。

3)测试

#部署
kubectl apply -f httpproxy-demo.yaml
#查看envoy映射的端口,下面会用到
kubectl get svc -n projectcontour
NAME      TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
contour   ClusterIP      10.107.197.123   <none>        8001/TCP                     103m
envoy     LoadBalancer   10.102.101.40    <pending>     80:30651/TCP,443:32481/TCP   103m
#访问
[root@master1 chapter13]# curl http://www.ik8s.io:30651
iKubernetes demoapp v1.0 !! ClientIP: 10.244.135.57, ServerName: deployment-demo-fb544c5d8-s8wh8, ServerIP: 10.244.135.53!
[root@master1 chapter13]#  curl -k https://www.ik8s.io:32481
iKubernetes demoapp v1.0 !! ClientIP: 10.244.104.15, ServerName: deployment-demo-fb544c5d8-2242p, ServerIP: 10.244.166.184!

注意⚠️:以上所使用的demo采用的是马哥的教学demo,如有需要我已经放在我的公众号上了。可前往公众号「自在拉基」回复envoy获取demo pod。

4)问题

上面所使用的域名需要你们自行配置dns或者修改测试机上的host文件,如果通过ip访问的话会有可能访问不了,域名是没问题的。

原文地址:https://www.cnblogs.com/98record/p/envoy-wang-luo-bu-shu.html