-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Closed
Labels
area/networkinglifecycle/automatically-closedIndicates a PR or issue that has been closed automatically.Indicates a PR or issue that has been closed automatically.lifecycle/staleIndicates a PR or issue hasn't been manipulated by an Istio team member for a whileIndicates a PR or issue hasn't been manipulated by an Istio team member for a while
Description
Describe the bug
Can't connect to Cloud SQL (postgres 9.6) using istio in Google Container Engine (Kubernetes). The service uses the cloudsql proxy sidecar along with istio in the same pod. Tested with a docker container with psql installed to test the connection.
In vanilla kubernetes I can connect to the database:
root@auth-66c4bf88df-bs7q2:/app# psql -h 127.0.0.1 -U auth -d passport
Password for user auth:
psql (9.6.7, server 9.6.6)
Type "help" for help.
passport=>But, with istio I got:
root@auth-7f769bc877-fbzp4:/app# psql -h 127.0.0.1 -U auth -d passport
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.In the early tries I got blocked by the container (Cloud Proxy), and trying to connect to googleapis.com and accounts.google.com
$ cat <<EOF | istioctl create -f -
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: account-google-serviceentry-rule
spec:
hosts:
- accounts.google.com
ports:
- number: 443
name: https
protocol: HTTPS
EOF
$ cat <<EOF | istioctl create -f -
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: googleapis-serviceentry-rule
spec:
hosts:
- www.googleapis.com
ports:
- number: 443
name: https
protocol: HTTPS
EOFExpected behavior
Successful connection to the database
Steps to reproduce the bug
- Create a Cloud SQL database instance (postgres 9.6)
- Create a service account with Cloud Client role enabled and Cloud Sql account following the GCloud tutorial
- Install istio following the Quick Start page without auth enabled
- Deploy a service (based on debian stretch with psql installed)
- Try to connect to the Database using the credential provided in the previous steps. For example:
$ psql -h 127.0.0.1 -U auth -d passportVersion
$ istioctl version
Version: 0.8.0
GitRevision: 6f9f420f0c7119ff4fa6a1966a6f6d89b1b4db84
User: root@48d5ddfd72da
Hub: docker.io/istio
GolangVersion: go1.10.1
BuildStatus: Clean
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.4", GitCommit:"5ca598b4ba5abb89bb773071ce452e33fb66339d", GitTreeState:"clean", BuildDate:"2018-06-06T08:13:03Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.4-gke.2", GitCommit:"eb2e43842aaa21d6f0bb65d6adf5a84bbdc62eaf", GitTreeState:"clean", BuildDate:"2018-06-15T21:48:39Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}
Is Istio Auth enabled or not?
Installing following the Quick Start page without auth enabled
$ kubectl apply -f install/kubernetes/istio-demo.yamlEnvironment
Kubernetes Engine in Google Cloud
Tested with version 1.9.7 and 1.10.4-gke.2
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/networkinglifecycle/automatically-closedIndicates a PR or issue that has been closed automatically.Indicates a PR or issue that has been closed automatically.lifecycle/staleIndicates a PR or issue hasn't been manipulated by an Istio team member for a whileIndicates a PR or issue hasn't been manipulated by an Istio team member for a while