9

我有一个我正在做的 docker 图像

docker run --name test -h test -p 9043:9043 -p 9443:9443 -d ibmcom/websphere-traditional:install

我正在尝试放入一个 kubernetes 部署文件,我有这个:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: websphere
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: websphere
    spec:
      containers:
      - name: websphere
        image: ibmcom/websphere-traditional:install
        ports:
        - containerPort: 9443
        resources:
          requests: 
            memory: 500Mi
            cpu: 0.5
          limits:
            memory: 500Mi
            cpu: 0.5
        imagePullPolicy: Always

我的服务.yaml

apiVersion: v1
kind: Service
metadata:
  name: websphere
  labels:
    app: websphere
spec:
  type: NodePort #Exposes the service as a node ports
  ports:
  - port: 9443
    protocol: TCP
    targetPort: 9443
  selector:
    app: websphere

我可以指导如何在我的部署文件中映射 2 个端口吗?

4

2 回答 2

9

您可以根据需要添加任意数量的端口。

在这里你的deployment.yml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: websphere
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: websphere
    spec:
      containers:
      - name: websphere
        image: ibmcom/websphere-traditional:install
        ports:
        - containerPort: 9043
        - containerPort: 9443
        resources:
          requests: 
            memory: 500Mi
            cpu: 0.5
          limits:
            memory: 500Mi
            cpu: 0.5
        imagePullPolicy: IfNotPresent

在这里你的service.yml

apiVersion: v1
kind: Service
metadata:
  name: websphere
  labels:
    app: websphere
spec:
  type: NodePort #Exposes the service as a node ports
  ports:
  - port: 9043
    name: hello
    protocol: TCP
    targetPort: 9043
    nodePort: 30043
  - port: 9443
    name: privet
    protocol: TCP
    targetPort: 9443
    nodePort: 30443
  selector:
    app: websphere

检查您的 kubernetesapi-server配置,nodePorts 的范围是多少(通常是30000-32767,但它是可配置的)。

编辑

如果我从 deployment.yml 中删除该resources部分,它会正确启动(大约 5 分钟后)。这是日志的片段:

[9/10/18 8:08:06:004 UTC] 00000051 webcontainer I com.ibm.ws.webcontainer.VirtualHostImpl addWebApplication SRVE0250I:Web 模块默认 Web 应用程序已绑定到 default_host[ :9080, :80, :9443, :506 0, :5061, :443]。

由于证书(我想),连接到它会出现问题(我使用带有 traefik 的入口):

[9/10/18 10:15:08:413 UTC] 000000a4 SSLHandshakeE E SSLC0008E: 无法初始化 SSL 连接。未经授权的访问被拒绝或安全设置已过期。例外是 javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?

为了解决这个问题(我没有更进一步),这可能会有所帮助:SSLHandshakeE E SSLC0008E:无法初始化 SSL 连接。未经授权的访问被拒绝或安全设置已过期

尝试连接port-forward

在此处输入图像描述

并使用浏览器连接,我登陆此页面:

在此处输入图像描述

于 2018-09-09T16:10:02.840 回答
3

那么在 kubernetes 中,您可以使用 #port 标签定义您的端口。此标签位于部署中的端口配置下。根据配置,您可以简单地定义任意数量的端口。以下示例显示了如何定义两个端口。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 9376
    - name: https
      protocol: TCP
      port: 443
      targetPort: 9377
于 2019-09-13T19:10:17.667 回答