【问题标题】:Istio upgrade from 1.4 to 1.5Istio 从 1.4 升级到 1.5
【发布时间】:2020-08-04 16:42:27
【问题描述】:

我们通过在 k8s 集群 - 1.15.1 上运行以下命令从 istio-demo.yml 文件安装 istion-1.4.0

kubectl apply -f istio-demo.yml

现在我们需要将我们的 istio 从 1.4.0 升级到 1.5.0,据我了解,由于 Istio 组件的变化(引入 istiod 并移除 citadel、厨房、策略和遥测),这并不简单。

我如何从 kubectl 迁移到 istoctl,以便将来升级到 istio in-line。??

【问题讨论】:

  • 您的问题是什么?具体来说。
  • @Rico .. 我已经起草了查询,有几行遗漏了
  • 不确定我的理解是否正确,您正在寻找一种方法来安装 istioctl 并使用它安装 istio,或者使用 kubectl apply 升级您的 istio 构建 istioctl?如果它是关于升级的,我怀疑它可能像 helm 一样工作,在 istio 上有社区指南讨论 upgrading from 1.4.3 to 1.6,你可以尝试安装 istioctl 并按照从 1.4.x 到 1.4.10 和从 1.4 的步骤操作.10 到 1.5.x?

标签: kubernetes istio


【解决方案1】:

正如我在 cmets 中提到的,我在 istio discuss 上关注了一个关于由@laurentiuspurba 创建的升级的主题。

我针对您的用例做了一些改动,所以从 1.4 升级到 1.5。

看看下面的步骤。


1.关注 istio documentation 并安装 istioctl 1.4 和 1.5:

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.4.0 sh -
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.0 sh -

2.将 istioctl 1.4 添加到您的路径

cd istio-1.4.0
export PATH=$PWD/bin:$PATH

3.安装 istio 1.4

istioctl manifest generate > $HOME/generated-manifest.yaml
kubectl create namespace istio-system
kubectl apply -f generated-manifest.yaml

4.检查是否一切正常。

kubectl get pod -n istio-system
kubectl get svc -n istio-system
istioctl version

5.将 istioctl 1.5 添加到您的路径

cd istio-1.5.0
export PATH=$PWD/bin:$PATH

6.安装istio operator以备将来升级。

istioctl operator init

7.准备 IstioOperator.yaml

nano IstioOperator.yaml

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: example-istiocontrolplane
spec:
  profile: default
  tag: 1.5.0

8.升级前使用以下命令

kubectl -n istio-system delete service/istio-galley deployment.apps/istio-galley
kubectl delete validatingwebhookconfiguration.admissionregistration.k8s.io/istio-galley

9.使用 istioctl upgrade 从 1.4 升级到 1.5 并准备好 IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

10.升级后使用以下命令

kubectl -n istio-system delete deployment istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetry
kubectl -n istio-system delete service istio-citadel istio-policy istio-sidecar-injector istio-telemetry
kubectl -n istio-system delete horizontalpodautoscaler.autoscaling/istio-pilot horizontalpodautoscaler.autoscaling/istio-telemetry
kubectl -n istio-system delete pdb istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetry
kubectl -n istio-system delete deployment istiocoredns
kubectl -n istio-system delete service istiocoredns

11.检查是否一切正常。

kubectl get pod -n istio-system
kubectl get svc -n istio-system
istioctl version

12.我已经部署了一个 bookinfo 应用来检查一切是否正常。

kubectl label namespace default istio-injection=enabled
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

13.结果

curl -v xx.xx.xxx.xxx/productpage | grep HTTP
HTTP/1.1 200 OK


istioctl version
client version: 1.5.0
control plane version: 1.5.0
data plane version: 1.5.0 (8 proxies)

希望你觉得这很有用。如果您有任何问题,请告诉我。

【讨论】:

  • 但是如何将 istio 从版本 1.7.x 升级到 1.8x。如何在不丢失任何用于生产就绪设置的配置的情况下,对现有 istio 进行与新升级相同的设置,而不会出现任何损坏或最少的中断。当前安装使用 istioctl install --set profile -f /istio/overlay.yml
猜你喜欢
  • 2011-06-25
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
相关资源
最近更新 更多