考试题目练习常用命令-练习这个就完事

考试常用命令大全

设置自动补全

登陆管理节点
kubectl --help | grep bash,此步是为了找关键词completion

sudo vim /etc/profile
添加source <(kubectl completion bash)
file

5.保存退出,source /etc/profile

题目一. RBAC

Task
创建一个名为deployment-clusterrole	且允许创建以下资源类型的新ClusterRole:
Deployment
StatefulSet
DaemonSet
在现有的namespace app-team1中创建一个名为cicd-token的新ServiceAccount
限于namespace app-team1,将新的ClusterRole deployment-clusterrole绑定到新的ServiceAccount cicd-token

参考答案:

没必要参考网址,使用-h 帮助更方便。
kubectl create clusterrole -h
kubectl create serviceaccount -h
kubectl create rolebinding -h

# kubectl config use-context k8s            #切换集群                   
# kubectl create rolebinding -h
# kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,daemonsets,statefulsets               #注意:要写小写,每个需要添加一个s
# kubectl create serviceaccount -h
# kubectl create serviceaccount cicd-token -n app-team1
# kubectl create clusterrole -h   
# kubectl create rolebinding cicd-binding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token -n app-team1
# 注意cicd-binding (这个名字可以任意,叫abc也行。)
查看
kubectl describe clusterrole deployment-clusterrole 
kubectl describe rolebinding -n app-team1
kubectl get serviceaccout -n 命名空间

题目二. Top

Task
通过pod label name=cpu-utilizer,找到运行时占用大量cpu的pod,并将占用cpu最高的pod名称写入文件/opt/KUTR00401.txt(已存在)

参考答案:

# kubectl config use-context k8s            #切换集群
# kubectl top pod -h
# kubectl top pod -l name=cpu-utilizer --sort-by='cpu' -A
# echo <podname> >/opt/KUTR00401/KUTR00401.txt   #注意:这里由于翻译问题可能文件名字不存在,可以先进去/opt下,确认这个文件具体目录在写入进去,别新建文件目录,否则没分。

题目三. Networkpolicy

Task
在现有的namespace my-app中创建一个名为allow-port-from-namespace的新NetworkPolicy
确保新的NetworkPolicy允许namespace my-app中的Pods来连接到namespace big-corp中的端口8080
进一步确保新的NetworkPolicy:
不允许对没有在监听端口8080的pods的访问
不允许不来自namespace my-app中的pods的访问


双重否定就是肯定,所以最后两句话的意思就是:
仅允许端口为 8080 的 pod 访问。
仅允许 my-app命名空间中的 pod 访问。

参考答案:

官网链接:https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/
官网->概念->服务->网络策略
或 在搜索写入 network policy
 
# kubectl config use-context hk8s
#kubectl get namespaces --show-labels  查看命名空间
# kubectl label namespace big-corp name=big-corp           #将命名空间标签
#如果访问者的 namespace 没有标签 label,则需要手动打一个。如果有一个独特的标签 label,则也可以直接使用
# vim 03.yaml
内容参考下方
# kubectl apply -f   networkpolicy.yaml
# kubectl get networkpolicy -nmy-app   #查看状态。如果脚本报错,可能是命名空间标记没标注导致脚本报错。

题目四: Service

Task
请重新配置现有的部署front-end 以及添加名为http的端口规范来公开现有容器nginx的端口80/tcp
创建一个名为front-end-svc的新服务,以公开容器端口http
配置此服务,以通过在排定的节点上的NodePort来公开各个Pods

参考答案

官网地址:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/
文档主页-->概念-->工作负载-->工作负载资源-->deployments
或搜索 deployment
#  kubectl config use-context k8s
#  kubectl get svc                      # 查看服务有没有启动,考试不需要
#  kubectl edit deployment front-end   # 注意,已经存在pods,修改即可,改动如下:
在name和resources中间插入,然后保存:wq

# kubectl expose -h
# kubectl expose deployment front-end --port=80 --target-port=80 --type=NodePort --name=front-end-svc
#说明,deployment 接的是pod名字,外部端口,容器端口,type别漏了,--name=svc名字
# kubectl get deployment front-end -owide      #查看配置
# kubectl get svc                              #查看服务
# curl svc-ip:端口                              #验证是否访问到nginx

image-20230316105934602

题目五. Ingress

Task
如下创建一个新的nginx ingress资源:
名称:pong
Namespace:  ing-internal   
使用服务端口5678在路径/hello上公开服务hello
可以使用以下命令检查服务hello的可用性,该命令应返回hello:
curl -kL <INTERNAL_IP>/hello

参考答案

官网地址:https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/#the-ingress-resource
文档路径:概念 --> 服务,负载均衡和联网  --> Ingress-->第一个示例
或搜索ingress
# kubectl config use-context k8s
# vim ingress.yml
# kubectl apply -f 05.yaml
# curl -kL ip/hello  


3、验证
kubectl get ingress -ning-internal
curl -kL internal_IP/hello

image-20230316111148392

题目六. 副本扩容

Task
将deployment从loadbalancer扩展至5 pods

参考答案:

# kubectl config use-context k8s

#kubectl scale deployment -h  查看帮助
# kubectl get deployment
# kubectl scale deployment loadbalancer --replicas=5  #记住scale既可以

3、验证
kubectl get po
kubectl get deployment

题目七. 分配Pod

Task
按如下要求调度一个pod
名称:nginx-kusc00401
Image: nginx
Node selector: disk=ssd

参考答案:

官网地址:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/assign-pods-nodes/
文档主页-->任务-->配置pods和容器-->将 Pod 分配给节点
或搜索pod
# kubectl config use-context k8s
# kubectl get node --show-labels  查看标签
# kubectl label node k8s-node1 disk=ssd 没有就打标签

# kubectl apply -f 07.yaml
# kubectl get pods nginx-kusc004001 -owide

image-20230316122736481

od

kubectl config use-context k8s

kubectl get node --show-labels 查看标签

kubectl label node k8s-node1 disk=ssd 没有就打标签

kubectl apply -f 07.yaml

kubectl get pods nginx-kusc004001 -owide


[外链图片转存中...(img-wbONEg0l-1682489908177)]



## 题目八: 统计污点
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值