欢迎光临
我们一直在努力

K8S中Gateway API配置和验证【CKA备考练习环境准备】8【2025新题】

一、前言和感受

1.1、前言:

       一同备考一同前进!!如有不当之处,欢迎指正!!

       上期分享了PVC题目的环境准备和参考解法(https://blog.csdn.net/Daniel_mazy/article/details/158837137),有兴趣的同学欢迎参考。

       这次向广大备考CKA同学们分享Gateway API题目的环境准备和参考解法,希望对备考CKA的同学们有帮助。

        如果觉得看文章太繁琐太麻烦,我这里先直接把相关的yaml文件贴出来,有兴趣的可以自己搭一下环境、解一下题。ingress2gateway-pre.tar.gz

root@k8s-ub-m01:~/ap4# ls -la
total 3928
-rw-r–r– 1 root root 250 Mar 7 20:08 default-ingressclass.yaml
-rw-r–r– 1 root root 16257 Mar 7 19:56 deploy-ingress-nginx-control-org.yaml
-rw-r–r– 1 root root 930 Mar 7 19:38 deploy-nginx-http.yaml
-rw-r–r– 1 root root 399 Mar 7 20:11 ingress-test.yaml
-rw-r–r– 1 root root 3254555 Mar 7 19:15 install.yaml
-rw-r–r– 1 root root 159 Mar 7 19:19 quickstart.yaml
-rw-r–r– 1 root root 696473 Mar 7 19:01 standard-install.yaml
-rw-r–r– 1 root root 1025 Mar 7 19:41 tls.crt
-rw-r–r– 1 root root 976 Mar 7 19:41 tls.csr
-rw——- 1 root root 1704 Mar 7 19:41 tls.key
-rw-r–r– 1 root root 3775 Mar 7 19:42 web-cert.yaml
-rw-r–r– 1 root root 334 Mar 7 20:22 web-gateway.yaml
-rw-r–r– 1 root root 303 Mar 7 20:25 web-route.yaml

1.2、感受

       Gateway api这个题的环境搭建和测试的准备工作没想到前前后后用了一周左右,一开始是准备迁移前的ingress环境,前端和后端都采用了自签的tls证书,后来发现cka的题干并没有硬性的要求,然后又改为仅仅是ingress部分采用了tls证书。

       另外一个坑就是创建Gateway class资源前安装Gateway CRD和controller,其实官方有很多controller实现的推荐方案,主要尝试了Nginx Gateway Fabric、Lstio、Envoy Gateway,由于墙的原因,所以最终使用第三个方案完成了CKA考试题干所需的环境搭建。        回想整个过程,还是挺有收获的,为了一个具体实现(再现题干的环境)而不断尝试而最终解决问题。当然从另外一个角度也说明自己有不少还没有深入理解的内容。

二、k8s运行环境情况

2.1、详细环境情况信息如下:

(这里省略,可参考本系列之前的文章)

三、CKA练习环境Gateway API题型预准备

3.1、CKA题干

Gateway API

3.2、创建题干所要求的Ingress资源

创建名称为nginx-http的deploy、名称为nginx-http-svc的service、自定义的首页index.html

root@k8s-ub-m01:~/ap2# vim deploy-nginx-http.yaml
1 —
2 apiVersion: v1
3 kind: ConfigMap
4 metadata:
5 name: nginx-html-cmap
6 data:
7 index.html: |
8 Hello World ^^__^^ !! Need migrate to gateway api
9 —
10 apiVersion: apps/v1
11 kind: Deployment
12 metadata:
13 name: nginx-http
14 spec:
15 replicas: 1
16 selector:
17 matchLabels:
18 app: nginx-http
19 template:
20 metadata:
21 labels:
22 app: nginx-http
23 spec:
24 containers:
25 – name: nginx-container
26 image: registry.cncfstack.com/docker.io/library/nginx:1.17.2
27 ports:
28 – containerPort: 80
29 volumeMounts:
30 – name: html-volume
31 mountPath: /usr/share/nginx/html
32 volumes:
33 – name: html-volume
34 configMap:
35 name: nginx-html-cmap
36 —
37 apiVersion: v1
38 kind: Service
39 metadata:
40 name: nginx-http-svc
41 spec:
42 selector:
43 app: nginx-http
44 ports:
45 – name: http
46 port: 80
47 targetPort: 80
48 nodePort: 30080
49 protocol: TCP
50 type: NodePort

  • 创建所需的deploy、service、configmap,并确认资源状态 root@k8s-ub-m01:~/ap4# kubectl apply -f deploy-nginx-http.yamlkubectl
    configmap/nginx-html-cmap created
    deployment.apps/nginx-http created
    service/nginx-http-svc created

    root@k8s-ub-m01:~/ap4# kubectl get pod,deploy,svc
    NAME READY STATUS RESTARTS AGE
    pod/nginx-http-797c498d46-qxbhw 1/1 Running 1 (11m ago) 100m

    NAME READY UP-TO-DATE AVAILABLE AGE
    deployment.apps/nginx-http 1/1 1 1 100m

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    service/nginx-http-svc NodePort 10.50.69.25 <none> 80:30080/TCP 100m

  • 访问页面 root@k8s-ub-m01:~/ap4# curl 192.168.148.121:30080
    Hello World ^^__^^ !! Need migrate to gateway api

    root@k8s-ub-m01:~/ap4# curl 10.50.69.25:80
    Hello World ^^__^^ !! Need migrate to gateway api

3.3、创建自签证书和secret 

  • 生成ingress所需的私钥和自签名证书 # 生成私钥
    openssl genrsa -out tls.key 2048

    # 创建证书签名请求(指定域名)
    openssl req -new -key tls.key -out tls.csr \\
    -subj \”/CN=gateway.web.k8s.local\” \\
    -addext \”subjectAltName=DNS:gateway.web.k8s.local\”

    # 生成365天有效证书
    openssl x509 -req -days 365 \\
    -in tls.csr \\
    -signkey tls.key \\
    -out tls.crt

  • 创建保存证书的secret资源
赞(0)
未经允许不得转载:171主机测评 » K8S中Gateway API配置和验证【CKA备考练习环境准备】8【2025新题】
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址