我需要将托管在命名空间 A 中的 mysql 数据库提供给部署在命名空间“B”中的应用程序。
到目前为止,我已经尝试了几种方法,其中最有希望的是使用endpoint和服务的组合,如下所示:
kind: Service
apiVersion: v1
metadata:
name: mysql
spec:
ports:
- port: 3306
targetPort: 31234
---
kind: Endpoints
apiVersion: v1
metadata:
name: mysql
subsets:
- addresses:
- ip: 12.34.567.8
ports:
- port: 31234
而mysql容器的一个实例已经在名称空间“A”中分离,并通过节点端口配置在31234处公开。
该应用程序有一个init容器init-mysql,它使用主机名“mysql”和正确的凭证来ping MySQL实例。我期望应用程序像往常一样启动,但是它卡在pod初始化状态。当我试图检查init-mysql的日志时,我只得到以下内容:
Warning: Using a password on the command line interface can be insecure.
initContainer 'init-mysql '使用的命令有:
command:
- sh
- -c
- 'mysqladmin ping -hmysql -P3306 -uusername -ppassword'
这个问题是在这里提出的
我发布了Paul(社区维基)的接受答案,以提高可见性:
我偶然发现了同样的问题,并找到了一个不需要任何静态ip配置的好解决方案:
您可以通过服务的DNS名称(如您所述)访问服务:servicename.namespace.svc.cluster.local
您可以使用该DNS名称通过本地服务在另一个命名空间中引用它:
kind: Service
apiVersion: v1
metadata:
name: service-y
namespace: namespace-a
spec:
type: ExternalName
externalName: service-x.namespace-b.svc.cluster.local
ports:
- port: 80
为什么using指令在包含在匿名命名空间中时表现得好像出现在全局范围?
关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。 这篇文章描述了如何在TypeScript里使用命名空间(之前叫做“内部模块”)来组织你的代码
Let the word of Christ dwell in you richly in all wisdom; teaching and admonishing one another in psalms and hymns and spiritual songs, singing with grrace in your hearts tto the Lord. And whatsoever
客户端有许多“命名空间”,通常是一些公开的可管理功能。命名空间对应 Elasticsearch 中各种可管理的 endpoint。下面是全部的命名空间: **命名空间** **功能** `indices()` 索引数据统计和显示索引信息 `nodes()` 节点数据统计和显示节点信息 `cluster()` 集群数据统计和显示集群信息 `snapshot()` 对集群和索引进行拍摄快照或恢复数据
命名空间 由于 js 环境极少命名空间管理模块, namespace 相对陌生, 比如有这样的文件结构, src/ demo/ core.cljs 可以看到 core.cljs 的路径就是: src/demo/core.cljs 注意 JVM 环境有个 classpath 的环境变量, 用于判断怎样查找源码, classpath 对应多个路径, 也可能是 jar 包, 而 jar 包中
命名空间,英文名字:namespaces 在研习命名空间以前,请打开在python的交互模式下,输入:import this >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than