首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从istio service Mesh上工作节点中的服务连接到Kubernetes API Server

从istio service Mesh上工作节点中的服务连接到Kubernetes API Server
EN

Stack Overflow用户
提问于 2020-08-23 17:25:37
回答 1查看 255关注 0票数 1

我有一个安装了Istio的AKS集群。我正在使用Kubernetes Client for C#在我的集群上执行一些操作(读取和创建秘密)。为此,我配置了适当的集群角色和绑定:

代码语言:javascript
复制
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: secret-creator
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create", "get", "list", "delete", "update"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: secret-creator
subjects:
- kind: ServiceAccount
  name: default
  namespace: default

当前服务在默认命名空间中,并在默认服务帐户下运行。我为整个集群设置了PeerAuthentication和DestinationRules,如下所示:

代码语言:javascript
复制
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: default
  namespace: default
spec:
  mtls: {}

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: Mdestinationrule
  namespace: default
spec:
  host: "*"
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL

有了这些配置后,我的服务无法与API服务器进行通信,无法使用KubeClient(client.ReadNamespacedSecret,secretNamespace)。当我禁用我的destinationRule时,事情就开始工作了。

由于某些限制,我不能修改现有的destiationRules,也不能在单独的名称空间中部署我的服务。我需要帮助知道我是否可以在与API服务器通信时放入某种过滤器或类似的东西,这样通信就不是mTls了?

敬请指教。

EN

回答 1

Stack Overflow用户

发布于 2020-08-27 02:48:03

这对我很有效:

代码语言:javascript
复制
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: Mdestinationrule
  namespace: default
spec:
  host: "*.kubernetes.default.svc" #Disabling it for Kube API Server communication
  trafficPolicy:
    tls:
      mode: DISABLE
  host: "*.default.svc" 
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63545379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档