Как я могу использовать порт сервера, работающего на локальном хосте в kubernetes, работающем под весенней загрузкой приложения - PullRequest
1 голос
/ 27 сентября 2019

Я новичок в Kubernetes и kubectl.Я в основном использую сервер GRPC на моем локальном хосте.Я хотел бы использовать эту конечную точку в приложении весенней загрузки, работающем на kubernetes с использованием kubectl на моем Mac.Если я установлю следующий конфиг в application.yml и запустлю в kubernetes, он не будет работать.Тот же конфиг работает, если я запускаю в IDE.

grpc:
  client:
    local-server:
      address: static://localhost:6565
      negotiationType: PLAINTEXT

Я вижу, что некоторые люди предлагают переадресацию портов, но это наоборот (работает, когда я хочу использовать порт, который уже находится в kubernetes изlocalhost так же, как сервер tomcat, работающий в kubernetes из браузера на localhost)

apiVersion: apps/v1
kind: Deployment
metadata: 
  name: testspringconfigvol
  labels:
    app: testspring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: testspringconfigvol
  template:
    metadata:
      labels:
        app: testspringconfigvol
    spec:
      initContainers:
      # taken from https://gist.github.com/tallclair/849601a16cebeee581ef2be50c351841
      # This container clones the desired git repo to the EmptyDir volume.
      - name: git-config
        image: alpine/git # Any image with git will do
        args:
          - clone
          - --single-branch
          - --
          - https://github.com/username/fakeconfig
          - /repo # Put it in the volume
        securityContext:
          runAsUser: 1 # Any non-root user will do. Match to the workload.
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
        volumeMounts:
        - mountPath: /repo
          name: git-config
      containers:
      - name: testspringconfigvol-cont
        image: username/testspring
        ports:
        - containerPort: 8080
        volumeMounts:  
        - mountPath: /usr/local/lib/config/
          name: git-config
      volumes:
        - name: git-config
          emptyDir: {}

Что мне нужно в простых терминах:

Порты, имеющие некоторый сервер на моем локальном хосте: localhost: 6565, localhost: 6566, мне нужно как-то получить доступ к этим портам в моих kubernetes.Тогда что я должен установить в конфиге application.yml?Будет ли это то же самое localhost: 6565, localhost: 6566 или how-to-get-this-ip: 6565, how-to-get-this-ip: 6566.

1 Ответ

0 голосов
/ 27 сентября 2019

1) Внутри вашего application.properties определяют

 server.port=8000

2) Создать Dockerfile

# Start with a base image containing Java runtime (mine java 8)
FROM openjdk:8u212-jdk-slim
# Add Maintainer Info
LABEL maintainer="vaquar.khan@gmail.com"
# Add a volume pointing to /tmp
VOLUME /tmp
# Make port 8080 available to the world outside this container
EXPOSE 8080
# The application's jar file (when packaged)
ARG JAR_FILE=target/codestatebkend-0.0.1-SNAPSHOT.jar
# Add the application's jar to the container
ADD ${JAR_FILE} codestatebkend.jar
# Run the jar file 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/codestatebkend.jar"]

3) Убедитесь, что докер работает нормально

       docker run --rm -p 8080:8080 

4)

используйте следующую команду, чтобы найти имя модуля

 kubectl get pods 

затем

  kubectl port-forward <pod-name> 8080:8080

Полезные ссылки:

...