所有命令都验证过,有更好的方式,欢迎留言~~~
CKA 习题和真题汇总
CKA考试经验:报考和考纲
CKA :2019年12月英文原题和分值
CKA考试习题:K8S基础概念--API 对象 CKA考试习题:调度管理- nodeAffinity、podAffinity、Taints CKA考试习题:K8S日志、监控与应用管理 CKA考试习题:网络管理-Pod网络、Ingress、DNS CKA考试习题:存储管理-普通卷、PV、PVC CKA考试习题:安全管理--Network Policy、serviceaccount、clusterrole CKA考试习题:k8s故障排查 CKA真题:题目和解析-1 CKA真题:题目和解析-2 CKA真题:题目和解析-3 CKA真题:题目和解析-4 CKA真题:题目和解析-5 CKA真题:题目和解析-6CKA真题:手动配置TLS BootStrap
更多CKA资料或交流:可加 wei xin :wyf19910905
安全管理 大 纲• 安全全景图
• 认证和鉴权
• Admissions与安全的持久化保存
键值(etcd)
• Pod SecurityContext(安全上下
文)
• Network Policy
Kube-apiserver的启动参数’—admissioncontrol=PodSecurityPolicy’新增PodSecurityPolicy
admission
• Admin用户创建PodSecurityPolicy策略,决定
能创建什么样的Pod
• 创建Pod的用户也必须赋予它能使用
PodSecurityPolicy策略的权限
etcd支持备份恢复机制,防止数据被误删导致数据丢失
• 用户的敏感信息建议存放在secret类型的资源中,该类型资源是加密存储在etcd中
• etcd支持https, kube-apiserver访问etcd使用https协议
1. 创建一个Role(只有cka namespace下pods的所有操作权限)和RoleBinding(使用
serviceaccount认证鉴权),使用对应serviceaccount作为认证信息对cka namespace
下的pod进行操作以及对default namespace下的pods进行操作。
– Role和RoleBinding的名称的名称为pod-reader
#通过命令获取yaml kubectl get clusterrole view -oyaml > /home/term/role.yaml # 创建Role kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: cka name: pod-reader rules: - apiGroups: [""] # "" indicates the core API group resources: ["pods"] verbs: ["get", "watch", "list"] #通过命令获取yaml kubectl get clusterrolebinding view -oyaml > /home/term/rolebinding.yaml # 创建serviceaccount kubectl create serviceaccount pod-reader -n cka # 创建RoleBinding kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: cka name: pod-reader subjects: - namespace: cka kind: ServiceAccount name: pod-reader roleRef: kind: Role name: pod-reader apiGroup: rbac.authorization.k8s.io/v1 # 获取token # 查看secret名称 kubectl get secret -n cka # 查看token kubectl get secret -n cka pod-reader-token-jhrbp -oyaml| grep token: | awk '{print $2}' | base64 -d # 查看和设置证书 kubectl config view kubectl config set-credentials fly --token=XXX
# 设置context kubectl config set-context fly --cluster=internalCluster --user=fly # 切换context kubectl config use-context fly # 验证 使用kubectl get pods 报错
2. 部署三个deployment应用( A, B, C),允许A访问B应用,但是不允许C访问B应用。
– Deployment的名称为<hwcka-006--你的华为云id>
– Network Policy的名称为# 部署三个deployment应用( A, B, C) kubectl run hwca-006-fly-a --image=nginx kubectl run hwca-006-fly-b --image=nginx kubectl run hwca-006-fly-c --image=nginx # 查看POD的IP kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE hwca-006-fly-a-86bc7d5458-9rb8z 1/1 Running 0 3m 172.16.1.5 192.168.0.4 hwca-006-fly-b-6b46744466-vtcdw 1/1 Running 0 3m 172.16.1.6 192.168.0.4 hwca-006-fly-c-85c7c8954b-ndnql 1/1 Running 0 3m 172.16.1.7 192.168.0.4 # B应用打标签 kubectl label pod hwca-006-fly-b-6b46744466-vtcdw role=hwcka-006-1-fly-role # Network Policy--允许A访问B应用,但是不允许C访问B应用 vi network-policy.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name:hwcka-006-fly namespace: cka spec: podSelector: matchLables: role: hwcka-006-1-fly-role policyTypes: - Ingress ingress: - from: - ipblock: cidr: 172.16.1.0/28 expect: 172.16.1.7
Network Policy说明
作者:琦彦