Kubernetes Service 对外提供访问
Kubernetes About 1,568 words暴露服务
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
完整配置
kind: Service # 资源类型
apiVersion: v1 # 资源版本
metadata: # 元数据
name: service # 资源名称
namespace: dev # 命名空间
spec: # 描述
selector: # 标签选择器,用于确定当前 Service 代理哪些 Pod
app: nginx
type: # Service 类型,指定 Service 的访问方式
clusterIP: # 虚拟服务的 IP 地址
sessionAffinity: # Session 亲和性,支持 ClientIP、None 两个选项
ports: # 端口信息
- protocol: TCP
port: 3017 # Service 端口
targetPort: 5003 # Pod 端口
nodePort: 31122 # 主机端口
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
Views: 1,692 · Posted: 2022-03-16
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...