之前提到了两种跟pod互动的方式,上一章介绍了port-forward这个方法,这一章则会介绍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,比较复杂的方法会留到下一章,而最简单的方法,就是expose指令
首先先用下面的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 pod my-redis --type=LoadBalancer --name=my-redis-service
就可以看到名为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的效果。
>>: DAY 9- 《区块密码2》AES(1)- 加密过程
今天讲的内容为角色移动的程序! ...
今天是最後一天,咱们今天不看程序码,来谈谈现在我们已经学习了 JavaScript,做个总结顺便想想...
仙女棒 ( 光迹效果 ) 教学原文参考:仙女棒 ( 光迹效果 ) 这篇文章会介绍,如何在 Scrat...
我们今天就要利用 sklearn 提供的 Iris(鸢尾花)资料,并且手工撰写 logistic ...
嗨嗨嗨~大家好!到了我们铁人赛的最後一天了,也意味着我们将要分别了QQ 希望这些内容有让大家可以学习...