前言
上一篇文章分享了CKA考试和前5个题目及其解答,这一篇继续分享6-10题。
第六题:使用service暴露应用
题目:重新配置现有的deployment “front-end”以及添加名为http的端口规范来公开现有的容器nginx的端口80/tcp
# 加入考试context是ek8s
$ kubectl config use-context ek8s
# 在线编辑deployment,加入这一段,编辑后保存即可修改资源
$ kubectl edit deployment front-end
…
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
ports:
- name: http
protocol: TCP
containerPort: 80
…
# 我比较喜欢使用命令暴露而不是写yaml文件
$ kubectl expose deployment front-end --port=80 --target-port=80 --type=NodePort --name=front-end-svc
第七题:创建一个ingress资源以暴露应用
题目:创建一个名称为”ingress-nginx“的资源namespace为ing-internal,使用服务端口6587在路径/index上公开服务index
# 加入题目context为ik8s
$ kubectl config use-context ik8s
# 编写ingress资源yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-nginx
namespace: ing-internal
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /index
pathType: Prefix
backend:
service:
name: index
port:
number: 6587
# 创建后查看ingress
$ kubectl get ingress -n ing-internal
$ curl -kL <获取 ingress 的 IP 地址>/index
第八题:扩容pod的数量
题目:将名为 "application"的deployment扩展至5个pods
$ kubectl config use-context k8s
$ kubectl scale deployment application --replicas=5
第九题:nodeSelector调度
题目:按照如下要求调度一个pod
name:nginx-kube001
image:nginx
Node selector:diskType=ssd
apiVersion: v1
kind: Pod
metadata:
name: nginx-kube001
spec:
containers:
- name: nginx
image: nginx
nodeSelector:
diskType: ssd
$ kubectl get po nginx-kusc00401 -o wide
# 参考:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-podnode/
第十题:统计就绪节点数量
题目:检查有多少个worker nodes已经准备就绪(不包含被打上Taint:NoSchedule的节点),并将数量写入文件/opt/kube125/kube125.txt
这个题,要是记不住命令,手动查看node,再写到统计文件也可以
# if the context are k8s
$ kubectl config use-context k8s
$ kubectl describe node $(kubectl get nodes|grep Ready|awk '{print $1}') |grep Taint|grep -vc NoSchedule > /opt/kube125/kube125.txt
本词6-10的题目就分享到这里,下一篇文章将带来CKA认证最后几道较不易做对的题目。