Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 算法 小程序 Arthas JVM juc AQS Docker DevOps


Kubernetes Service 对外提供访问

Kubernetes 大约 1135 字

暴露服务

ClusterIP:仅用于集群内部访问

kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev

NodePort:对外可提供访问

kubectl expose deploy nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80 -n dev

查看信息

ClusterIP类型输出的结果:

$ kubectl get svc -n dev
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   8s

NodePort类型输出的结果:对外提供30001(每次创建都不固定,但创建后整个Service生命周期都固定)

$ kubectl get svc -n dev
NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
svc-nginx2   NodePort   10.99.142.202   <none>        80:30001/TCP   8s

删除服务

kubectl delete svc svc-nginx1 -n dev

minikube

使用minikube还可使用如下命令,直接打开浏览器访问

minikube service svc-nginx2 -n dev

输出:

| NAMESPACE |    NAME    | TARGET PORT |            URL            |
| dev       | svc-nginx2 |          80 | http://10.148.69.70:30001 |
🎉  Opening service dev/svc-nginx2 in default browser...

端口转发

service/svc-nginx2:指定service名称

将本地7080端口映射到Kubernetes内部端口的80上(--port指定的端口)

kubectl port-forward service/svc-nginx2 7080:80 -n dev

本地访问7080即可

http://localhost:7080
阅读 238 · 发布于 2022-03-16

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批