我试图按照入门 docker 的教程进行操作,但是当您必须使用 kuberetes 时,我陷入了困境。我正在使用 microk8s 创建集群。
我的 Dockerfile:
FROM node:6.11.5WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . .
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
我的 bb.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: bb-demo
namespace: default
spec:
replicas: 1
selector:
matchLabels:
bb: web
template:
metadata:
labels:
bb: web
spec:
containers:
- name: bb-site
image: bulletinboard:1.0
---
apiVersion: v1
kind: Service
metadata:
name: bb-entrypoint
namespace: default
spec:
type: NodePort
selector:
bb: web
ports:
- port: 8080
targetPort: 8080
nodePort: 30001 …Run Code Online (Sandbox Code Playgroud) 我有三个 pod,里面有 HTTPS 服务器。我曾经通过 NodePort 服务访问它们。现在我部署了一个 Nginx Ingress 将它们全部集中在一个 IP 中。我注意到 Nginx Ingress 无法与 pod 中的 HTTPS 服务器连接,但如果我将其更改为 HTTP,则可以完美连接。
如何让 Ingress 与 Pod 中的 HTTPS 服务器连接?
我尝试配置一个 tls 秘密,并将其添加到 Ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: k8s-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/proxy-ssl-secret: cert
spec:
rules:
- http:
paths:
- path: /api-rest
backend:
serviceName: api-rest
servicePort: 8080
- path: /auth
backend:
serviceName: auth-entry
servicePort: 8080
Run Code Online (Sandbox Code Playgroud)
它不起作用。我仍然遇到 503 服务暂时不可用
我已经阅读过有关 SSL Passthrough 的内容,但我也无法使其工作。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: k8s-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: / …Run Code Online (Sandbox Code Playgroud)