istio 0.8 安装步骤
1.安装k8s环境
参考:http://sealyun.com/pro/products/master,salve两台机器。
kubernetes 1.11.0离线安装包 官方网站:https://sealyun.com/pro/products/ 三步安装: 1. master上: cd shell && sh init.sh && sh master.sh 2. node上:cd shell && sh init.sh 3. 在node上执行master输出的join命令即可 2.安装istio安装步骤
安装Istio的核心组件。选择以下四个互斥选项之一进行快速安装。但是,我们建议您使用Helm Chart安装Istio的生产安装,以利用所有选项来根据您的需要配置和自定义Istio。安装Istio而不启用sidecars之间的相互TLS身份验证。为具有现有应用程序的群集,具有Istio sidecar的服务需要能够与其他非Istio Kubernetes服务进行通信的应用程序以及使用活动性和就绪性探测,无头服务或StatefulSets的应用程序选择此选项。
$ kubectl apply -f install/kubernetes/istio-demo.yaml默认情况下,安装Istio并在sidecars之间强制执行相互TLS身份验证。仅在新的kubernetes集群上使用此选项,其中新部署的工作负载保证安装了Istio sidecars。
$ kubectl apply -f install/kubernetes/istio-demo-auth.yaml 使用Helm渲染Kubernetes清单并使用kubectl进行部署。使用Helm和Tiller管理Istio部署。
2.1 kubectl apply -f install/kubernetes/istio-demo.yaml
2.2 helm 安装,官方推荐
安装好helm. 参考:https://my.oschina.net/xiaominmin/blog/1853351/root/helm/helm template /root/istio-0.8.0/install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio-0.8.yaml
kubectl create -f $HOME/istio-0.8.yaml
kubectl delete -f $HOME/istio-0.8.yaml2.3 修改yaml文件。ingressgateway,ingress 。
type: LoadBalancer 改为 type: NodePort 查看istio POD: kubectl get pod -o wide -n istio-system[root@es-cluster-16-203 istio-0.8.0]# kubectl get pod -o wide -n istio-system
NAME READY STATUS RESTARTS AGE IP NODE istio-citadel-6f875b9fdb-klmjt 1/1 Running 0 46m 192.168.15.225 es-cluster-16-203 istio-cleanup-old-ca-v5phx 0/1 Completed 0 46m 192.168.15.226 es-cluster-16-203 istio-egressgateway-8b98f49f6-5wjvd 1/1 Running 0 46m 192.168.107.2 es-cluster-16-202 istio-ingress-69c65cc9dd-wc8bw 1/1 Running 0 46m 192.168.107.14 es-cluster-16-202 istio-ingressgateway-657d7c54fb-4fcxq 1/1 Running 0 46m 192.168.107.21 es-cluster-16-202 istio-mixer-post-install-9w2jf 0/1 Completed 0 43m 192.168.15.228 es-cluster-16-203 istio-mixer-post-install-fl6c6 0/1 Error 0 45m 192.168.107.15 es-cluster-16-202 istio-pilot-7cfb4cc676-jml8v 2/2 Running 0 46m 192.168.15.227 es-cluster-16-203 istio-policy-7c4448ccf6-fqq69 2/2 Running 0 46m 192.168.107.20 es-cluster-16-202 istio-sidecar-injector-fc9dd55f7-j8v8f 1/1 Running 0 41m 192.168.15.229 es-cluster-16-203 istio-statsd-prom-bridge-f8fcf6c74-lg5t2 1/1 Running 0 46m 192.168.107.5 es-cluster-16-202 istio-telemetry-785947f8c8-tmjq5 2/2 Running 0 46m 192.168.107.22 es-cluster-16-202 prometheus-9c994b8db-wxczn 1/1 Running 0 46m 192.168.107.24 es-cluster-16-202 [root@es-cluster-16-203 istio-0.8.0]# kubectl get svc -o wide -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR istio-citadel ClusterIP 10.101.204.125 <none> 8060/TCP,9093/TCP 49m istio=citadel istio-egressgateway ClusterIP 10.107.172.244 <none> 80/TCP,443/TCP 49m istio=egressgateway istio-ingress NodePort 10.107.239.136 <none> 80:32011/TCP,443:30460/TCP 49m istio=ingress istio-ingressgateway NodePort 10.101.39.89 <none> 80:31380/TCP,443:31390/TCP,31400:31400/TCP 49m istio=ingressgateway istio-pilot ClusterIP 10.105.107.7 <none> 15003/TCP,15005/TCP,15007/TCP,15010/TCP,15011/TCP,8080/TCP,9093/TCP 49m istio=pilot istio-policy ClusterIP 10.104.94.43 <none> 9091/TCP,15004/TCP,9093/TCP 49m istio-mixer-type=policy,istio=mixer istio-sidecar-injector ClusterIP 10.109.187.212 <none> 443/TCP 49m istio=sidecar-injector istio-statsd-prom-bridge ClusterIP 10.104.194.142 <none> 9102/TCP,9125/UDP 49m istio=statsd-prom-bridge istio-telemetry ClusterIP 10.111.217.104 <none> 9091/TCP,15004/TCP,9093/TCP,42422/TCP 49m istio-mixer-type=telemetry,istio=mixer prometheus ClusterIP 10.104.23.96 <none> 9090/TCP 49m app=prometheus 问题: 有时候有几个pod总是起不来,有时候又是好的。反复执行命令。可能不太稳定。 kubectl create -f $HOME/istio-0.8.yaml kubectl delete -f $HOME/istio-0.8.yaml3. Bookinfo Sample Application 案例
3.1:
如果您使用手动边车注入,请使用以下命令:
$ kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/kube/bookinfo.yaml)如果您正在使用启用了自动边车注入的群集,只需使用即可部署服务kubectl
$ kubectl apply -f samples/bookinfo/kube/bookinfo.yaml3.2 注入bookinfo-gateway
$ istioctl create -f samples/bookinfo/routing/bookinfo-gateway.yaml4.见证奇迹的时刻
http://k8sMasterIp:31380/productpage=========================相关命令=================================
kubectl create namespace istio-system kubectl delete -f install/kubernetes/istio-demo.yaml kubectl apply -f install/kubernetes/istio-demo.yamlkubectl get pods -n istio-system
kubectl get pods --all-namespaces -o wide
kubectl get svc -n istio-system kubectl get svc --all-namespaces -o wide kubectl describe pod grafana-6f6dff9986-vxqj4 -n istio-system type: LoadBalancer type: NodePort ----------helm------------- kubectl create namespace istio-system/root/helm/helm template /root/istio-1.0/install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml
/root/helm/helm template /root/istio-0.8.0/install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio-0.8.yaml
kubectl create -f $HOME/istio-0.8.yamlkubectl delete -f $HOME/istio-0.8.yaml
kubectl create -f $HOME/istio.yaml
kubectl delete -f $HOME/istio.yaml ------------bookinfo--------------- kubectl apply -f <(bin/istioctl kube-inject -f samples/bookinfo/kube/bookinfo.yaml)bin/istioctl create -f samples/bookinfo/routing/bookinfo-gateway.yaml
bin/istioctl get gateway
--------------url----test------------------------
http://192.168.16.203:31380/productpage