istio搭建testbed 补充(指令汇集)
istio搭建testbed 补充(指令汇集)
minikube config set vm-driver kvm2
minikube start --memory=32768 --cpus=16 --disk-size=200000mb --kubernetes-version=v1.18.10 --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --driver=docker
# 使用docker比virtualbox要好得多!!!
# kvm 也不错istioctl install --set profile=demo -y
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
kubectl get pods -o wide
kubectl apply -f samples/addons/prome_node_exporter.yaml
kubectl apply -f samples/addons/prometheus.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=$(minikube ip)
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
minikube tunnel # 在一个不用的窗口里执行,会阻塞
kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml# Prometheus 端口转发
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 &
reviews v2和reviews v3总是在运行一段时间后无法处理请求出现503, 导致ratings无法被请求到,应该删除pod重新部署:
kubectl delete -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v2
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v2kubectl delete -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v3
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v3
然后试着为deployment提供自动扩展
kubectl get deployments # 获取deployments名字
kubectl autoscale deployment ratings-v1 --min=1 --max=5
kubectl autoscale deployment details-v1 --min=1 --max=5
kubectl autoscale deployment reviews-v2 --min=1 --max=5
kubectl autoscale deployment reviews-v3 --min=1 --max=5
# 还可以指定其他的:http://docs.kubernetes.org.cn/486.html
# 如--cpu-percent等, 不指定则使用自动伸缩autoscale
# 启动和删除某个版本:
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v3
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v2kubectl delete -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v3
kubectl delete -f samples/bookinfo/platform/kube/bookinfo.yaml -l app=reviews,version=v2
spec:hosts:- reviewshttp:- match:- uri:regex: ".*reviews.*"fault:delay:percentage:value: 100.0fixedDelay: 2s // 时延太长会被中止, 起不到作用route:- destination:host: reviewssubset: v2- route:- destination:host: reviewssubset: v2