# 非缺省域名下 Istio 的使用

Kubernetes 缺省的域名为 `cluster.local`，好死不死的，istio 的缺省安装也沿用了这一设定，
并且文档中并没有明确指出这一假设。Istio 中使用了大量的 FQDN 进行服务的甄别，域名不一致这样
的问题可以说是后患无穷。经过 101 号 issue 的讨论，得知 proxy 和 pilot 组件提供了域名的设置功能，大致用法如下：

## Pilot

`kubectl edit deploy istio-pilot -n istio-system` 或者编辑官方的 `istio.yaml`，查找
`docker.io/istio/pilot:0.2.9` 的容器，并在 args 一节中加入如下的两行：

~~~yaml
- --domain
- cloud.ctrm
~~~

## Proxy

这部分略讨厌，因为每个业务 Pod 中都会有 SideCar 加载，因此只能逐个修改，方法同样有两个，
一个是使用 `kubectl edit deploy [workload-deployment]` 的方式，另外一个就是，保存
`istioctl kube-inject -f [workload.yaml]` 输出的文本。同样在
`docker.io/istio/proxy_debug:0.2.9` 所在容器的 args 一节中加入下面的参数：

~~~yaml
- --domain
- cloud.ctrm
~~~

这些 Deployment 修改之后，会进行更新，接下来 Pilot 和 Mixer 就能正确的识别和处理集群中的服务了。
