istio 安装与bookinfo示例运行(转)

目的

本文旨在帮助想了解istio安装和运行bookinfo示例的同学快速入门

前置准备

安装k8s和helm

1、k8s安装

修改主机名
1
2
hostnamectl  set - hostname  k8s-master
hostnamectl  set - hostname  k8s-node
配置阿里云yum源环境和gpg校验配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker-ce
/etc/yum .repos.d目录下
wget https: //mirrors .aliyun.com /docker-ce/linux/centos/docker-ce .repo
 
kubernetes
/etc/yum .repos.d目录下
 
vim kubenetes.repo
 
[kubernetes]
name=Kubernetes Repo
baseurl=https: //mirrors .aliyun.com /kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https: //mirrors .aliyun.com /kubernetes/yum/doc/yum-key .gpg
enabled=1 

gpg校验配置

1
2
3
4
wget https: //mirrors .aliyun.com /kubernetes/yum/doc/rpm-package-key .gpg
wget https: //mirrors .aliyun.com /kubernetes/yum/doc/yum-key .gpg
rpm -- import  rpm-package-key.gpg
rpm -- import  yum-key.gpg
根据官方示例安装kubeadm(安装1.15.4版本k8s)
1
yum  install  -y docker-ce kubelet-1.15.4 kubeadm-1.15.4 kubectl-1.15.4

按照官方示例设置环境参数

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

kubeadm init运行使用阿里云镜像

1
2
3
kubeadm init \
--image-repository registry.aliyuncs.com /google_containers  \
--pod-network-cidr=10.244.0.0 /16

其中10.244.0.0/16是 flannel网络必加参数

2、helm安装

1.下载安装
1
2
3
4
5
wget https: //get .helm.sh /helm-v2 .14.3-linux-amd64. tar .gz
tar  -zxf helm-v2.14.3-linux-amd64. tar .gz
cd  linux-amd64
chmod  +x helm
mv  helm  /usr/local/bin
2.确保您拥有一个为Tiller定义了集群管理员角色的服务帐户
1
kubectl apply -f https: //raw .githubusercontent.com /istio/istio/release-1 .3 /install/kubernetes/helm/helm-service-account .yaml
3.使用阿里镜像安装tiller,同时将repo 改为微软提供的helm repo
1
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com /google_containers/tiller :v2.14.3 --stable-repo-url http: //mirror .azure.cn /kubernetes/charts/  --service-account=tiller

Istio安装

1.下载安装包

参考地址:https://istio.io/docs/setup/#downloading-the-release

1
2
3
curl -L https: //git .io /getLatestIstio  | ISTIO_VERSION=1.3.1 sh -
cd  istio-1.3.1
export  PATH=$PWD /bin :$PATH

2.通过helm install与Helm和Tiller一起安装istio

参考地址: https://istio.io/docs/setup/install/helm/

使用kubectl apply安装所有Istio自定义资源定义(CRD),并等待几秒钟以在Kubernetes API服务器中提交CRD:

1
helm  install  install /kubernetes/helm/istio-init  --name istio-init --namespace istio-system -- set  gateways.istio-ingressgateway. type =NodePort

使用以下命令验证是否已将所有23个Istio CRD都提交给Kubernetes api服务器:

1
kubectl get crds |  grep  'istio.io'  wc  -l

选择一个配置文件,然后安装与您选择的文件相对应的istio图表:

1
2
3
helm  install  install /kubernetes/helm/istio  --name istio --namespace istio-system \
--values  install /kubernetes/helm/istio/values-istio-demo .yaml \
-- set  gateways.istio-ingressgateway. type =NodePort

3.运行bookinfo示例

参考地址: https://istio.io/docs/examples/bookinfo/

1
2
3
4
5
6
7
8
kubectl label namespace default istio-injection=enabled
kubectl apply -f samples /bookinfo/platform/kube/bookinfo .yaml
kubectl get pods
kubectl apply -f samples /bookinfo/networking/bookinfo-gateway .yaml
export  INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath= '{.spec.ports[?(@.name=="http2")].nodePort}' )
export  SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath= '{.spec.ports[?(@.name=="https")].nodePort}' )
export  INGRESS_HOST=<k8s-node ip>
export  GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

浏览器访问http://${GATEWAY_URL}/productpage

更多示例参考:https://istio.io/docs/tasks/

猜你喜欢

转载自www.cnblogs.com/wangbin/p/12187572.html