首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Kubernetes内的容器访问Kubernetes API

从Kubernetes内的容器访问Kubernetes API
EN

Stack Overflow用户
提问于 2017-05-25 14:14:23
回答 1查看 210关注 0票数 0
  • 我在一个小型“集群”上发射了一个吊舱:

Yaml:

代码语言:javascript
复制
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: orchestration

---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: orchestration
rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs: ["*"]

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: orchestration
roleRef:
  kind: ClusterRole
  name: orchestration
  apiGroup: rbac.authorization.k8s.io
subjects:
  - kind: ServiceAccount
    name: orchestration
    namespace: default

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: orchestration-master
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: orchestration
    spec:
      serviceAccountName: orchestration
      containers:
        - name: orchestration
          image: joan38/orchestration:latest
          ports:
            - name: ui
              containerPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: orchestration-ui
spec:
  type: NodePort
  selector:
    app: orchestration
  ports:
    - name: http
      protocol: TCP
      port: 80
      nodePort: 31010
      targetPort: 8080
  • 连接到吊舱:kubectl exec -ti --namespace default myContainer bash
  • 查询API:curl -k https://kubernetes.default.svc.cluster.local/api/v1
  • 导致Unauthorized

为什么?我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-25 14:58:24

服务帐户的凭据在/var/run/secrets/kubernetes.io/serviceaccount上挂载。

代码语言:javascript
复制
curl https://kubernetes.default.svc.cluster.local/api/v1 \
  --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \
  -H "Authorization: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44182766

复制
相关文章

相似问题

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