- Service
- k8s网络架构:⭐⭐⭐⭐⭐
- clusterIP示例:
- NodePort示例:
- ExternalName 示例
- LoadBalancer
- Ingress
共有四种不同IP的port,根据实际情况,通过设置端口的映射,设置不同的访问权限
apiVersion: v1
kind: Service
metadata:
name: canary-test
namespace: default
spec:
selector:
app: canary-nginx
clusterIP: None # 这一项是可选项,type 一定要是 CluesterIP才能用
## None 不要给这个SVC分配IP,在pod内是使用域名访问,pod外不能访问,称为headless service无头服务,配合有状态副本集StatefulSet使用
## 也可以指定IP,如10.96.xx.xx
type: ClusterIP
## NodePort #每个节点所在机器都开这个端口,浏览器可以通过每个节点的IP+暴漏的端口访问,并且相当于访问的是负载均衡网络
## ClusterIP: 不写type,默认就是这个,指的是,当前Service在集群内可以被所有人发现,默认给这个service分配一个集群内网络
## podcidr: pod的子网范围 svcdi: service的子网范围
ports:
- name: abc ## 随便起名,无所谓
port: 80 # service 端口
targetPort: 8080 # pod 端口
- name: redis ## 随便起名,无所谓
port: 99 # service 端口
targetPort: 6379 # pod 端口
NodePort示例:
apiVersion: v1
kind: Service
metadata:
name: canary-test
namespace: default
spec:
selector:
app: canary-nginx
type: NodePort
ports:
- name: abc ## 随便起名,无所谓
port: 80 # service 端口
targetPort: 8080 # pod 端口
- name: redis ## 随便起名,无所谓
port: 99 # service 端口
targetPort: 6379 # pod 端口
nodePort: 30088 # type要是NodePort才能用,所有集群中的机器都打开这个端口,暴漏给外界,没写就自动指定,访问任意一台机器,都能访问到Service代理的pod
kubectl get svc查看
apiVersion: v1 kind: Service metadata: name: external-test namespace: default spec: type: ExternalName externalName: baidu.comLoadBalancer
请求云服务商提供负载均衡器
一般不用
高并发,生产可用k8s完整网络架构
Ingress-nginx需要安装才能使用:非官方文档,二次修改



