.net core i上 K8S(六).netcore程序的service网络代理模式

时间:2023-03-09 03:28:35
.net core i上 K8S(六).netcore程序的service网络代理模式

上一章我们讲了pod的hostip模式,但在生产环境中,我们都是通过service来访问k8s集群的,service有两种模式来暴漏端口,今天我们来分享一下

1.clusterIP模式

我们在创建service的时候,默认创建的时clusterIP模式,clusterIP模式的特点是只能在node节点*问,创建方法如下:

1.1首先创建Deployment

apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: cys-netcore
spec:
replicas:
selector:
matchLabels:
app: cys-netcore
template:
metadata:
labels:
app: cys-netcore
spec:
containers:
- name: cys-netcore
image: chenyishi/webdocker_s_provider
ports:
- containerPort:
env:
- name: serverport
value: ""

.net core i上 K8S(六).netcore程序的service网络代理模式

1.2创建service,并指定clusterip(不指定也可以,会自动随机分配)

注意:clusterIP设置须按照集群搭建时指定的范围设置,我们查看一下我们制定的范围

.net core i上 K8S(六).netcore程序的service网络代理模式

可以看到范围是10.10.10.1~10.10.10.255,编写yaml文件如下

apiVersion: v1
kind: Service
metadata:
name: netcore-service
labels:
app: netcore
spec:
ports:
- name: http
protocol: TCP
port:
targetPort:
clusterIP: "10.10.10.10" #指定ip
selector:
app: cys-netcore

.net core i上 K8S(六).netcore程序的service网络代理模式

可查看信息,如下

.net core i上 K8S(六).netcore程序的service网络代理模式

1.3验证地址

我们可以去node节点验证一下

.net core i上 K8S(六).netcore程序的service网络代理模式

至此clusterip介绍完毕

2.NodePort模式

我们可以看到clusterIP模式只能在node节点访问,这无法满足我们的生产环境,因此我们在生产环境中都是采用NodePort模式,映射到宿主机的port,我们的Deployment的yaml文件还是采用上面的,需要改一下service的yaml文件

apiVersion: v1
kind: Service
metadata:
name: netcore-service
labels:
app: netcore
spec:
ports:
- name: http
protocol: TCP
port:
targetPort:
nodePort: 31111    #指定宿主机暴漏的端口
selector:
app: cys-netcore
type: NodePort      #指定类型

注意:nodePort的端口号也是从集群搭建时指定的范围中设置的,不可超出范围,如下

.net core i上 K8S(六).netcore程序的service网络代理模式

2.1创建service

.net core i上 K8S(六).netcore程序的service网络代理模式

查看信息

.net core i上 K8S(六).netcore程序的service网络代理模式

2.2验证

访问地址http://192.168.8.202:31111/api/values

.net core i上 K8S(六).netcore程序的service网络代理模式

成功访问!!!