赞
踩
资源注解,annotations就是对资源进行注释;
应用场景:
给资源(例如pod资源)提供配置信息,类似于帮助信息;
早期使用比较多,很多开源组件一般都会使用;
[root@k8s231 annottations]# cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-01
labels:
k8s: xinjizhiwa
kubernetes: k8s
#资源注解(也是键值对写法)
annotations:
help: is a playbook,please user know it
a: b
b: c
c: d
spec:
containers:
- name: c1
image: centos:7
command:
- "tail"
- "-f"
- "/etc/hosts"
[root@k8s231 annottations]# kubectl apply -f pod.yaml
[root@k8s231 annottations]# kubectl describe pods pod-01
Name: pod-01
Namespace: default
Priority: 0
Node: k8s233/10.0.0.233
Start Time: Thu, 15 Feb 2024 19:14:00 +0800
Labels: k8s=xinjizhiwa
kubernetes=k8s#资源注解位置;
Annotations: a: b
b: c
c: d
help: is a playbook,please user know it..................
当我们运行一个pod的容器的时候,存在一个风险,就是当有人登录到容器当中时,使用root用户登录,并修改文件等危险操作,会导致业务出现严重的安全问题,因此,k8s提供了安全上下文securitycontext,用来控制有人登录到容器当中进行的操作;
[root@k8s231 securitycontext]# cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-centos7
spec:
containers:
- name: c1
image: centos:7
command: ["tail","-f","/etc/hosts"]
#配置pod的容器中安全相关属性
securityContext:
#配置容器为特权容器,若配置了特权容器,可能对capabilities测试有影响;
#privileged: true
#自定义linux内核特性
capabilities:
#添加所有的linux内核功能
add:
- ALL
#移除指定linux内核特性
drop:
#代表禁用网络管理的配置
- NET_ADMIN
#代表禁用uid和gid,表示你无法使用chown命令;
- CHOWN
#禁用chroot命令
- SYS_CHROOT
#如果容器的进程以root身份运行,则禁止容器启动;
runAsNonRoot: true
#指定运行容器的用户uid,注意该用户的uid必须事先存在于镜像中;
runAsUser: 666
[root@k8s231 securitycontext]# kubectl apply -f pod.yaml
[root@k8s231 securitycontext]# kubectl exec -it pod-centos7 -- sh
sh-4.2$ whoami
whoami: cannot find name for user ID 666
sh-4.2$ cd /root
sh-4.2$ ls -l
total 4
-rw------- 1 root root 3416 Nov 13 2020 anaconda-ks.cfg
sh-4.2$ touch 1.txt
touch: cannot touch '1.txt': Permission denied
可以看见,没有这个666的用户,什么都干不了;
至此,安全上下文于资源注解完毕;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。