Day13-pod服务处 介绍service

之前提到了两种跟pod互动的方式,上一章介绍了port-forward这个方法,这一章则会介绍service。

什麽是service

官方说明
a Service is an abstraction which defines a logical set of Pods and a policy by which to access them.
翻过来就是 service是一个抽象概念,其定义了逻辑上的一组pod以及用来存取那些pod的规范。
简单来说就是在pod外挡一层虚拟层,方便另一组pod来认识这组pod群,不必认识单个单个pod。
官方动机也写说,当前端(一组pod)跟後端(另一组pod)在同一个cluster内时,前端要怎麽去发现以及保持追踪後端的ip呢?
就要透过serive,也就是说service提供了让这群pod被别组pod认识的方法。

建立Service

要建立service有几种方式,这章会先用最简单的方法来建立service,比较复杂的方法会留到下一章,而最简单的方法,就是expose指令

范例pod

首先先用下面的yaml建立起一个pod

apiVersion: v1
kind: Pod
metadata:
  name: my-redis
  labels:
    app: redis
spec:
  containers:
  - name: pod-redis
    image: redis
    ports:
    - containerPort: 6379

kubectl expose

再来执行下面指令

kubectl expose pod my-redis --type=LoadBalancer --name=my-redis-service

https://ithelp.ithome.com.tw/upload/images/20210921/20129607dM0He1qbf9.png
就可以看到名为my-redis-service的service被建立出来了,不过由於要能够直接打到需要EXTERNAL-IP
而kind建立的cluster没办法直接提供,一个方法是使用线上云端像是GCP或是AWS,另一个方法是用minikube,
可以下达

minukube service my-redis-service

他可以提供你EXTERNAL-IP

除了让k8s帮你产生port,你也可以指定port

kubectl expose pod my-redis --type=LoadBalancer --name=my-redis-service --port=7788 --target-port=6379

这样就可以指定port给service了。
不过这边的范例都只有一个pod,其实用service的意义不大,因此在下一章会介绍Deployment,产生出多个pod的情境,才比较好了解service的效果。


<<:  DAY07随机森林演算法(续5)

>>:  DAY 9- 《区块密码2》AES(1)- 加密过程

Unity与Photon的新手相遇旅途 | Day7-角色移动

今天讲的内容为角色移动的程序! ...

Day30 javascript 总结

今天是最後一天,咱们今天不看程序码,来谈谈现在我们已经学习了 JavaScript,做个总结顺便想想...

Day23 ( 高级 ) 仙女棒 ( 光迹效果 )

仙女棒 ( 光迹效果 ) 教学原文参考:仙女棒 ( 光迹效果 ) 这篇文章会介绍,如何在 Scrat...

Day-09 Logistic Regression 实作(修正版)

我们今天就要利用 sklearn 提供的 Iris(鸢尾花)资料,并且手工撰写 logistic ...

菜鸡用 Phaser 拾起童年游戏 30

嗨嗨嗨~大家好!到了我们铁人赛的最後一天了,也意味着我们将要分别了QQ 希望这些内容有让大家可以学习...