在使用calico网络CNI的kubernetes 1.18.6和centos 7.8(3.10.0- 1127.7 .



我已经在多节点上安装了新的k8s 1.18.6 (12GB RAM &在centos-7.8(3.10.0-1127.el7.x86_64)上安装docker版本(19.03.6)&运行版本1.0.0-rc10.

我使用calico(3.11.1)网络插件,直到这里一切都工作很好。当我试图在它上安装1.5.7版本时,我面临着问题如下

问题:

  1. 检测到您的集群不支持第三方JWT身份验证。退回到不太安全的第一方JWT。看到https://istio.io/docs/ops/best-practices/security/#configure-third-party-service-account-tokens对细节。
  2. 错误安装程序失败等待资源:资源不10m0s后准备:暂停等待条件部署/istio-system istiod

kubectl get pods -n istio-system NAME READY STATUS重新启动年龄grafana-5f6f8cbf75- longb7 1/1运行0 41sistio-egressgateway-cbd86567c-5x6rk 0/1 ContainerCreating 0 44秒istio-ingressgateway-799d5b8875-4ztq8 0/1 ContainerCreating 0 42秒istio- tracking -9dd6c4f7c-vv64n 1/1运行0 41秒istiod-b7d8f955b-mtqgb 0/1 CrashLoopBackOff 5 10mkali -869c6894c5-pw7sm 1/1运行0 41sprometheus-7d697b95b-2rjvn 0/2 ContainerCreating 0 41s

istiod-pod-logs:info未指定证书,跳过DNS证书控制器info CRD控制器监视命名空间"info入口控制器监视命名空间"警告配置存储& {0xc00020c6c0集群。本地0xc00026b1e0 0xc000795e00 0xc00079eea0[]}无法跟踪聚合分布info添加Kubernetes注册表适配器info服务控制器监视命名空间"对于服务、端点、节点和pod,刷新时间为1m0sinfo JWT策略为第一方JWTinfo使用自签名证书作为CA证书info pkica获取secret失败(error: get https://10.96.0.1:443/api/v1/namespaces/istio-system/secrets/istio-ca-secret: dial tcp 10.96.0.1:443: i/o timeout),将创建一个Error: failed to create discovery service: enableCA: failed to create a self-signed Citadel: secret write Error,创建CA失败日志含义error pkica向CA写秘钥失败(error: Post https://10.96.0.1:443/api/v1/namespaces/istio-system/secrets: dial tcp 10.96.0.1:443: i/o timeout)。中止。创建发现服务失败:enableCA:创建自签名服务失败Citadel:创建CA失败,原因是secret write error

Istio v1.5已不支持,v1.6和v1.7也将很快不支持。

我也不认为v1.5被批准用于K8s v1.18。

我的建议是使用Istio v1.8,并在尝试安装之前禁用Calico。

  1. 我将首先检查您的集群是否支持第三方令牌,更多信息在这里。

由于第一方令牌的属性不太安全,Istio将默认使用第三方令牌。但是,此功能并非在所有Kubernetes平台上启用。

如果您使用istioctl安装,支持将被自动检测。这也可以手动完成,并通过传递——set values.global来配置。jwtPolicy=third-party-jwt或——set values.global.jwtPolicy=first-party-jwt.

要确定您的集群是否支持第三方令牌,请查找TokenRequest API。如果没有返回响应,则不支持该特性:

kubectl get --raw /api/v1 | jq '.resources[] | select(.name | index("serviceaccounts/token"))'
{
"name": "serviceaccounts/token",
"singularName": "",
"namespaced": true,
"group": "authentication.k8s.io",
"version": "v1",
"kind": "TokenRequest",
"verbs": [
"create"
]
}

  1. 然后我会检查要求,根据istio文档,你应该至少有16384 MB的内存和4个cpu来运行istio。

还有另一个stackoverflow案例,社区成员在12GB RAM时遇到了同样的问题。


  1. 我还会检查版本,正如文档
  2. 中提到的

Istio 1.5已经在Kubernetes 1.14, 1.15, 1.16版本中测试过了。

当你使用Kubernetes时1.18.6版本,它可能无法使用Istio

1.5版本。

所以我建议使用这种方法:

  • 为集群添加4GB内存,
  • 使用更新版本的istio,
  • 安装--set values.global.jwtPolicy=first-party-jwt.

相关内容

  • 没有找到相关文章

最新更新