k8s 常用yml配置和service解析
1、pvc
--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nmg-logs namespace: nmg-test spec: storageClassName: "glusterfs" accessModes: - ReadWriteOnce resources: requests: storage: 100Gi
2、跑jar包
--- apiVersion: apps/v1 kind: Deployment metadata: name: seewin-gateway namespace: nmg-test spec: replicas: 1 selector: matchLabels: app: seewin-gateway template: metadata: labels: app: seewin-gateway annotations: sidecar.istio.io/rewriteAppHTTPProbers: "false" spec: containers: - name: seewin-gateway image: 192.168.31.15/nmg-test/seewin-gateway:latest imagePullPolicy: Always ports: - name: http-port-1 containerPort: 9000 protocol: TCP volumeMounts: - name: nmg-logs mountPath: "/app/logs" volumes: - name: nmg-logs persistentVolumeClaim: claimName: nmg-logs --- apiVersion: v1 kind: Service metadata: name: seewin-gateway namespace: nmg-test spec: type: NodePort sessionAffinity: None selector: app: seewin-gateway ports: - name: http-port-1 protocol: TCP port: 9000 targetPort: 9000 nodePort: 30090
--- apiVersion: apps/v1 kind: Deployment metadata: name: ibuilds-consumer-adm-system namespace: nmg-test spec: replicas: 1 selector: matchLabels: app: ibuilds-consumer-adm-system template: metadata: labels: app: ibuilds-consumer-adm-system annotations: sidecar.istio.io/rewriteAppHTTPProbers: "false" spec: containers: - name: ibuilds-consumer-adm-system image: 192.168.31.15/nmg-test/ibuilds-consumer-adm-system:latest imagePullPolicy: Always ports: - name: http-port-1 containerPort: 9091 protocol: TCP volumeMounts: - name: nmg-logs mountPath: "/app/logs" volumes: - name: nmg-logs persistentVolumeClaim: claimName: nmg-logs --- apiVersion: v1 kind: Service metadata: name: ibuilds-consumer-adm-system namespace: nmg-test spec: type: ClusterIP sessionAffinity: None selector: app: ibuilds-consumer-adm-system ports: - name: http-port-1 protocol: TCP port: 9091 targetPort: 9091
3、让k8s的容器一直运行
containers: - command: - tail- -f - /dev/null
4、容器配置文件指向service,如rocketmq配置namesrvAddr=rocketmq.renpho-erp-common.svc.cluster.local:9876
在 Kubernetes 中,rocketmq.renpho-erp-common.svc.cluster.local 是一个典型的服务(Service)地址。让我们逐个分解这个域名:
-
rocketmq:这是服务的名称,通常是在 Kubernetes 中定义的一个服务(Service)资源。服务名称可以用来在集群内访问应用程序或组件。在这里,它指向 RocketMQ 的服务。
-
renpho-erp-common:这是 Kubernetes 中的命名空间(Namespace)名称。Kubernetes 使用命名空间来组织和隔离资源。
renpho-erp-common是包含 RocketMQ 服务的命名空间。Kubernetes 中的每个命名空间可以包含不同的服务、Pod、ConfigMap 等资源。 -
svc:代表服务(Service)。在 Kubernetes 中,
svc是服务资源的后缀,表示这个域名指向一个 Kubernetes 服务。Kubernetes 服务会自动将请求路由到匹配的 Pod。 -
cluster.local:这是 Kubernetes 集群内部使用的默认 DNS 域名后缀。在 Kubernetes 集群中,所有服务的名称都会自动解析为
cluster.local域名。因此,rocketmq.renpho-erp-common.svc.cluster.local是 Kubernetes 集群内的一个 DNS 地址,指向在renpho-erp-common命名空间中名为rocketmq的服务。
5、Headless Service无头服务用于集群发现,将 这个service名称 解析为 多个后端 Pods 的地址,也就是仅实现 解析 作用而已。
在pod内用nslookup命令测试,其中nacos是nodeport,nacos-headless。可以看到nacos-cluster-0.nacos-headless.nacos.svc.cluster.local可以解析成功,nacos-cluster-0.nacos.nacos.svc.cluster.local解析失败。其中nacos-cluster-0是pod名字,nacos-headless是service的名字,nacos是工作空间


浙公网安备 33010602011771号