![](/img/trans.png)
[英]How to connect to my Compute Engine MongoDB instance from Google Cloud Functions using the internal IP?
[英]Not able to connect the Google Cloud Load Balancer generated using ingress-nginx on Browser after adding the LB IP in my windows hosts file
我是 GCE-GKE 中 Kubernetes 的新手,我正在嘗試使用 skaffold.Yaml 在 GCE-GKE 集群中構建和部署 nodeJS 應用程序。 我可以看到圖像已構建並部署,沒有任何問題,但是當我嘗試在瀏覽器上訪問 GET index.ts 文件時,我不能。 我真的不明白可能出了什么問題,或者我可能在 LB 或 ingress-nginx 上錯過了一些東西。
下面是 skaffold.yaml
apiVersion: skaffold/v2alpha3
kind: Config
deploy:
kubectl:
manifests:
- ./infra/k8s/*
build:
# local:
# push: false
googleCloudBuild:
projectId: xxxxxxxxxxxx
artifacts:
- image: us.gcr.io/xxxxxxxxxxx/auth
context: auth
docker:
dockerfile: Dockerfile
sync:
manual:
- src: 'src/**/*.ts'
dest: .
下面是ingress-srv.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: ticketing.dev
http:
paths:
- path: /api/users/?(.*)
backend:
serviceName: auth-srv
servicePort: 3000
下面是 auth-depl.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: auth-depl
spec:
replicas: 1
selector:
matchLabels:
app: auth
template:
metadata:
labels:
app: auth
spec:
containers:
- name: auth
image: us.gcr.io/xxxxxxxxxxxxx/auth
---
apiVersion: v1
kind: Service
metadata:
name: auth-srv
spec:
selector:
app: auth
ports:
- name: auth
protocol: TCP
port: 3000
targetPort: 3000
下面是package.json
{
"name": "auth",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "ts-node-dev --poll src/index.ts"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@types/express": "^4.17.6",
"express": "^4.17.1",
"nodemon": "^2.0.4",
"typescript": "^3.9.5"
},
"devDependencies": {
"ts-node-dev": "^1.0.0-pre.44"
}
}
下面是 index.ts
import express from 'express';
import { json } from 'body-parser';
const app = express();
app.use(json());
// /api/users/currentuser
app.get('/users', (req, res) => {
res.send('Hello');
});
app.listen(3000, () => {
console.log('Great');
console.log('listening on port 3000!!!!!');
});
下面是 docker 文件
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
您使用哪些工具來管理域配置?
Step 1: As far as i know, after you init nginx on your k8s cluster, you need add a DNS record to map a domain (or subdomain) in your domain (ticketing.dev) to external IP or external DNS of your k8s cluster nginx 已為您重新生成(我通常使用 A 記錄)。
第二步:之后,當你部署好你的應用后,你需要設置你的應用的域名(你在入口yaml文件中指定的域名)是上面(A)記錄的CNAME記錄。
您可以使用nslookup
命令驗證您的域驗證陽離子。 如果您不為您的域使用代理,則上述兩個域(A 和 CNAME 記錄)都將解析為您的 k8s 集群的外部 IP。
上述 2 個步驟的目的是讓 DNS 服務器知道當 DNS 服務器收到關於您的任何子域(域)的請求時,要在哪里(哪個 IP)解析。 這就是為什么您可以使用nslookup
命令來驗證您的配置的原因。
以下是我用來管理我們域的 DNS 的工具: https://www.namecheap.com/support/knowledgebase/article.aspx/9607/2210/how-to-set-up-dns-records-for-您的域中的 cloudflare 帳戶示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.