私は個々のkubernetesコンテナを稼働させています。誰か私にそれらをリンクする方法を助けてもらえますか? 私はドッキングウィンドウのコンに働いていると、そこには次のように動作します。Kubernetesの別のサービスに1つのサービスをリンクします
redis:
image: redis
hostname: redis
expose:
- "6379"
nginx:
image: xxx.xx.xx.xx:5000/nginx:0.1
expose:
- "8080"
ports:
- "8080:8080"
depends_on:
- active-webserver
- passive-webserver
active-webserver:
image: xxx.xx.xx.xx:5000/webserver:0.1
hostname: active-webserver
depends_on:
- redis
links:
- redis
expose:
- "8081"
ports:
- "8090:8081"
passive-webserver:
image: xxx.xx.xx.xx:5000/webserver:0.1
hostname: passive-webserver
depends_on:
- redis
- kafka
links:
- redis
- kafka
expose:
- "8081"
ports:
- "8091:8081"
しかしkubernetesに来たとき、私はどのように進んでするか見当もつかない。私はkomposeを使用した後にサービスとデプロイメントファイルを作成しましたが、実際にコード間のリンクが壊れました。
サービスファイル:
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -f docker-compose.yaml
kompose.version: 1.5.0 (999278f)
creationTimestamp: null
labels:
io.kompose.service: nginx
name: nginx
spec:
ports:
- name: "8080"
port: 8080
targetPort: 8080
selector:
io.kompose.service: nginx
status:
loadBalancer: {}
そして、私の配布ファイルには、次のとおりです。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -f docker-compose.yaml
kompose.version: 1.5.0 (999278f)
creationTimestamp: null
labels:
io.kompose.service: nginx
name: nginx
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: nginx
spec:
containers:
- image: xxx.xx.xx.xx:5000/nginx:0.1
name: nginx
ports:
- containerPort: 8080
resources: {}
restartPolicy: Always
status: {}
これは、1つの名前空間にポッドを配置しますが、私の本当の疑問は、アプリケーションが依存関係をどのように解決するかです。上記のdocker-compseファイルにあるように、私たちはリンクを与えてyamlに依存しますが、kubernetesマニフェストに相当するものは何ですか? –
https://github.com/Mirantis/k8s-AppController/blob/master/README.md –
未処理のkubernetesには何もありません。コンテナが同じポッドにある場合は、localhost(127.0.0.1)を使ってアドレス指定することができます。kubedns kubernetesサービスを実行している場合、内部DNS名はになります。 .svc.cluster.local –