istio-インストール(0.7.1)
5100 ワード
環境:
1. kubernetes 1.9.8
2. istio 0.7.1
一、kubernetes kube-apiserver増加権限配置(M u t a tingAdmissionWebhook,ValidatingAdmissionWebhook):
二、ダウンロード
1.istio-releasesで対応するバージョンをダウンロードするか、次のスクリプトを使用して最新バージョンをダウンロードします.
2.解凍後、目次は以下の通りです.
3.istioctlをPATHに加える
4.ingressのタイプloadbalancer->NodePortの変更(オプション)
kubernetesはバイナリファイルを使用してローカルにインストールするため、loadbalancerはサポートされず、istioがデフォルトでインストールするingressはloadbalancerを使用するため、install/kubernetes/istionを変更する必要がある.yamlでingress部分を定義し、NodePortに変更
5.コアコンポーネントのインストール:
a)sidecar間のTLS双方向認証を有効にしないIstioをインストールする:
b)Istioをインストールし、sidecar間のTLS双方向認証を有効にする:
6.インストールに成功したかどうかを確認します.
a)以下のk 8 sサービスがインストールされていることを確認する:istio-pilot,istio-mixer,istio-ingress.
b)次のkubernetes podが成功したことを確認する:istio-pilot-*、istio-mixer-*、istio-ingress-*、istio-ca-*、istio-sidecar-injector-*(オプション、sidecarの自動注入).
7.アプリケーションの導入:
あなたのアプリケーションはHTTP/1.1またはHTTP/2.0プロトコルでなければなりません.HTTP/1.0 aはサポートされていません.Envoy containersを手動で注入します.
配備されたアプリケーションを表示するには、次の手順に従います.
podはistio−proxyの容器に注入されることがわかる.
b)Envoy containersを自動的に注入し、後で詳しく紹介する.
参照先:
http://istio.doczh.cn/docs/setup/kubernetes/sidecar-injection.html
https://istio.io/docs/setup/kubernetes/sidecar-injection/
注入ポリシー:sidecarを自動的に注入するように構成されていますが、podがある場合は、sidecarを注入したくない場合は、disabled-sidecar注入器がpodにデフォルトで注入されません.podテンプレート定義のannotations sidecarを追加します.istio.io/inject値がtrueの場合、注入機能が有効になります.enabled-sidecarインジェクタはデフォルトでpodに注入されます.podテンプレート定義のannotations sidecarを追加します.istio.io/inject値がfalseの場合、注入機能は禁止されます.
deploymentは次のとおりです.
8.istioコンポーネントを削除するには:
a)sidecar間のTLS双方向認証を有効にしない:
b)sidecar間のTLS双方向認証を有効にする:
参照先:
https://istio.io/docs/setup/kubernetes/quick-start.html自動注入バグ:
https://github.com/istio/istio/issues/7233
https://github.com/istio/old_issues_repo/issues/271
1. kubernetes 1.9.8
2. istio 0.7.1
一、kubernetes kube-apiserver増加権限配置(M u t a tingAdmissionWebhook,ValidatingAdmissionWebhook):
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota
二、ダウンロード
1.istio-releasesで対応するバージョンをダウンロードするか、次のスクリプトを使用して最新バージョンをダウンロードします.
curl -L https://git.io/getLatestIstio | sh -
2.解凍後、目次は以下の通りです.
mac-temp:istio-0.7.1 $ ls -l
total 48
-rw-r--r-- 1 zyh staff 11343 3 31 03:17 LICENSE
-rw-r--r-- 1 zyh staff 5881 3 31 03:17 README.md
drwxr-xr-x 3 zyh staff 96 3 31 03:17 bin #istioctl Envoy sidecar 、 ...
drwxr-xr-x 9 zyh staff 288 3 31 03:17 install #kubernetes yaml
-rw-r--r-- 1 zyh staff 638 3 31 03:17 istio.VERSION
drwxr-xr-x 10 zyh staff 320 3 31 03:17 samples #
drwxr-xr-x 18 zyh staff 576 3 31 03:17 tools
3.istioctlをPATHに加える
export PATH=$PWD/bin:$PATH
4.ingressのタイプloadbalancer->NodePortの変更(オプション)
kubernetesはバイナリファイルを使用してローカルにインストールするため、loadbalancerはサポートされず、istioがデフォルトでインストールするingressはloadbalancerを使用するため、install/kubernetes/istionを変更する必要がある.yamlでingress部分を定義し、NodePortに変更
apiVersion: v1
kind: Service
metadata:
name: istio-ingress
namespace: istio-system
labels:
istio: ingress
spec:
type: NodePort
ports:
- port: 80
nodePort: 80
name: http
- port: 443
nodePort: 443
name: https
selector:
istio: ingress
5.コアコンポーネントのインストール:
a)sidecar間のTLS双方向認証を有効にしないIstioをインストールする:
kubectl apply -f install/kubernetes/istio.yaml
b)Istioをインストールし、sidecar間のTLS双方向認証を有効にする:
kubectl apply -f install/kubernetes/istio-auth.yaml
6.インストールに成功したかどうかを確認します.
a)以下のk 8 sサービスがインストールされていることを確認する:istio-pilot,istio-mixer,istio-ingress.
$ kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingress NodePort 10.254.162.226 80:80/TCP,443:443/TCP 2d
istio-mixer ClusterIP 10.254.95.148 9091/TCP,15004/TCP,9093/TCP,9094/TCP,9102/TCP,9125/UDP,42422/TCP 2d
istio-pilot ClusterIP 10.254.100.129 15003/TCP,15005/TCP,15007/TCP,15010/TCP,8080/TCP,9093/TCP,443/TCP 2d
istio-sidecar-injector ClusterIP 10.254.158.211 443/TCP 1d
b)次のkubernetes podが成功したことを確認する:istio-pilot-*、istio-mixer-*、istio-ingress-*、istio-ca-*、istio-sidecar-injector-*(オプション、sidecarの自動注入).
$ kubectl get po -n istio-system
NAME READY STATUS RESTARTS AGE
istio-ca-86f55cc46f-vlp2d 1/1 Running 3 2d
istio-ingress-5bb556fcbf-wsg5m 1/1 Running 9 22h
istio-mixer-86f5df6997-p9n2r 3/3 Running 9 2d
istio-pilot-67d6ddbdf6-5ghcr 2/2 Running 7 2d
istio-sidecar-injector-5b8c78fd6-mvkdp 1/1 Running 2 1d
7.アプリケーションの導入:
あなたのアプリケーションはHTTP/1.1またはHTTP/2.0プロトコルでなければなりません.HTTP/1.0 aはサポートされていません.Envoy containersを手動で注入します.
kubectl create -f .yaml)
配備されたアプリケーションを表示するには、次の手順に従います.
$ kubectl get deployment nginx -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx 1 1 1 1 22h nginx,istio-proxy nginx:1.7.9,docker.io/istio/proxy:0.7.1 app=nginx
podはistio−proxyの容器に注入されることがわかる.
b)Envoy containersを自動的に注入し、後で詳しく紹介する.
参照先:
http://istio.doczh.cn/docs/setup/kubernetes/sidecar-injection.html
https://istio.io/docs/setup/kubernetes/sidecar-injection/
注入ポリシー:sidecarを自動的に注入するように構成されていますが、podがある場合は、sidecarを注入したくない場合は、disabled-sidecar注入器がpodにデフォルトで注入されません.podテンプレート定義のannotations sidecarを追加します.istio.io/inject値がtrueの場合、注入機能が有効になります.enabled-sidecarインジェクタはデフォルトでpodに注入されます.podテンプレート定義のannotations sidecarを追加します.istio.io/inject値がfalseの場合、注入機能は禁止されます.
deploymentは次のとおりです.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: test-metrics
spec:
replicas: 1
template:
metadata:
labels:
app: echo
annotations:
sidecar.istio.io/inject: "false"
...
8.istioコンポーネントを削除するには:
a)sidecar間のTLS双方向認証を有効にしない:
kubectl delete -f install/kubernetes/istio.yaml
b)sidecar間のTLS双方向認証を有効にする:
kubectl delete -f install/kubernetes/istio-auth.yaml
参照先:
https://istio.io/docs/setup/kubernetes/quick-start.html自動注入バグ:
https://github.com/istio/istio/issues/7233
https://github.com/istio/old_issues_repo/issues/271