运维随录实战(2)之k8s部署应用

一, 创建.gitlab-ci.yml文件

架构流程

文件内容

stages: #设置流水线模版

  - build # 编译

  - source2img

  - deploy # 发布

variables: # 设置全局变量

  MAVEN_PATH:  .m2

  MAVEM_IMAGE: maven:3.8.5-openjdk-17-slim  # maven 打包使用的镜像

  MAVEN_CLI_OPTS: "-s $MAVEN_PATH/settings.xml --batch-mode"

  MAVEN_OPTS: "-Dmaven.repo.local=$MAVEN_PATH/repository"

  IMAGE: shuinfo-docker-images-registry.cn-shanghai.cr.aliyuncs.com/jbs/ods-poc:${CI_PIPELINE_IID}

  KUBECONFIG: /root/.kube/config

cache: # 设置缓存

  paths:

    - $MAVEN_PATH/repository/

    - target/

build:

  #  needs:

  #    - check-style

  #    - unit-test

  #    - static-check

  artifacts:

    paths:

      - starbucks-ods-webflux-poc/target/*.jar

    expire_in: 1 week

  stage: build

  image: "$MAVEM_IMAGE"

  before_script:

    - mkdir -p $MAVEN_PATH

    - echo $SETTING > $MAVEN_PATH/settings.xml

  script:

    - mvn  $MAVEN_CLI_OPTS  clean install package  -Dmaven.test.skip=true

  only:

    - "/^develop/.*$/"

    - develop

    - release

    - "/^release/.*$/"

    - master

source2img:

  stage: source2img

  image: sp0cket/kaniko-executor:debug

  before_script:

    - echo $DOCKER_AUTH_CONFIG > /kaniko/.docker/config.json

  script:

    - ls

    - pwd

    - echo $DOCKER_AUTH_CONFIG

    - echo ${IMAGE}

    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $IMAGE

  only:

    - /^develop/.*$/

    - develop

    - release

    - /^release/.*$/

    - master

deploy:prod:

  needs:

    - source2img

  stage: deploy

  image: sp0cket/kubectl:v1.20.4

  when: manual

  before_script:

    - mkdir -p /root/.kube

    - echo $ODS_SHUINFO_ACK

    - echo "$ODS_SHUINFO_ACK" > $KUBECONFIG

  script:

    - envsubst '${IMAGE}' < deployment_prod.yaml > dp.yaml

    - kubectl apply -f ./dp.yaml -n default  --insecure-skip-tls-verify

  only:

    - master

deploy:test:

  needs:

    - source2img

  stage: deploy

  image: sp0cket/kubectl:v1.20.4

  before_script:

    - mkdir -p /root/.kube

    - echo ${ODS_SHUINFO_ACK}

    - echo "$ODS_SHUINFO_ACK" > $KUBECONFIG

  script:

    - envsubst '${IMAGE}' < deployment_test.yaml > dp.yaml

    - kubectl apply -f ./dp.yaml -n default  --insecure-skip-tls-verify

  only:

    - /^release/.*$/

    - release

deploy:uat:

  needs:

    - source2img

  stage: deploy

  image: sp0cket/kubectl:v1.20.4

  when: manual

  before_script:

    - mkdir -p /root/.kube

    - echo ${ODS_SHUINFO_ACK}

    - echo "$ODS_SHUINFO_ACK" > $KUBECONFIG

  script:

    - envsubst '${IMAGE}' < deployment_uat.yaml > dp.yaml

    - kubectl apply -f ./dp.yaml -n default  --insecure-skip-tls-verify

  only:

    - /^release/.*$/

    - release

deploy:dev:

  needs:

    - source2img

  stage: deploy

  image: sp0cket/kubectl:v1.20.4

  artifacts:

    paths:

      - starbucks-ods-webflux-poc/

    expire_in: 1 week

  before_script:

    - mkdir -p /root/.kube

    - echo "$ODS_SHUINFO_ACK" > $KUBECONFIG

  script:

    - envsubst '${IMAGE}' < deployment_dev.yaml > dp.yaml

    - kubectl apply -f ./dp.yaml  -n default  --insecure-skip-tls-verify

  only:

    - develop

    - /^develop/.*$/

, 创建Dockerfile文件

文件内容

FROM eclipse-temurin:17-jre

ADD  ./target/ods-poc-0.0.1-SNAPSHOT.jar /home/app/app.jar

WORKDIR /home/app

ENV TZ Asia/Shanghai

ENTRYPOINT  ["java","-jar","/home/app/app.jar"]

EXPOSE 8083

, 创建deployment_dev.yaml文件

文件内容

   apiVersion: apps/v1

kind: Deployment

metadata:

  name: starbucks-ods-webflux-poc

  labels:

    app: ods-poc

spec:

  replicas: 1

  selector:

    matchLabels:

      app: starbucks-ods-webflux-poc

  template:

    metadata:

      labels:

        app: starbucks-ods-webflux-poc

    spec:

      imagePullSecrets:

        - name: repo-key

      nodeSelector:

        app: "app"

      containers:

        - name: starbucks-ods-webflux-poc

          image: ${IMAGE}

          resources:

            limits: # 限制资源大小

              memory: "4096Mi"

              cpu: "2"

          ports:

            - containerPort: 8083

          env:

            - name: "JAVAAGENT_OPS"

              value: ""

            - name: "spring.profiles.active"

              value: "dev"

#            - name: "loader.path"

#              value: "/home/app/lib"

---

apiVersion: v1

kind: Service

metadata:

  name: starbucks-ods-webflux-poc-svc

  labels:

    app: ods-poc

spec:

  ports:

    - name: api

      port: 8083

      protocol: TCP

      targetPort: 8083

  selector:

    app: starbucks-ods-webflux-poc

, gitlab设置项目受保护分支

settings -> Repository -> Protected branches -> expand

进行设置需要发布的分支为受保护分支

, 设置全局变量

设置settings.xml

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

 <mirrors>

 <mirror>

 <id>mirror</id>

 <mirrorOf>central,jcenter,!rdc-releases,!rdc-snapshots</mirrorOf>

 <name>mirror</name>

 <url>https://maven.aliyun.com/nexus/content/groups/public</url>

 </mirror>

</mirrors>

<servers>

    <server>

        <id>rdc-releases</id>

        <username>619c5ce2ebd22e300e389f29</username>

        <password>NMSPLZC03=66</password>

    </server>

    <server>

        <id>rdc-snapshots</id>

        <username>619c5ce2ebd22e300e389f29</username>

        <password>NMSPLZC03=66</password>

    </server>

</servers>

<profiles>

    <profile>

        <id>rdc</id>

        <properties>

            <altReleaseDeploymentRepository>

                rdc-releases::default::https://packages.aliyun.com/maven/repository/2178480-release-UPz05J/

            </altReleaseDeploymentRepository>

            <altSnapshotDeploymentRepository>

                rdc-snapshots::default::https://packages.aliyun.com/maven/repository/2178480-snapshot-AVBxKP/

            </altSnapshotDeploymentRepository>

        </properties>

        <repositories>

            <repository>

                <id>central</id>

                <url>https://maven.aliyun.com/nexus/content/groups/public</url>

                <releases>

                    <enabled>true</enabled>

                </releases>

                <snapshots>

                    <enabled>false</enabled>

                </snapshots>

            </repository>

            <repository>

                <id>snapshots</id>

                <url>https://maven.aliyun.com/nexus/content/groups/public</url>

                <releases>

                    <enabled>false</enabled>

                </releases>

                <snapshots>

                    <enabled>true</enabled>

                </snapshots>

            </repository>

            <repository>

                <id>rdc-releases</id>

                <url>https://packages.aliyun.com/maven/repository/2178480-release-UPz05J/</url>

                <releases>

                    <enabled>true</enabled>

                </releases>

                <snapshots>

                    <enabled>false</enabled>

                </snapshots>

            </repository>

            <repository>

                <id>rdc-snapshots</id>

                <url>https://packages.aliyun.com/maven/repository/2178480-snapshot-AVBxKP/</url>

                <releases>

                    <enabled>false</enabled>

                </releases>

                <snapshots>

                    <enabled>true</enabled>

                </snapshots>

            </repository>

        </repositories>

        <pluginRepositories>

            <pluginRepository>

                <id>central</id>

                <url>https://maven.aliyun.com/nexus/content/groups/public</url>

                <releases>

                    <enabled>true</enabled>

                </releases>

                <snapshots>

                    <enabled>false</enabled>

                </snapshots>

            </pluginRepository>

            <pluginRepository>

                <id>snapshots</id>

                <url>https://maven.aliyun.com/nexus/content/groups/public</url>

                <releases>

                    <enabled>false</enabled>

                </releases>

                <snapshots>

                    <enabled>true</enabled>

                </snapshots>

            </pluginRepository>

            <pluginRepository>

                <id>rdc-releases</id>

                <url>https://packages.aliyun.com/maven/repository/2178480-release-UPz05J/</url>

                <releases>

                    <enabled>true</enabled>

                </releases>

                <snapshots>

                    <enabled>false</enabled>

                </snapshots>

            </pluginRepository>

            <pluginRepository>

                <id>rdc-snapshots</id>

                <url>https://packages.aliyun.com/maven/repository/2178480-snapshot-AVBxKP/</url>

                <releases>

                    <enabled>false</enabled>

                </releases>

                <snapshots>

                    <enabled>true</enabled>

                </snapshots>

            </pluginRepository>

        </pluginRepositories>

    </profile>

</profiles>

<activeProfiles>

    <activeProfile>rdc</activeProfile>

</activeProfiles>

</settings>

设置kubeconfig

  apiVersion: v1

clusters:

cluster:
 server: https://172.16.101.130:6443

 certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURUakNDQWphZ0F3SUJBZ0lVUU12OFpEUXJ6MXpPdzJhSzZjYjBrVnIrZThRd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1BqRW5NQThHQTFVRUNoTUlhR0Z1WjNwb2IzVXdGQVlEVlFRS0V3MWhiR2xpWVdKaElHTnNiM1ZrTVJNdwpFUVlEVlFRREV3cHJkV0psY201bGRHVnpNQ0FYRFRJeU1EUXhOREEwTXpFd01Gb1lEekl3TlRJd05EQTJNRFF6Ck1UQXdXakErTVNjd0R3WURWUVFLRXdob1lXNW5lbWh2ZFRBVUJnTlZCQW9URFdGc2FXSmhZbUVnWTJ4dmRXUXgKRXpBUkJnTlZCQU1UQ210MVltVnlibVYwWlhNd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFSwpBb0lCQVFDenVIZ1M1eExOY0gyVDJJYW50WVNXRWlETG1HSG9YREttSFNLeVBXTFgreVJWblVYZDRsaFNTSGYrCjNNSzRMb2dTNTNHd01hUlNyVExlbjVzdVhoNUFUemZTQ013ckRzUzBHNUFST0l3UGU3Y0xTWXQ2RXFwUWhpUksKc0h2cFFZSTl3cFpTL2Q5MG9zRTRzWnlvT0EzM2oxOGdmcWVEMERINGdRV2ExaWJwaHJheVptVWpidUZDUmxTdgpjMG5ORFVyMUdsVlJURkRwaHpsVUgxT0VadUt3ZjBLamlPZEp5ZXJJN1R2OFBjaEtOTlczV0NGQ0Z4c0F1UGswCkJaUE9NbXJaZXBHMjlLbWlCYUY3ZFJ0WGRBelJldmdLZU9nNDh0TktoUU50ZXBhT3ZyeUZpd0p0YXhlNUl5cGsKMnNDcGZQT0M0U1p2bHFRK1c3T1VJWkF1K3oycEFnTUJBQUdqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDckRBUApCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCVHFPYVFmM1Zud0F5WG82Ti8vaGhWQzF4czZTVEFOCkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWxTSWlHUUhnc3RWb2JIZFI3MTkxTE1GSGZnRFljcm5KdVljNVY4RE4KTGp1SzZ2dmhJQTJFbUc5YmYxZWtCaktqNTZzNWs3dGNKeVhhYWUxTEFLbVk1dGMwY0lUNW1OYWdaNmhWbEdUbAozU3Zwc0NEQUF0dUc1WVZJL2JSRTBhYVQzcm9WaGNiS0prcUxPM0V2bkoxR1NRd2lrMzcwK3N2QWdlTElrWU15Cno3ekJoVlBzUldOWG56dkVJR0NEYk9VL01OdW5lQWxrdnlOM29nVkF2MTlhcjNFb2ZvTEJkUjRXUnVyYVZJVDMKQ1J2OTBUdlZIU0VOc3NkM1YyYStabE9zRjg1WVkxelpURHIrTFlZN2NVUHQzV29kd1JKdWRRU2VoWWZDdklRZQpGdjZTMHFjSkpoNlZWUm5xT2JYWlk0VFZNRFpSR0MyenlFUXdlQ0NTQzd0b0hRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=

 name: kubernetes

 contexts:

context:
 cluster: kubernetes

 user: "222275036955515715"

 name: 222275036955515715-ccf933127c22540f9a1b59e3f24ab8e9d

 current-context: 222275036955515715-ccf933127c22540f9a1b59e3f24ab8e9d

 kind: Config

 preferences: {}

 users:

name: "222275036955515715"
 user:

 client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQvakNDQXVhZ0F3SUJBZ0lEWEVoSE1BMEdDU3FHU0liM0RRRUJDd1VBTUdveEtqQW9CZ05WQkFvVElXTmoKWmprek16RXlOMk15TWpVME1HWTVZVEZpTlRsbE0yWXlOR0ZpT0dVNVpERVFNQTRHQTFVRUN4TUhaR1ZtWVhWcwpkREVxTUNnR0ExVUVBeE1oWTJObU9UTXpNVEkzWXpJeU5UUXdaamxoTVdJMU9XVXpaakkwWVdJNFpUbGtNQjRYCkRUSXlNRFF4TkRBME16QXdNRm9YRFRJMU1EUXhNekEwTXpVMU9Wb3dTakVWTUJNR0ExVUVDaE1NYzNsemRHVnQKT25WelpYSnpNUWt3QndZRFZRUUxFd0F4SmpBa0JnTlZCQU1USFRJeU1qSTNOVEF6TmprMU5UVXhOVGN4TlMweApOalE1T1RFd09UVTVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTgxVUhKMHZCClBsVVdiY0VaZXAyVzVpRG5sei83ZFVzTjVrdU0xSTlyOWhrRjFSTS9QZ2ZQQnlMNGo5bGVLY3RKVmlocFFiUkcKRE1ZRFJ2UWVJVENwWnBsajRzQXdGb3RlMzg4UnY3RzNPRVhXeW9DUXVpdGtPdzluaFBYT3RLdG9RTDhwYURQMwovb09hUG00QW4ya1RSMkVvempxQnVrZ3JIcGthQW1hRnBwblh5RjdnTUFnNVdpUk5GSzRtdk5VcTV1MmJubC9aCk5vYTFpM3lXaUpWcVBpOHkvVnFmTHRCZ2w2RjJPdmdlZmVva3V5TTE5eVpnZ0pSVnpBWVo4ZnhWVWg3L3daZksKMFFZSjMvVmw0N0taY1ZVQnpuV2JhV3NwcU1URFU2NHFNL2htYkgxdS9xbDdDZXdXUUNmNTV5ZWV6Q3NOM01vYgpRU291QUlJeEMybTNZUUlEQVFBQm80SE1NSUhKTUE0R0ExVWREd0VCL3dRRUF3SUhnREFUQmdOVkhTVUVEREFLCkJnZ3JCZ0VGQlFjREFqQU1CZ05WSFJNQkFmOEVBakFBTUI4R0ExVWRJd1FZTUJhQUZHWW9UNG1OQXFJc2ZOV3QKc3pDUU93WXd1R2FCTUR3R0NDc0dBUVVGQndFQkJEQXdMakFzQmdnckJnRUZCUWN3QVlZZ2FIUjBjRG92TDJObApjblJ6TG1GamN5NWhiR2w1ZFc0dVkyOXRMMjlqYzNBd05RWURWUjBmQkM0d0xEQXFvQ2lnSm9Za2FIUjBjRG92CkwyTmxjblJ6TG1GamN5NWhiR2w1ZFc0dVkyOXRMM0p2YjNRdVkzSnNNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUIKQVFBNnZYMGtWK0tCUHU3cENSSWZOdTZob1pMcDg0MWRTMTBSMHlxUGJJMlJHYlpTSHE3dXN5dHltclJTSVpVZApMNEV0WDlxb1hFeXdNcmxNR2kxbXNaY2VyU1ZOTEFBYWNEcm5ZUzlvdnRHRWU2WHJJampiS2o0ZGlaS0pWTzE1CjArTXdoRU9sSmZPTHNabVg0dlR0U3E1SW5FRzlzYitoUjhmc3hxZTB5VVVKaXNQbjY1TUZYMlZteWdFcEttUGkKT0lxWmJZS3hMc0JqU21idk9vN1BjVVhtV1JtOTNaNjIvWS9MRmZxUWpZamRRNXpBcUMyQ2pGa1RldXVuekxKTwpzWDJPM3FWVXZrZEFNdVhHNERSQWN6aUFPTXBEdDRVOTFqTlFqMk9YY0tiaDJSU2hBQ3RIOGdyUXFlZVhvQnNzCkRvSExiNk9xY0JSd0FwWkx2Qlc3Wk5FVwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlEb2pDQ0F3dWdBd0lCQWdJRFhFaEZNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1HSXhDekFKQmdOVkJBWVRBa05PCk1SRXdEd1lEVlFRSURBaGFhR1ZLYVdGdVp6RVJNQThHQTFVRUJ3d0lTR0Z1WjFwb2IzVXhFREFPQmdOVkJBb00KQjBGc2FXSmhZbUV4RERBS0JnTlZCQXNNQTBGRFV6RU5NQXNHQTFVRUF3d0VjbTl2ZERBZUZ3MHlNakEwTVRRdwpORE13TURCYUZ3MDBNakEwTURrd05ETTFOVFphTUdveEtqQW9CZ05WQkFvVElXTmpaamt6TXpFeU4yTXlNalUwCk1HWTVZVEZpTlRsbE0yWXlOR0ZpT0dVNVpERVFNQTRHQTFVRUN4TUhaR1ZtWVhWc2RERXFNQ2dHQTFVRUF4TWgKWTJObU9UTXpNVEkzWXpJeU5UUXdaamxoTVdJMU9XVXpaakkwWVdJNFpUbGtNSUlCSWpBTkJna3Foa2lHOXcwQgpBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF4T2tBbVg2RkRwcmdJVW1GM0Y1NGY4cGJwT3F3Ky9jTEdrRllsTkF1Cml1U0dqVEZJeHV5MjY3ZXdTN3Zvbk92OXp0d3ZUKzVLZzg3eVZtRyszMU9PYU1PVWtndzNFaUJLS2wyMVdwV2EKM0ZZL29jZFVTUlNZZXp4VFNRajZuOWJkTWRWV1R5L3F4SS82bTViQU9RYVRQMVdIN2FJcSsrd0VuUVZlYzBXUQpzQ1ZNUVloTzJhY1RuSjBoUDBpSkVEYitZZXUxZHliamxSS2ErMzZXMTJ4QTlEVlRvRlB2Q2piTEdIMFNUVGI5CmUrQ2RRaTdiQ2h2YjRMRDBTbXRKUjVtQ2FQVC9TcENuT3ZlK3BBZVIwTnI5YzZ0ZG9rdzljUUxUb1JmeUs3c08KYSs0UVhuRnNYbnZPR3pxK2xvcG54SzBYTkpUMGcvb2dCa0RQVnVIRkI4SVNhd0lEQVFBQm80SFpNSUhXTUE0RwpBMVVkRHdFQi93UUVBd0lDckRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSbUtFK0pqUUtpCkxIelZyYk13a0RzR01MaG1nVEFmQmdOVkhTTUVHREFXZ0JTRld2L2RJODBsYjFoQmI1NXRSVG1iV0gxMS96QTgKQmdnckJnRUZCUWNCQVFRd01DNHdMQVlJS3dZQkJRVUhNQUdHSUdoMGRIQTZMeTlqWlhKMGN5NWhZM011WVd4cAplWFZ1TG1OdmJTOXZZM053TURVR0ExVWRId1F1TUN3d0txQW9vQ2FHSkdoMGRIQTZMeTlqWlhKMGN5NWhZM011CllXeHBlWFZ1TG1OdmJTOXliMjkwTG1OeWJEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQmdRQ3lDNEJaUmwvdS8xOFkKdzJzRURibVJDY3hpcVdNR0wvWjl1RmJVRndWMkwzZ0RXYlcrL3RsVEhIeUx2K1Z0RFROS0FWZjIwcVNxbTVMMApTMm1Bd2dlbDd4NFNPN0tCUm5ETldXVHlLa1FZaG1JN09pUEs3S2pGSmlRVGgybjU1RWFQdDN1Q0Ryd1pHT29HClJtaHJqQmRWQksvUDdJa09sQndVRTUyNnlYcVZBdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K

 client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBODFVSEowdkJQbFVXYmNFWmVwMlc1aURubHovN2RVc041a3VNMUk5cjloa0YxUk0vClBnZlBCeUw0ajlsZUtjdEpWaWhwUWJSR0RNWURSdlFlSVRDcFpwbGo0c0F3Rm90ZTM4OFJ2N0czT0VYV3lvQ1EKdWl0a093OW5oUFhPdEt0b1FMOHBhRFAzL29PYVBtNEFuMmtUUjJFb3pqcUJ1a2dySHBrYUFtYUZwcG5YeUY3ZwpNQWc1V2lSTkZLNG12TlVxNXUyYm5sL1pOb2ExaTN5V2lKVnFQaTh5L1ZxZkx0QmdsNkYyT3ZnZWZlb2t1eU0xCjl5WmdnSlJWekFZWjhmeFZVaDcvd1pmSzBRWUozL1ZsNDdLWmNWVUJ6bldiYVdzcHFNVERVNjRxTS9obWJIMXUKL3FsN0Nld1dRQ2Y1NXllZXpDc04zTW9iUVNvdUFJSXhDMm0zWVFJREFRQUJBb0lCQUNZRFBIRFpGc0VrRGJMcgpuWTFZSFFDcVYwTjdqVTdQZ01aZk93cmh0TjNuSHRBZ2g1cXJJWjVkeWpLK3BFVW5LcmU0N0dpRlB3UXowc004CjA1QWZ4L2J0TTN0eXhwQmZDVjB4UGZhU1Rxc056ZllvaTNOcDMraVNDWHZ0NG5LNjdEaGhKSmpRdFljZkMvT0EKdjd3bmNBbVFsZzFSZW42ZFU0OGVIOEFNUUFpOFpjdU1MUzYrc2RneWx1SFRMTjR1bjZrMFZOSERyKysxSkVXUgpscjBaeXNTUEVmbGltRlVZSHRhdkNPbjNsMVFaYnlQcHowbHpLU2lGeW1WcXNSTkJDTjNrcm9ES0Uybm5Yd0FQCkZjUWp0bmtPNW9BUG1FMmM5a1dnMGxyWllsc0MwdWRCRUExSnVmU1lwTkQ2RFdobXM0cG9FbVNjUG9GWXVyMm4KRTBPaUVBRUNnWUVBOTNtMFFJaGdjQWZuQU9vSWgxdmRGWTlxTkVnQXZ2T1BIZWJMbVVnVlhNNDRUamZuQTZ0SApKK0h6TWhGQ0tPVTRldG5xTVFReU1ZblRPTitFUWgxMkhRRHNmQVJ2dXpyY2FxZmhPZGRtTTlNelRVT0lLUXM5CkhnbE9na0ViQmtiT0Ivc0RqWW1WRG5IRVBWdUpJUk1LamNoNVRiL09ncGlVSlZWZkxqQ2FSTUVDZ1lFQSs3YkoKbklnQWxzb0FnamQvZjNCSTV5L24zMmlQK0RoV2o3bFpVSUEvMTk0OWNhLzdzT3oreTlGOVJFbTBVNTlnVVJRbwpyNmFnczdLZUNIMWJ1U3p3Vm5NcVRaZHZSUXdxZitDUFFCOFFxNE1Ya0hZcnpNRmVHNCt1ZHpEOHV4aVlNVWhSCm8rTDA3OXluYjlUKzUvaGVMajRRdjc3L25vVVpLRVBmQm1OQStxRUNnWUI2YzdJSkxISHJmVDJFYWtrR0VTSjQKQkpxY2UvUkNoK21NOWlKUUdpYlg0UUpqVWEzeFZ0TENuVDdreXoxZFZ1NTNlMVF5Sk0xaFRiMUNLdmNhYjlGOQowSE16ZWs1KzZrVWVVU3RVbjR4bW9GNkdJS0JERHRpVEFDL2txNnBmbExGbHFZSzhpaE5ETG0vWG5HOWgrallDCnFldTcyT2lxSGkxUHU4cDQ1SHV4QVFLQmdDUDRFY1ZKZGZRV040NWtDZGNYSDRQUng2dVlFSUtpNGxPMVk3cnEKS0xWYkw2S1FTRUlYQzYzcWFLRWFleWM3N2hLSDgreHR2aWNQamgrZWNqMzYydmt2aWNyK3FjclBHeitjd2p1aQpkTXBkZUQrUGMyRFYvUEdwVFlBQXd3eWxUaEkweUYzSDc4SmE0SjVOYklPUGJUM2tacFpQMzgweUxjOGdLNzJJCjcxOGhBb0dBYTd2RjFVUXRmZEt0SHBTRkppejRWSVRYY1BOcjhMYy9xc2F4NEwvV1paaWw3YWpRL1VWTEZ1YVMKWk1WU2VtK3ZzY1pGWUFmNGtEdENCeTlWZXRyMnRvdW5EVUYyRHhlTDBnWFpQWEUzeCtFVlVTbEVzQ3NIN1JLMQppK1NIYmVwMFZZRFFFZ3o2Ukx3K2JReTIvUXZiZlFkcms5U2ZFK2VTTlQrT2sveDdzVkU9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==

, 绑定域名

对于需要供外部服务或客户端访问的系统一般需要配置绑定域名,即需要在Ingress中绑定

文件内容

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

  name: ingress-nginx

  namespace: default

  uid: 136b1e73-f3ca-469c-b710-914807bc1162

  resourceVersion: '13945489'

  generation: 1

  creationTimestamp: '2022-04-19T05:10:25Z'

  annotations:

    nginx.ingress.kubernetes.io/service-weight: ''

  managedFields:

    - manager: ACK-Console Apache-HttpClient

      operation: Update

      apiVersion: networking.k8s.io/v1

      time: '2022-04-19T05:10:25Z'

      fieldsType: FieldsV1

      fieldsV1:

        f:metadata:

          f:annotations:

            .: {}

            f:nginx.ingress.kubernetes.io/service-weight: {}

        f:spec:

          f:rules: {}

    - manager: nginx-ingress-controller

      operation: Update

      apiVersion: networking.k8s.io/v1

      time: '2022-04-19T05:10:31Z'

      fieldsType: FieldsV1

      fieldsV1:

        f:status:

          f:loadBalancer:

            f:ingress: {}

  selfLink: /apis/networking.k8s.io/v1/namespaces/default/ingresses/ingress-nginx

status:

  loadBalancer:

    ingress:

      - ip: 172.16.101.133

spec:

  ingressClassName: nginx

  rules:

    - host: starbucks-ods.shuinfo.tech

      http:

        paths:

          - path: /

            pathType: ImplementationSpecific

            backend:

              service:

                name: starbucks-ods-webflux-poc-svc

                port:

                  number: 8083     

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Loren_云淡风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值