《Istio官方文档》Kubernetes快速开始

Kubernetes快速开始

在Kubernetes群集中安装和配置Istio时,可以参考如下快速入门说明。

先决条件

以下说明要求您有权访问启用了RBAC(基于角色的访问控制)的Kubernetes 1.7.3或更新的群集。你还需要安装1.7.3或更新版本。如果您希望启用自动注射支架,您需要打开群集中的Kubernetes alpha功能。

注意:如果您安装了Istio 0.1.x,请在安装新版本之前彻底卸载它(包括启用Istio的所有应用程序窗口的Istio支架)。

  • 安装或升级Kubernetes CLI kubectl以匹配群集支持的版本(1.7或更高版本以支持CRD)。
  • 根据您的Kubernetes提供者:
    • 要在本地安装Istio,请安装最新版本的Minikube(版本0.22.1或更高版本)。
    • Google Kubernetes引擎
      • 检索kubectl的凭证(用要使用的集群的名称以及集群所在的区域替换):
         gcloud container clusters get-credentials <cluster-name> --zone <zone> --project <project-name>
      • 将集群管理员权限授予当前用户(需要管理员权限才能为Istio创建必要的RBAC规则):
        kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
    • IBM云容器服务
      • 检索kubectl的凭证(用要使用的集群的名称替换):
        $(bx cs cluster-config <cluster-name>|grep "export KUBECONFIG")
    • IBM Cloud Private 2.1或更高版本
      • 根据此处的步骤配置kubectl CLI以了解如何访问IBM Cloud Private Cluster。
    • Openshift Origin版本3.7或更高版本
      • 默认情况下,Openshift不允许以UID 0运行容器。为Istio的服务帐户启用使用UID 0的容器以及Prometheus和Grafana插件:
        oc adm policy add-scc-to-user anyuid -z istio-ingress-service-account -n istio-system
        oc adm policy add-scc-to-user anyuid -z istio-grafana-service-account -n istio-system
        oc adm policy add-scc-to-user anyuid -z istio-prometheus-service-account -n istio-system
      • 运行应用程序窗口的服务帐户需要有特权的安全上下文约束而作为支架注入的一部分。
        oc adm policy add-scc-to-user privileged -z default -n <target-namespace>

安装步骤

从0.2版本开始,Istio安装在自己的istio-system命名空间中,可以管理所有其他命名空间的微服务。

a)安装Istio,但是在sidecars之间不启用相互TLS验证。为现有应用程序的集群选择此选项,使用Istio sidecar的服务需要能够与其他非Istio Kubernetes服务以及使用活动性和准备就绪探测器,无头服务或StatefulSets的应用程序通信。

kubectl apply -f install/kubernetes/istio.yaml

或者是

b)安装Istio并启用侧柜之间的相互TLS认证

kubectl apply -f install/kubernetes/istio-auth.yaml

这两个选项都会创建istio-system名称空间以及所需的RBAC权限,并部署Istio-Pilot,Istio-Mixer,Istio-Ingress和Istio-CA(证书颁发机构)。

验证安装

部署您的应用程序

您现在可以部署您自己的应用程序,或像BookInfo一样安装提供的示例应用程序中的一个。注意:应用程序必须使用HTTP / 1.1或HTTP / 2.0协议来处理所有HTTP流量,因为HTTP / 1.0不受支持。

如果您启动了Istio-Initializer,如上所示,您可以直接使用kubectl create。Istio-Initializer会自动将Envoy容器注入到您的应用程序窗口中:

kubectl create -f <your-app-spec>.yaml

如果您没有安装Istio-Initializer,则必须使用istioctl kube-inject在应用程序窗口中手动注入Envoy容器,然后再部署它们:

kubectl create -f <(istioctl kube-inject -f <your-app-spec>.yaml)

卸载

  • 卸载Istio初始化程序:如果您安装了启用初始化程序的Istio,请将其卸载:
    kubectl delete -f install/kubernetes/istio- initializer.yaml
  • 卸载Istio核心组件。对于0.4.0版本,卸载将删除RBAC权限,istio-system命名空间以及其下的所有资源。忽略不存在的资源的错误是安全的,因为它们可能已被分层删除。a)如果您在禁用了相互TLS身份验证的情况下安装了Istio:
    kubectl delete -f install/kubernetes/istio.yaml

    要么

    b)如果您在启用了相互TLS身份验证的情况下安装了Istio:

    kubectl delete -f install/kubernetes/istio-auth.yaml

下一步是什么

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98187.html

(0)
上一篇 2021年8月20日 22:42
下一篇 2021年8月20日 22:43

相关推荐

发表回复

登录后才能评论