Estoy usando el cliente javascript de Kubernetes con configuraciones en el clúster para interactuar con el clúster.
Estoy tratando de obtener la lista de trabajos.
app.js(Nodo)
app.get("/", (req, res) => { k8sApi2 .listNamespacedJob("default") .then((res) => { console.log(res.body); res.send(res.body); }) .catch((err) => console.log(err)); });Pero este es el registro del pod que estoy recibiendo.
Aquí está mi despliegue
Servicio
Además, creé un rol y un enlace de rol, pero aún así, no tengo idea de qué hace este problema.
--- apiVersion: v1 kind: ServiceAccount metadata: name: node-apis --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: node-apis rules: - apiGroups: - "" - "apps" - "batch" resources: - endpoints - deployments - pods - jobs verbs: - get - list - watch - create - delete --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: node-apis namespace: default subjects: - kind: ServiceAccount name: node-apis namespace: default roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: node-apisSoy nuevo en Kubernetes, ¿alguna ayuda?
Debe usar la cuenta de servicio especificándola en la sección de especificaciones del pod. Dado que no lo está haciendo, está usando la cuenta de servicio default que no tiene Role y RoleBinding que permitan la operación, lo que genera un error forbidden .
spec: serviceAccountName: node-apis containers: ... Alternativamente, puede otorgar permiso a la cuenta de servicio default en RoleBinding
kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: node-apis namespace: default subjects: - kind: ServiceAccount name: default namespace: default roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: node-apis