目录nginx
1 前言架构
2 邀约app
3 externalName 介绍ide
4 externalName 样例学习
4.1 jiuxi-client.yamlspa
4.2 jiuxi-client-svc.yaml3d
4.3 jiuxi-nginx.yaml视频
4.4 jiuxi-nginx-svc.yamlblog
4.5 jiuxi-ns.yamlip
5 验证样例
1 前言
若是你对博客有任何疑问,请告诉我。
2 邀约
你能够从 b 站搜索 “九析”,获取免费的、更生动的视频资料:
3 externalName 介绍
记得不少年前大陆流行音乐刚开始流行,李春波的一首《小芳》风靡大街小巷,正处于青春懵懂期的少男,顷刻间就被它的旋律捕获了,因而小芳就是初恋,初恋就是小芳。
后来上了大学,读了计算机系,学到了不少基于控制台的命令,可是不知道为何,每当我敲打 ln 命令的时候,都会想起小芳,那时我天真地认为,只要找到了小芳,我就能够找到幸福,因而我向一个情场老手讨教整年级最好记的女生姓名叫什么?他想都没想,脱口而出——“殷静”、“史珍香”。
后来学了 k8s,知道了经常使用的 k8s service 类型—— ClusterIP、NodePort、LoadBalancer,惟独对 externalName 置若罔闻,直到有一天在学习 Istio Sidecar 这种 API 资源的时候,才忽然领悟了 ExternalName 这种 k8s service 类型是使用场景。
externalName 这种 service 类型的做用相似软链或者快捷方式。下面举一个具体的例子。
4 externalName 样例
首先画出整个样例的架构图:
该样例目的是让处于 default 命名空间下的 httpd-pod 访问处处于 nginx-ns 命名空间下的 nginx-svc,不像以往 svc-name.ns-name.svc.cluster.local 方式跨命名空间访问的方式,这里咱们使用 externalName 方式。
基于上面的架构图,所须要的资源文件以下:
jiuxi-client.yaml # httpd pod
jiuxi-client-svc.yaml # httpd svc
jiuxi-nginx.yaml # nginx pod
jiuxi-nginx-svc.yaml # nginx svc
jiuxi-ns.yaml # nginx namespace
4.1 jiuxi-client.yaml
4.2 jiuxi-client-svc.yaml
关键点就在这个文件,该文件中指定了到 nginx-svc 的软链,这么作的好处是对使用者作到了透明,让使用者感受就好像调用本身命名空间的服务同样。
4.3 jiuxi-nginx.yaml
4.4 jiuxi-nginx-svc.yaml
4.5 jiuxi-ns.yaml
自此整个样例代码编写完毕。
首先建立 jiuxi-ns.yaml 命名空间,而后再应用其余资源文件,以下命令所示:
kubectl apply -f jiuxi-ns.yaml
kubectl apply -f jiuxi-client.yaml
kubectl apply -f jiuxi-client-svc.yaml
kubectl apply -f jiuxi-nginx.yaml
kubectl apply -f jiuxi-nginx-svc.yaml
5 验证样例
全部 pod 都争取运行以后,登陆 client,而后执行以下语句:
wget -q -O - http://jiuxi-client-svc
wget -q -O - http://jiuxi-nginx-svc.nginx-ns.svc.cluster.local
发现两种方式均可以正常访问。
自此,九析带你轻松完爆 k8s service externalName。