[SpringCloud] 本地K8S环境中搭建基础服务

如何在 Windows 环境下的K8S,可以查看前面的文章
https://blog.csdn.net/benchem/article/details/116914562

创建K8S命名空间

powerShell

kubectl create namespace spring-cloud-demo

创建私有docker仓库 Secret

Kubernetes 集群使用 docker-registry 类型的 Secret 来通过容器仓库的身份验证,进而提取私有映像。
创建 Secret,命名为 regcred:

powerShell

kubectl create secret docker-registry regcred `
  --docker-server=<你的镜像仓库服务器> `
  --docker-username=<你的用户名> `
  --docker-password=<你的密码> `
  --docker-email=<你的邮箱地址> `
  --namespace=spring-cloud-demo

部署脚本

Deployment

deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: <部署名称>
  namespace: <命名空间>
  labels:
    app: <标签>
spec:
  replicas: <实例份数>
  selector:
    matchLabels:
      app: <标签>
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  minReadySeconds: 5
  revisionHistoryLimit: 2
  template:
    metadata:
      labels:
        app: <标签>
    spec:
      containers:
      - name: <部署名称>
        image: <镜像地址>
        imagePullPolicy: Always
        env:
        - name: TZ
          value: "Asia/Shanghai"
        resources:
          limits:
            memory: 2000Mi
            cpu: 1
          requests:
            memory: 150Mi
            cpu: 0.07
      imagePullSecrets:
      - name: <镜像库拉取秘钥>

powerShell

kubectl apply -f ./deploy.yaml

Services

service.yaml

kind: Service
apiVersion: v1
metadata:
  labels:
    app: <标签>
  name: <服务名称>
  namespace: <命名空间>
spec:
  selector:
    app: <部署.标签名称>
  ports:
  - name: port-<导出端口>
    port: <导出端口>

powerShell

kubectl apply -f ./service.yaml

Ingress

在WSL2环境使用 Ingress 必须先安装 Ingress
powerShell

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.46.0/deploy/static/provider/cloud/deploy.yaml

ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: <ingressName>
  namespace: <命名空间>
spec:
  rules:
  - host: "<绑定域名>"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: <后端接Services的名称>
            port:
              number: <服务端口>

powerShell

kubectl apply -f ./ingress.yaml

在 Windows 平台下,可以通过修改本地 host 文件来模拟域名指向

Eureka 部署完整脚本

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: eureka
  namespace: spring-cloud-demo
  labels:
    app: eureka
spec:
  replicas: 1
  selector:
    matchLabels:
      app: eureka
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  minReadySeconds: 5
  revisionHistoryLimit: 2
  template:
    metadata:
      labels:
        app: eureka
    spec:
      containers:
      - name: eureka
        image: springcloud/eureka
        imagePullPolicy: Always
        env:
        - name: TZ
          value: "Asia/Shanghai"
        resources:
          limits:
            memory: 2000Mi
            cpu: 1
          requests:
            memory: 150Mi
            cpu: 0.07

eureka-service.yaml

kind: Service
apiVersion: v1
metadata:
  labels:
    app: eureka-svc
  name: eureka-svc
  namespace: spring-cloud-demo
spec:
  selector:
    app: eureka
  ports:
  - name: port-8761
    port: 8761

eureka-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: eureka-ingress
  namespace: spring-cloud-demo
spec:
  rules:
  - host: "eurka.benchan.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: eureka-svc
            port:
              number: 8761

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值