zoukankan      html  css  js  c++  java
  • [k8s]k8s架构图解

    k8s架构图解

    k8s架构图解

    启动参数及证书梳理

    这里写图片描述

    master端必须要装flannel

    注: flannel网络能确保各节点间 Pod 网段实现互通
    master 节点与 node 节点上的 Pods 通过 Pod 网络通信,所以需要在 master 节点上部署 Flannel 网络。

    这里写图片描述

    外部访问集群的方式:

    • 1,ingress
    • 2,通过apiserver 这种方式结合kube-proxy kubectl proxy --address='10.64.3.7' --port=8086 --accept-hosts='^*$'
      可以做一些内部url的一些限制.

    浏览器访问 URL:http://10.64.3.7:8086/ui 自动跳转到:http://10.64.3.7:8086/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard/#/workload?namespace=default

    如果不做kubectl proxy 则意味着外界访问api没任何限制,加上后可以做一些限制.

    kubectl proxy -h
    ...
    Options:
          --accept-hosts='^localhost$,^127.0.0.1$,^[::1]$': Regular expression for hosts that the proxy should accept.
          --accept-paths='^.*': Regular expression for paths that the proxy should accept.
          --address='127.0.0.1': The IP address on which to serve on.
          --api-prefix='/': Prefix to serve the proxied API under.
          --disable-filter=false: If true, disable request filtering in the proxy. This is dangerous, and can leave you
    vulnerable to XSRF attacks, when used with an accessible port.
      -p, --port=8001: The port on which to run the proxy. Set to 0 to pick a random port.
          --reject-methods='POST,PUT,PATCH': Regular expression for HTTP methods that the proxy should reject.
          --reject-paths='^/api/.*/pods/.*/exec,^/api/.*/pods/.*/attach': Regular expression for paths that the proxy should
    reject.
      -u, --unix-socket='': Unix socket on which to run the proxy.
      -w, --www='': Also serve static files from the given directory under the specified prefix.
      -P, --www-prefix='/static/': Prefix to serve static files under, if static file directory is specified.
    
    Usage:
      kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [options]
    
    

    我认为 kubectl proxy --address='10.64.3.7' --port=8086 --accept-hosts='^*$' 不止可以加访问acl一个功能,还修改了监听地址.不然外界也访问不到.

    [root@master]# kubectl clusterinfo
    Command "clusterinfo" is deprecated, use "cluster-info" instead
    Kubernetes master is running at http://localhost:8080
    Heapster is running at http://localhost:8080/api/v1/namespaces/kube-system/services/heapster/proxy
    KubeDNS is running at http://localhost:8080/api/v1/namespaces/kube-system/services/kube-dns/proxy
    kubernetes-dashboard is running at http://localhost:8080/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
    

    kube cluster info显示的内容由什么控制?

    参考:https://kubernetes-v1-4.github.io/docs/user-guide/kubectl/kubectl_cluster-info/

    Display addresses of the master and services with label kubernetes.io/cluster-service=true

    apiVersion: v1
    kind: Service
    metadata:
      name: kubernetes-dashboard
      namespace: kube-system
      labels:
        k8s-app: kubernetes-dashboard
        kubernetes.io/cluster-service: "true"  #只需要加上这句就可以cluster-info显示了,就可以直接通过kube-proxy访问了
    
    

    traefix工作过程图解

    这里写图片描述

    ci流程

    这里写图片描述

  • 相关阅读:
    vue : 无法加载文件 C:Users1AppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    Flutter 常用的第三方库
    Dart 中的类
    Flutter 学习
    在 VSCode 中开发Flutter项目
    Flutter 环境配置的一些坑
    前端资源和优秀项目地址
    一小时学习JQuery材料
    基于RCT6的YX6100语音模块方案
    Java中反射和内省代码实例
  • 原文地址:https://www.cnblogs.com/iiiiher/p/7838989.html
Copyright © 2011-2022 走看看