--- #单独起一个名称空间
apiVersion: v1 #指定api组
kind: Namespace #指定api类型
metadata: #元数据
name: test #定义名称空间名字
--- #ClusterIP仅支持南北向流量,支持集群内部访问
apiVersion: v1 #指定api组
kind: Service #指定api类型
metadata: #元数据
labels: #标签
app: nginx #定义标签
name: nginx-cp-svc #指定部署对象的名字
namespace: test #指定名称空间
spec: #指定对象规约
ports: #指定service开放端口
- name: web #指定端口名称
port: 80 #开放3306端口
protocol: TCP #网络协议
selector: #标签选择器
app: nginx #指定标签
type: ClusterIP
--- #LoadBalancer支持东西向和南北向流量,外部可访问的负载均衡器
apiVersion: v1 #指定api组
kind: Service #指定api类型
metadata: #元数据
labels: #标签
app: nginx #定义标签
name: nginx-lb-svc #指定部署对象的名字
namespace: test #指定名称空间
annotations: #注解
lb.kubesphere.io/v1alpha1: openelb #指定使用的负载均衡器
protocol.openelb.kubesphere.io/v1alpha1: layer2 #指定使用的工作协议
eip.openelb.kubesphere.io/v1alpha2: eip-pool #指定使用的EIP(弹性地址池)
spec: #指定对象规约
ports: #指定service开放端口
- name: web #指定端口名称
port: 80 #开放80端口
protocol: TCP #网络协议
selector: #标签选择器
app: nginx #指定标签
type: LoadBalancer #指定service类型
--- #NodePort支持东西向和南北向流量,外部可通过节点指定端口访问
apiVersion: v1 #指定api组
kind: Service #指定api类型
metadata: #元数据
labels: #标签
app: nginx #定义标签
name: nginx-no-svc #指定部署对象的名字
namespace: test #指定名称空间
spec: #指定对象规约
ports: #指定service开放端口
- name: web #指定端口名称
port: 80 #开放80端口
protocol: TCP #网络协议
selector: #标签选择器
lnmp.home.com/name: nginx #指定标签
type: NodePort #指定service类型
--- #不指定selector,配合下面的Endpoints,为集群内部做正向代理
apiVersion: v1 #指定api组
kind: Service #指定api类型
metadata: #元数据
labels: #标签
app: placjh #定义标签
name: placjh-svc #指定部署对象的名字
namespace: test #指定名称空间
spec: #指定对象规约
ports: #指定service开放端口
- name: web #指定端口名称
port: 80 #开放80端口
protocol: TCP #网络协议
type: ClusterIP #指定service类型
--- #配合service,使集群内部pod可通过访问service到达集群外部网络
apiVersion: v1 #指定api组
kind: Endpoints #指定api类型
metadata: #元数据
name: placjh-svc #与service一致
namespace: test #指定名称空间
labels: #标签
app: placjh #需要匹配service的标签
subsets: #配置要代理的集合
- addresses: #指定要代理的地址
- ip: 49.232.141.141 #指定IP
ports: #指定要代理的端口
- name: web #给端口命名,要与service一致
port: 80 #指定端口
protocol: TCP #指定协议
--- #代理外部域名,类似于CNAME
apiVersion: v1 #指定api组
kind: Service #指定api类型
metadata: #元数据
labels: #标签
app: placjh #需要匹配service的标签
name: cname #指定部署对象的名字
namespace: test #指定名称空间
spec: #指定对象规约
type: ExternalName #指定service类型
externalName: www.placjh.com #代理地址
---
apiVersion: v1 #指定api组
kind: Pod #指定api类型
metadata: #元数据
name: busybox #定义pod名字
namespace: test-volume #指定名称空间
labels: #标签
app: busybox #指定标签
spec: #指定对象规约
containers: #定义容器
- name: busybox #定义容器名字
image: busybox:1.36 #指定镜像和版本
command: #pod启动命令
- "/bin/sh"
- "-c"
- "sleep 3600"
imagePullPolicy: IfNotPresent #定义镜像拉取策略