无法查看 kiali 仪表板
Unable to view kiali dashboard
我按照以下步骤安装了 Istion 版本 1.6.9
Install Istio Version 1.6.9
wget https://github.com/istio/istio/releases/download/1.6.9/istio-1.6.9-linux-amd64.tar.gz
tar -xzvf istio-1.6.9-linux-amd64.tar.gz
cd istio-1.6.9
cd bin/
sudo mv istioctl /usr/local/bin/
istioctl --version
istioctl install --set profile=demo
我想访问 kiali 控制面板,但不知道如何访问!
我可以在 pod:
中看到 kiali 是 运行
kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
grafana-5dc4b4676c-wcb59 1/1 Running 0 32h
istio-egressgateway-5889bb8976-stlqd 1/1 Running 0 32h
istio-ingressgateway-699d97bdbf-w6x46 1/1 Running 0 32h
istio-tracing-8584b4d7f9-p66wh 1/1 Running 0 32h
istiod-86d4497c9-xv2km 1/1 Running 0 32h
kiali-6f457f5964-6sssn 1/1 Running 0 32h
prometheus-5d64cf8b79-2kdww 2/2 Running 0 32h
我也可以将 kiali 视为服务:
kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 10.100.101.71 <none> 3000/TCP 32h
istio-egressgateway ClusterIP 10.100.34.75 <none> 80/TCP,443/TCP,15443/TCP 32h
istio-ingressgateway LoadBalancer 10.100.84.203 a736b038af6b5478087f0682ddb4dbbb-1317589033.ap-southeast-2.elb.amazonaws.com 15021:31918/TCP,80:32736/TCP,443:30611/TCP,31400:30637/TCP,15443:31579/TCP 32h
istiod ClusterIP 10.100.111.159 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP,853/TCP 32h
jaeger-agent ClusterIP None <none> 5775/UDP,6831/UDP,6832/UDP 32h
jaeger-collector ClusterIP 10.100.84.202 <none> 14267/TCP,14268/TCP,14250/TCP 32h
jaeger-collector-headless ClusterIP None <none> 14250/TCP 32h
jaeger-query ClusterIP 10.100.165.216 <none> 16686/TCP 32h
kiali ClusterIP 10.100.159.127 <none> 20001/TCP 32h
prometheus ClusterIP 10.100.113.255 <none> 9090/TCP 32h
tracing ClusterIP 10.100.77.39 <none> 80/TCP 32h
zipkin ClusterIP 10.100.247.201 <none> 9411/TCP
我也可以看到秘密也部署如下:
kubectl get secrets
NAME TYPE DATA AGE
default-token-ghz6r kubernetes.io/service-account-token 3 8d
sh.helm.release.v1.aws-efs-csi-driver.v1 helm.sh/release.v1 1 6d
[centos@ip-10-0-0-61 ~]$ kubectl get secrets -n istio-system
NAME TYPE DATA AGE
default-token-z6t2v kubernetes.io/service-account-token 3 32h
istio-ca-secret istio.io/ca-root 5 32h
istio-egressgateway-service-account-token-c8hfp kubernetes.io/service-account-token 3 32h
istio-ingressgateway-service-account-token-fx65w kubernetes.io/service-account-token 3 32h
istio-reader-service-account-token-hxsll kubernetes.io/service-account-token 3 32h
istiod-service-account-token-zmtsv kubernetes.io/service-account-token 3 32h
kiali Opaque 2 32h
kiali-service-account-token-82gk7 kubernetes.io/service-account-token 3 32h
prometheus-token-vs4f6 kubernetes.io/service-account-token 3 32h
我 运行 我的 Linux 堡垒主机上的所有上述命令,我希望如果我在我的 Linux 堡垒和 SG 上打开端口 20001 我应该能够访问它 admin/admin 凭据?如下所示:
http://10.100.159.127:20001/
我的第二个问题是 ISTIO,因为该软件是 运行 在我的 Linux Bastion Server 或我的 EKS Cluster 上?
我的感觉是 运行 在本地堡垒服务器上,但由于我们使用了以下命令
kubectl label ns default istio-injection=enabled
kubectl get ns
kubectl label ns jenkins istio-injection=enabled
kubectl label ns spinnaker istio-injection=enabled
这些命名空间中的任何 pods 运行 都会自动注入 Envoy 代理 pod,对吗?
P.S:我做了以下操作:
nohup istioctl dashboard kiali &
已在 SG 级别和 OS 级别打开端口...仍然无法访问 Kiali 仪表板
http://3.25.217.61:40235/kiali
[centos@ip-10-0-0-61 ~]$ wget http://3.25.217.61:40235/kiali
--2020-09-11 15:56:18-- http://3.25.217.61:40235/kiali
Connecting to 3.25.217.61:40235... failed: Connection refused.
curl ifconfig.co
3.25.217.61
sudo netstat -nap|grep 40235
tcp 0 0 127.0.0.1:40235 0.0.0.0:* LISTEN 29654/istioctl
tcp6 0 0 ::1:40235 :::* LISTEN 29654/istioctl
真的,无法理解出了什么问题...
只是 运行 istioctl dashboard kiali
.
Istioctl 将创建一个代理。现在使用 admin/admin 凭据登录。
回答第二个问题:
Istio 运行正在您的集群上运行,并使用 istioctl 配置,安装在您的 bastion 上。
通过使用 istio-injection=enabled
标记命名空间,sidecar 将被自动注入。如有必要,您可以通过如下注释来禁用 pod 的注入:
spec:
selector:
matchLabels:
...
template:
metadata:
labels:
...
annotations:
sidecar.istio.io/inject: "false"
更新
要在没有 istioctl/kubectl 代理的情况下访问 kiali,您有三个选择。如您所见,这取决于 kiali 服务类型:
- 集群 IP(默认)
要使用默认设置,请设置从网关到 kiali 服务的路由。这是使用 VirtualService
和 DestinationRule
完成的。您可以通过例如 <ingress-gateway-loadbalancer-id>.amazonaws.com/kiali
访问 kiali
- 节点端口
您可以通过在安装 istio 时设置相应的值将类型更改为 NodePort
,并通过 <ingress-gateway-loadbalancer-id
> 访问 kiali。amazonaws.com:20001/kiali``
- 负载均衡器
您可以通过在安装 istio 时设置相应的值来将类型更改为 LoadBalancer
。第二个弹性负载均衡器将在 aws 上创建,并且 kiali 服务将有一个外部 ip,就像 ingressgateway 服务一样。您现在可以通过 <kiali-loadbalancer-id>.amazonaws.com/kiali
访问它
我会推荐选项 1。这是生产的最佳实践,您不必深入研究 istio 安装配置,这在开始时可能会让人不知所措。
通过以下命令检查 kiali 服务的端口及其类型。
kubectl get svc -n istio-system
如果类型是 NodePort 那么你可以检查 localhost:(kiali 服务的端口) 否则如果类型是 clusterIP 那么你必须通过转发来暴露它。
通过 Kubernetes 端口转发或网关公开 Kiali。以下转发命令在本地主机、端口 20001 上公开 Kiali:
kubectl -n istio-system port-forward svc/kiali 20001:20001 &
然后检查 localhost:20001 的 kiali 仪表板。
使用 Kubernetes:https://{域或入口 ip}/kiali
kubectl get ingress kiali -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
或(适用于任何类型的平台)
oc port-forward svc/kiali 20001:20001 -n istio-system
kubectl port-forward svc/kiali 20001:20001 -n istio-system
kubectl port-forward $(kubectl get pod -n istio-system -l app=kiali -o jsonpath='{.items[0].metadata.name}') -n istio-system 20001
我按照以下步骤安装了 Istion 版本 1.6.9
Install Istio Version 1.6.9
wget https://github.com/istio/istio/releases/download/1.6.9/istio-1.6.9-linux-amd64.tar.gz
tar -xzvf istio-1.6.9-linux-amd64.tar.gz
cd istio-1.6.9
cd bin/
sudo mv istioctl /usr/local/bin/
istioctl --version
istioctl install --set profile=demo
我想访问 kiali 控制面板,但不知道如何访问!
我可以在 pod:
中看到 kiali 是 运行kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
grafana-5dc4b4676c-wcb59 1/1 Running 0 32h
istio-egressgateway-5889bb8976-stlqd 1/1 Running 0 32h
istio-ingressgateway-699d97bdbf-w6x46 1/1 Running 0 32h
istio-tracing-8584b4d7f9-p66wh 1/1 Running 0 32h
istiod-86d4497c9-xv2km 1/1 Running 0 32h
kiali-6f457f5964-6sssn 1/1 Running 0 32h
prometheus-5d64cf8b79-2kdww 2/2 Running 0 32h
我也可以将 kiali 视为服务:
kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 10.100.101.71 <none> 3000/TCP 32h
istio-egressgateway ClusterIP 10.100.34.75 <none> 80/TCP,443/TCP,15443/TCP 32h
istio-ingressgateway LoadBalancer 10.100.84.203 a736b038af6b5478087f0682ddb4dbbb-1317589033.ap-southeast-2.elb.amazonaws.com 15021:31918/TCP,80:32736/TCP,443:30611/TCP,31400:30637/TCP,15443:31579/TCP 32h
istiod ClusterIP 10.100.111.159 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP,853/TCP 32h
jaeger-agent ClusterIP None <none> 5775/UDP,6831/UDP,6832/UDP 32h
jaeger-collector ClusterIP 10.100.84.202 <none> 14267/TCP,14268/TCP,14250/TCP 32h
jaeger-collector-headless ClusterIP None <none> 14250/TCP 32h
jaeger-query ClusterIP 10.100.165.216 <none> 16686/TCP 32h
kiali ClusterIP 10.100.159.127 <none> 20001/TCP 32h
prometheus ClusterIP 10.100.113.255 <none> 9090/TCP 32h
tracing ClusterIP 10.100.77.39 <none> 80/TCP 32h
zipkin ClusterIP 10.100.247.201 <none> 9411/TCP
我也可以看到秘密也部署如下:
kubectl get secrets
NAME TYPE DATA AGE
default-token-ghz6r kubernetes.io/service-account-token 3 8d
sh.helm.release.v1.aws-efs-csi-driver.v1 helm.sh/release.v1 1 6d
[centos@ip-10-0-0-61 ~]$ kubectl get secrets -n istio-system
NAME TYPE DATA AGE
default-token-z6t2v kubernetes.io/service-account-token 3 32h
istio-ca-secret istio.io/ca-root 5 32h
istio-egressgateway-service-account-token-c8hfp kubernetes.io/service-account-token 3 32h
istio-ingressgateway-service-account-token-fx65w kubernetes.io/service-account-token 3 32h
istio-reader-service-account-token-hxsll kubernetes.io/service-account-token 3 32h
istiod-service-account-token-zmtsv kubernetes.io/service-account-token 3 32h
kiali Opaque 2 32h
kiali-service-account-token-82gk7 kubernetes.io/service-account-token 3 32h
prometheus-token-vs4f6 kubernetes.io/service-account-token 3 32h
我 运行 我的 Linux 堡垒主机上的所有上述命令,我希望如果我在我的 Linux 堡垒和 SG 上打开端口 20001 我应该能够访问它 admin/admin 凭据?如下所示:
http://10.100.159.127:20001/
我的第二个问题是 ISTIO,因为该软件是 运行 在我的 Linux Bastion Server 或我的 EKS Cluster 上? 我的感觉是 运行 在本地堡垒服务器上,但由于我们使用了以下命令
kubectl label ns default istio-injection=enabled
kubectl get ns
kubectl label ns jenkins istio-injection=enabled
kubectl label ns spinnaker istio-injection=enabled
这些命名空间中的任何 pods 运行 都会自动注入 Envoy 代理 pod,对吗?
P.S:我做了以下操作:
nohup istioctl dashboard kiali &
已在 SG 级别和 OS 级别打开端口...仍然无法访问 Kiali 仪表板
http://3.25.217.61:40235/kiali
[centos@ip-10-0-0-61 ~]$ wget http://3.25.217.61:40235/kiali
--2020-09-11 15:56:18-- http://3.25.217.61:40235/kiali
Connecting to 3.25.217.61:40235... failed: Connection refused.
curl ifconfig.co
3.25.217.61
sudo netstat -nap|grep 40235
tcp 0 0 127.0.0.1:40235 0.0.0.0:* LISTEN 29654/istioctl
tcp6 0 0 ::1:40235 :::* LISTEN 29654/istioctl
真的,无法理解出了什么问题...
只是 运行 istioctl dashboard kiali
.
Istioctl 将创建一个代理。现在使用 admin/admin 凭据登录。
回答第二个问题: Istio 运行正在您的集群上运行,并使用 istioctl 配置,安装在您的 bastion 上。
通过使用 istio-injection=enabled
标记命名空间,sidecar 将被自动注入。如有必要,您可以通过如下注释来禁用 pod 的注入:
spec:
selector:
matchLabels:
...
template:
metadata:
labels:
...
annotations:
sidecar.istio.io/inject: "false"
更新
要在没有 istioctl/kubectl 代理的情况下访问 kiali,您有三个选择。如您所见,这取决于 kiali 服务类型:
- 集群 IP(默认)
要使用默认设置,请设置从网关到 kiali 服务的路由。这是使用 VirtualService
和 DestinationRule
完成的。您可以通过例如 <ingress-gateway-loadbalancer-id>.amazonaws.com/kiali
- 节点端口
您可以通过在安装 istio 时设置相应的值将类型更改为 NodePort
,并通过 <ingress-gateway-loadbalancer-id
> 访问 kiali。amazonaws.com:20001/kiali``
- 负载均衡器
您可以通过在安装 istio 时设置相应的值来将类型更改为 LoadBalancer
。第二个弹性负载均衡器将在 aws 上创建,并且 kiali 服务将有一个外部 ip,就像 ingressgateway 服务一样。您现在可以通过 <kiali-loadbalancer-id>.amazonaws.com/kiali
我会推荐选项 1。这是生产的最佳实践,您不必深入研究 istio 安装配置,这在开始时可能会让人不知所措。
通过以下命令检查 kiali 服务的端口及其类型。
kubectl get svc -n istio-system
如果类型是 NodePort 那么你可以检查 localhost:(kiali 服务的端口) 否则如果类型是 clusterIP 那么你必须通过转发来暴露它。
通过 Kubernetes 端口转发或网关公开 Kiali。以下转发命令在本地主机、端口 20001 上公开 Kiali:
kubectl -n istio-system port-forward svc/kiali 20001:20001 &
然后检查 localhost:20001 的 kiali 仪表板。
使用 Kubernetes:https://{域或入口 ip}/kiali
kubectl get ingress kiali -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
或(适用于任何类型的平台)
oc port-forward svc/kiali 20001:20001 -n istio-system
kubectl port-forward svc/kiali 20001:20001 -n istio-system
kubectl port-forward $(kubectl get pod -n istio-system -l app=kiali -o jsonpath='{.items[0].metadata.name}') -n istio-system 20001