使用 Helm Chart 部署及卸载 istio
部署 istio
1.添加 istio 官方的 helm 仓库
helm repo add istio https://storage.googleapis.com/istio-release/releases/1.3.3/charts/
2.是否添加成功
helm search repo istio
NAME CHART VERSION APP VERSION DESCRIPTION
istio/istio 1.3.3 1.3.3 Helm chart for all istio components
istio/istio-cni 1.3.3 1.3.3 Helm chart for istio-cni components
istio/istio-init 1.3.3 1.3.3 Helm chart to initialize Istio CRDs
3.创建 istio-system 命名空间
kubectl create ns istio-system
4.创建 istio 所需的 crd 文件
helm install istio-init istio/istio-init -n istio-system
5.检查 CRD 文件是否创建完成,输出为23
kubectl get crds | grep 'istio.io' | wc -l
23
6.部署 istio
helm install istio istio/istio -n istio-system
NAME: istio
LAST DEPLOYED: Thu Oct 24 12:05:06 2019
NAMESPACE: istio-system
STATUS: deployed
REVISION: 1
NOTES:
Thank you for installing Istio.Your release is named Istio.
To get started running application with Istio, execute the following steps:
- Label namespace that application object will be deployed to by the following command (take default namespace as an example)
kubectl label namespace default istio-injection=enabled
kubectl get namespace -L istio-injection
- Deploy your applications
$ kubectl apply -f .yaml
For more information on running Istio, visit:
https://istio.io/
卸载 istio
1.卸载 istio
helm -n istio-system uninstall istio
2.删除 istio crd 文件
helm -n istio-system uninstall istio-init
kubectl delete crd `kubectl get crd | grep istio| awk '{print $1}'`
一键部署及卸载 istio 的脚本
部署脚本
#!/bin/bash
# Add istio official repo
add_repo(){
VERSION=$1
REPO="https://storage.googleapis.com/istio-release/releases/${VERSION}/charts/"
helm repo add istio $REPO
STATUS_CMD=`echo $?`
CHECK_REPO_CMD=`helm repo list | grep $REPO | wc -l`
echo "$STATUS_CMD"
echo "$CHECK_REPO_CMD"
while [[ $STATUS_CMD != 0 && $CHECK_REPO_CMD -ge 1 ]]
do
sleep 5
helm repo add istio $REPO
STATUS_CMD=`echo $?`
CHECK_REPO_CMD=`helm repo list | grep $REPO | wc -l`
done
}
# Create istio-system namespace
create_namespace() {
NAMESPACE=$1
kubectl create ns ${NAMESPACE}
STATUS_CMD=`echo $?`
while [[ $STATUS_CMD != 0 ]]
do
sleep 5
kubectl create ns ${NAMESPACE}
STATUS_CMD=`echo $?`
done
}
# Create CRD need for istio
create_crd() {
NAMESPACE=$1
helm install istio-init istio/istio-init -n ${NAMESPACE}
CRD_COUNT=`kubectl get crds | grep 'istio.i' | wc -l`
while [[ ${CRD_COUNT} != 23 ]]
do
sleep 5
CRD_COUNT=`kubectl get crds | grep 'istio.io' | wc -l`
done
echo 'Istio crd create successful'
}
# Deploy istio related components
deploy_istio() {
NAMESPACE=$1
VERSION=$2
helm install istio istio/istio -n ${NAMESPACE}
check() {
kubectl -n ${NAMESPACE} get deploy | grep istio | awk '{print "deployment/"$1}' | while read line ;
do
kubectl rollout status $line -n ${NAMESPACE};
done
}
check
echo "Istio is deployed successful"
}
main(){
ISTIO_VERSION="1.3.3"
ISTIO_NAMESPACE="istio-system"
add_repo $ISTIO_VERSION
if [[ `kubectl get ns | grep $ISTIO_NAMESPACE | wc -l ` == 0 && `kubectl get ns $ISTIO_NAMESPACE | grep -v NAME | wc -l` == 0 ]] ;then
create_namespace $ISTIO_NAMESPACE
fi
create_crd $ISTIO_NAMESPACE
deploy_istio $ISTIO_NAMESPACE $ISTIO_VERSION
}
main
卸载脚本
#!/bin/bash
helm -n istio-system uninstall istio
helm -n istio-system uninstall istio-init
kubectl delete crd `kubectl get crd | grep istio | awk '{print $1}'`
kubectl delete ns istio-system
注意:卸载需谨慎,删除了 istio-system 的命名空间
总结
- 点击查看我的Github
- 点击查看我的个人Blog
- 日拱一卒,不期速成
上述步骤使用的是 istio 官方提供的默认配置,如果你想要自定配置,可以阅读 values.yaml 文件后,通过 --set 的方式修改,或者直接修改 chart。
本文由博客一文多发平台 OpenWrite 发布!
使用 Helm Chart 部署及卸载 istio的更多相关文章
- Helm Chart 一键部署 Jenkins
Jenkins Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.目前提供超过1000个插件来支持构建.部署.自动化, 满足任何项目的需要. Jenki ...
- Kubernetes 与 Helm:使用同一个 Chart 部署多个应用
k8s 集群搭建好了,准备将 docker swarm 上的应用都迁移到 k8s 上,但需要一个一个应用写 yaml 配置文件,不仅要编写 deployment.yaml 还要编写 service.y ...
- 【K8S】helm chart多环境部署最佳实践-示例
Chart.yaml apiVersion: v1 appVersion: "1.0" description: A Helm chart for Kubernetes name: ...
- helm 持久化部署ingres
Ingress 是一种 Kubernetes 资源,也是将 Kubernetes 集群内服务暴露到外部的一种方式.本文将讲一讲如何用 Helm 在 Kubernetes 集群中部署 Ingress,并 ...
- 从入门到实践:创作一个自己的 Helm Chart
前言 我们平时在日常生活中会经常在不同的平台上与各种各样的应用打交道,比如从苹果的 App Store 里下载的淘宝.高德.支付宝等应用,或者是在 PC 端安装的 Word.Photoshop.Ste ...
- [转帖]从入门到实践:创作一个自己的 Helm Chart
从入门到实践:创作一个自己的 Helm Chart https://www.cnblogs.com/alisystemsoftware/p/11436469.html 自己已经搭建好了 helm 和t ...
- Cloud-Native! 实战 Helm 3 部署 Traefik 2
介绍 Traefik 是什么? Traefik, The Cloud Native Edge Router Traefik 是一种现代 HTTP 反向代理和负载均衡器,用于轻松部署微服务. 这篇文章对 ...
- k8s的应用包管理工具helm的部署和使用
1.概述 我们一般是在k8s里面部署一些简单的应用,比如用deployment,daemonset,statefuleset的方式来部署应用,但是如果要部署一些复杂的应用,那么整个配置的编写.部署的过 ...
- 使用 chart 部署 skywalking
使用 chart 部署 skywalking 本文主要讲述的是如何使用 Helm Charts 将 SkyWalking 部署到 Kubernetes 集群中,相关文档可以参考skywalking-k ...
随机推荐
- Webpack 打包太慢? 试试 Dllplugin
webpack在build包的时候,有时候会遇到打包时间很长的问题,这里提供了一个解决方案,让打包如丝般顺滑~ 1. 介绍 在用 Webpack 打包的时候,对于一些不经常更新的第三方库,比如 rea ...
- HTML表格列表简介
HTML简介: html列表: ol标签:order list 有序列表. ul标签:unorder list 无序列表. li标签:list item 列表项. style属性: 标签内写css表达 ...
- Layer弹层(父子传值,兄弟传值)
需求:最外面列表界面点修改弹出LayerA界面,再点击LayerA界面中的选择地图坐标按钮弹出LayerB地图界面 这个过程涉及到的: 1:LayerA将坐标传给LayerB,LayerB在地图上显示 ...
- C++基础之适配器
什么是容器适配器? ”适配器是使一种事物的行为类似于另外一种事物行为的一种机制”,适配器对容器进行包装,使其表现出另外一种行为.例如,stack<int, vector<int> & ...
- C++基础之关联容器
关联容器 关联容器和顺序容器的本质区别:关联容器是通过键存取和读取元素.顺序容器通过元素在容器中的位置顺序存储和访问元素.因此,关联容器不提供front.push_front.pop_front.ba ...
- springboot系列之01-产生的背景及其优势
未经允许,不得转载 原作者:字母哥博客 本文完整系列出自:springboot深入浅出系列 一.前置说明 本节大纲 spring boot 诞生的背景 Spring boot 改变了什么 Spring ...
- 命名对象继承1-验证Create*命名对象安全属性的传递
windows核心编程 第5版 48页 下半部写道 进程B调用CreateMutex时,它会向函数传递安全属性信息和第二参数.如果已经存在一个指定名称的对象,这些对象就会被忽略 于是我通过代码来验证这 ...
- java 集成Redis 一主多从
1.测试代码如下: public static void main(String[] args) { Set<String> sentinels = new HashSet<Stri ...
- thymeleaf 设置display样式
使用th:style标签: th:style="'display:' + @{(${value} ? 'none' : 'inline-block')} + ''" 其中value ...
- 【转】ICMP协议
1.ICMP出现的原因 在IP通信中,经常有数据包到达不了对方的情况.原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了.或者,虽然到达了对方,但是由于搞错了端口号 ...