シンプル・トリック
3806 ワード
問題
私は最近、仕事でシンプルで面白いユースケースを経験しました.
いくつかの理由で、ネットワークチームは開発者コンピュータを直接MongoDBデータベースにアクセスすることを禁じます.
Kubernetesプラットフォームだけが、マネージデータベースサービスへのネットワークアクセスを持っています.
基本的には
解決策
前の図を見ると、ここでどこに行っているかを見ることができます.開発者はK 8 Sクラスタにアクセスでき、K 8 Sクラスタは管理されたDBサービスにアクセスできます.
…これがその計画です.
そこで、ポート8080から目的のIP :ポートまでストリームTCP接続に設定された単純なNGinX K 8 Sサービスを展開しましょう.次にポートを使用して接続をリダイレクトする
あなたのMondoDBが100.101.102.103 : 27017で聞くと仮定してください
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: mongodb-proxy
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: mongodb-proxy
ingress:
- {}
egress:
- {}
policyTypes:
- Ingress
- Egress
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-proxy
data:
nginx.conf: |
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /tmp/nginx.pid;
stream {
server {
listen 8080 so_keepalive=on;
proxy_connect_timeout 2s;
proxy_pass stream_backend;
proxy_timeout 10m;
}
upstream stream_backend {
server 100.101.102.103:27017;
}
}
events {
worker_connections 1024;
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-proxy
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: "mongodb-proxy"
template:
metadata:
labels:
app.kubernetes.io/component: "mongodb-proxy"
spec:
serviceAccountName: default
securityContext: {}
containers:
- name: mongodb-proxy
volumeMounts:
- name: mongodb-proxy
mountPath: /etc/nginx
securityContext:
readOnlyRootFilesystem: false
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
image: "nginx/nginx-unprivileged"
imagePullPolicy: Always
ports:
- name: http
containerPort: 8080
protocol: TCP
# - name: https
# containerPort: 443
# protocol: TCP
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
volumes:
- name: mongodb-proxy
configMap:
name: mongodb-proxy
まず、このK 8 Sテンプレートを展開します.注意:
次のようになります.
kubectl port-forward mongodb-proxy 8080:8080
(私はそれをテストしなかった、私はそれを行うためにk9sを使用します).現在、私はlocalhostを使用している私のコンピュータから直接私のDBにアクセスすることができます:8080
Firefoxを使って、
このソリューションは非常に簡単に実行され、他のバックエンドの多くに適応し、単一の小さなファイルに保持することができます.
Reference
この問題について(シンプル・トリック), 我々は、より多くの情報をここで見つけました https://dev.to/richarddevers/k8s-nginx-small-trick-25fdテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol