• istio pod不启动及访问报RBAC错误问题解决


    istio pod不启动问题解决

    kubernetes集群中安装istio之后,在创建的depoyment中已经使用了注入注解sidecar.istio.io/inject: 'true’配置,但是istio pod不创建,代码示例如下

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: name-a
      namespace: namespace-a
      labels:
        app: xxxx
        app.kubernetes.io/name: xxx
        app.kubernetes.io/version: v1
        version: v1
      annotations:
        deployment.kubernetes.io/revision: '5'
        servicemesh.kubesphere.io/enabled: 'true'
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: xxxx
          app.kubernetes.io/name: xxx
          app.kubernetes.io/version: v1
          version: v1
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: xxxx
            app.kubernetes.io/name: xxx
            app.kubernetes.io/version: v1
            version: v1
          annotations:
            cni.projectcalico.org/ipv4pools: '["default-ipv4-ippool"]'
            kubesphere.io/restartedAt: '2024-03-01T05:44:45.617Z'
            sidecar.istio.io/inject: 'true'
        spec:
          containers:
            - name: xxx-v1
              image: image-a:0.0.1
              ports:
                - name: http-8080
                  containerPort: 8080
                  protocol: TCP
              resources:
                limits:
                  cpu: '2'
                  memory: 4Gi
                  nvidia.com/gpu: '0'
                requests:
                  nvidia.com/gpu: '0'
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              imagePullPolicy: Always
          restartPolicy: Always
          terminationGracePeriodSeconds: 30
          dnsPolicy: ClusterFirst
          serviceAccountName: default
          serviceAccount: default
          securityContext: {}
          imagePullSecrets:
            - name: harbor-secret
          schedulerName: default-scheduler
      strategy:
        type: RollingUpdate
        rollingUpdate:
          maxUnavailable: 25%
          maxSurge: 25%
      revisionHistoryLimit: 10
      progressDeadlineSeconds: 600
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    经排查对命名空间namespace-a需要设置注解属性为enabled.
    查看命令

    kubectl get namespace -L istio-injection
    
    • 1

    查看各个命名空间是否镜像istio-injection注解的设置。

    使用一下命令对命名空间属性进行配置

    kubectl label namespace namespace-a istio-injection=enabled
    
    • 1

    RBAC: access denied 问题解决

    部分参考 https://cloud.tencent.com/document/product/1261/62949

    经过以上修改后,istio pod可以自动创建起来,但是访问报错 RBAC: access denied。
    这里要查看授权策略,授权策略用于配置网格、namespace、服务/Workload 范围的访问管理规则。您可以通过 AuthorizationPolicy CRD 配置授权规则。AuthorizationPolicy 主要包含以下部分:

    • selector:指定策略的生效范围。
    • action:指定该策略是 ALLOW 策略还是 DENY 策略。
    • rules:授权规则主体,由from,to,where 3 部分构成。
      • from:指定请求的来源特征。
      • to:指定请求的操作特征。
      • when:指定授权规则的生效条件。

    当有 AuthorizationPolicy 的 ALLOW 和 DENY 策略应用于同一范围时,DNEY 策略的优先级高于 ALLOW 策略,生效的规则如下:

    1. 如请求匹配任何一条 DENY 策略,则拒绝该请求的访问。
    2. 如该范围没有任何 ALLOW 策略,则允许该请求的访问。
    3. 如当前该范围存在 ALLOW 策略,且请求匹配到了任何一条 ALLOW 策略,则允许该请求的访问。
    4. 拒绝该请求的访问。
      在这里插入图片描述
      执行命令
      kubectl get AuthorizationPolicy -A
      查看所有的授权策略,发现在istio-system空间下,有一个global-deny-all的策略。使用以下命令删除。
      kubectl delete AuthorizationPolicy -n istio-system global-deny-all

    问题解决。

  • 相关阅读:
    springboot校园安全通事件报告小程序-计算机毕业设计源码02445
    centos7.6 修改vi /etc/security/limits.conf ,不生效问题
    Linux内核知识点---线程与锁
    人工智能轨道交通行业周刊-第20期(2022.10.24-10.30)
    Wireshark在多媒体开发中的使用
    Logback日志记录只在控制台输出sql,未写入日志文件【解决】
    spring cloud系统安装涉及的技术说明
    prosemirror 学习记录(二)创建 apple 节点
    私藏!资深数据专家SQL效率优化技巧 ⛵
    【Opencv4快速入门】轮廓检测findContours
  • 原文地址:https://blog.csdn.net/quyingzhe0217/article/details/136394003