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)地址。让我们逐个分解这个域名:

  1. rocketmq:这是服务的名称,通常是在 Kubernetes 中定义的一个服务(Service)资源。服务名称可以用来在集群内访问应用程序或组件。在这里,它指向 RocketMQ 的服务。

  2. renpho-erp-common:这是 Kubernetes 中的命名空间(Namespace)名称。Kubernetes 使用命名空间来组织和隔离资源。renpho-erp-common 是包含 RocketMQ 服务的命名空间。Kubernetes 中的每个命名空间可以包含不同的服务、Pod、ConfigMap 等资源。

  3. svc:代表服务(Service)。在 Kubernetes 中,svc 是服务资源的后缀,表示这个域名指向一个 Kubernetes 服务。Kubernetes 服务会自动将请求路由到匹配的 Pod。

  4. 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是工作空间

 

posted @ 2024-10-30 17:04  苦逼yw  阅读(52)  评论(0)    收藏  举报