Kubernetes学习笔记(二十八):Service Accounts、Image Security
Service Accounts
kubectl create serviceaccount dashboard-sa
kubectl get serviceaccount
kubectl describe serviceaccount dashboard-sa
当创建Service Account时,首先创建 Service Account 对象,然后为服务账户生成令牌
查看secret token:kubectl describe secret dashboard-sa-token-kbbdm
利用 Service Account 创建 token:kubectl create token sa-name
默认采用 default
的 Service Account,可以在deployment指明 Service Account,在 pod spec 下添加 serviceAccountName: sa-name
使用curl访问:
curl https://192.168.56.70:6443/api -insecure --header "Authorization: Bearer <dashboard-sa-token-kbbdm>"
每个namespace都会创建 default 的 Service Account:kubectl exec -it my-kubernetes-dashboard ls /var/run/secrets/kubernetes.io/serviceaccount
,默认只有运行基本的Kubernetes API 查询的权限
无法编辑pod中的Service Account,只能删除后新建,在deployment中可以。
如果不想自动挂载Service Account,可以设置:
spec:
automountServiceAccountToken: false
Image Security
image: docker.io/library/nginx
:不指定用户名或账户名,则会假定为library。Registry,User/Account,Image/Repository
docker login private-registry.io
docker run private-registry.io/apps/internal-app
kubectl create secret docker-registry regcred \ ## 取名为regcred
--docker-server= private-registry.io \
--docker-username= registry-user \ ## 类型为docker-registry
--docker-password= registry-password \
--docker-email= registry-user@org.com
deployment 应用 secret 需要添加以下设置:
spec:
imagePullSecrets:
- name: regcred
查看哪个user在运行pod:kubectl exec pod-name -- whoami
修改 securityContext
spec:
securityContext:
runAsUser: 1010 ## 设置在pod或container level
spec:
securityContext:
capabilities: ## 设置在container level
add: ["SYS_TIME"]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?