我在 istio-demo-auth.yaml 中使用了 istio 1.0.2版本 ,我在k8s群集之外有一个mssql数据库,我想将其连接到istio注入服务。我尝试使用此Consuming External TCP Services博客,但服务无法连接到外部mssql实例。服务条目如下:
function edit_cli(){
date_default_timezone_set('Asia/Dhaka');
$date = date('Y-m-d',time());
$cli_id = $this->input->post('client_id');
$data = array(
'product_id' => $this->input->post('product_id'),
'clientName' => $this->input->post('clientName'),
'companyName' => $this->input->post('companyName'),
'client_info_doc' => $date,
'client_info_created_by' => $this->session->userdata('user_id')
);
$this->db->where('client_id', $cli_id);
$this->db->update('tbl_client_info', $data);
}
并且服务日志显示“ Prelogin错误:主机mssql-master端口2433读取prelogin响应时出错:Connection reset ClientConnectionId:”,似乎根本没有到达mssql。如何为外部tls服务配置外部集群数据库?
答案 0 :(得分:0)
正如@SmileSees提到的,已通过为目标mssql
实例禁用双向TLS身份验证解决了该问题。由于数据库实例位于Istio网格外部,并且没有为此服务注入sidecar Envoy
,因此未建立TLS安全连接。
您可以考虑使用SPIFFE框架来保护异构环境中的服务。
进一步研究的参考链接: