k8s笔记12
  YKMEHzdP8aoh 2023年11月13日 27 0

摘要:

VirtualService-hosts;Gateway-hosts;websockets;os halt;


1、kubectl  apply -f yaml假如yaml里没有指定namespace,可以在kubectl命令中指定;yaml里指定namespace也是kubectl -n bookinfo优先。

# kubectl -n bookinfo apply -f yaml

2、问题:Gateway和VirtualService的hosts设置都为- "*",浏览器访问http://book.atc.com:30933/hello失败HTTP ERROR 404;Gateway或vs添加上  - "book.atc.com",顺序无关,浏览器访问正常。

kind: Gateway
spec:
  servers:
  - port:  
    hosts:
    - "*"
    - "book.atc.com"
---
kind: VirtualService
spec:
  hosts:
  - "book.atc.com"
  - "*"
C:\Windows\System32\drivers\etc\hosts
192.168.31.213  book.atc.com

3、部署websockets示例应用程序,在ingress-nginx入口流量上使用升级的websockets连接。app.yaml创建了一个Kubernetes服务和一个部署,该部署基于Hirakis的Tornado Websocket的Docker映像。

  • WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket在浏览器和服务器之间创建持久性的连接,并进行双向数据传输,允许服务端主动向客户端推送数据,而不是轮询
  • 在 Ingress 中访问不同命名空间下的服务;跨命名空间的 Ingress 的配置。ingress在study命名空间,tornado在bookinfo命名空间,所以在study命名空间创建type: ExternalName的Service:tornado-ext
  • 处于study命名空间下的ingress-test中- backend:项不支持svc-name.ns-name.svc.cluster.local 方式跨命名空间访问的方式;要访问到处于bookinfo命名空间下的tornado,使用使用 ExternalName 方式。
# k -n study get ingress,svc
NAME                                     CLASS   HOSTS                         ADDRESS        PORTS  
ingress.networking.k8s.io/ingress-test   nginx   ingress.test.com,dj.atc.com   10.16.205.49   80     
NAME                      TYPE           CLUSTER-IP      EXTERNAL-IP                          PORT(S)        
service/nginx             ClusterIP      10.16.39.192    <none>                               80/TCP       
service/tornado-ext       ExternalName   <none>          tornado.bookinfo.svc.cluster.local   <none>    
---使用ExternalName将外部服务映射到内部服务---
apiVersion: v1
kind: Service
metadata:
  name: tornado-ext
  namespace: study
spec:
  type: ExternalName
  externalName: tornado.bookinfo.svc.cluster.local
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-test
  namespace: study
spec:
  ingressClassName: nginx
  rules:
  - host: dj.atc.com
    http:
      paths:
      - backend:
          service:
            name: tornado-ext
            port:
              number: 8888
        path: /
        pathType: ImplementationSpecific
# kb get svc
tornado        ClusterIP   10.16.171.87    <none>        8888/TCP 
---Set the "id 1" value to 300( The row No 1 will change to yellow )---
# curl "http://10.16.171.87:8888/api?id=1&value=300"
---Set The "id 1" value to 600( The row No 1 will change to red )---
# curl "http://10.16.171.87:8888/api?id=1&value=600"

k8s笔记12_Windows

4、websockets示例应用程序,演示了在使用Istio VirtualService时的测试情况。

  • 注意:v1alpha3路由规则中添加的websockets升级支持是在Istio v0.8.0发布后才添加的。
  • 测试问题:必须是根目录prefix: / 不能prefix: /tornado,否者报错“404: Not Found”,原因未明
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: tornado
  namespace: bookinfo  
spec:
  hosts:
  - "*"
  - "book.atc.com"
  gateways:
  - tornado-gateway
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: tornado
        port:
          number: 8888
      weight: 100
  • Istio vs使用地址重写,浏览器访问http://192.168.31.216:30933/tornado页面有显示,但是WebSocket status : closed。curl测试主动向客户端推送数据功能失败。value值一直为0,不变。

k8s笔记12_Windows_02

- uri:
        prefix: /tornado
    rewrite:
        uri: /
---Set The "id 1" value to 600( The row No 1 will change to red )---
# curl "http://10.16.171.87:8888/api?id=1&value=600"

5、替换libc.so.6导致centos7.9系统halt,但是自动重启正常。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  it2nV7RK7uw1   2023年11月28日   53   0   0 DockerWindows
  TPuMqpEEfx4n   2023年11月14日   53   0   0 Windowscmd
  7BPBXg9HtzBk   2023年11月19日   31   0   0 Windows偏好设置