15分钟在笔记本上搭建 Kubernetes + Istio开发环境
11月13~15日,KubeCon 上海大会召开,云原生是这个秋天最火热的技术。很多同学来问如何上手 Kubernetes和Istio 服务网格开发。本文将帮助你利用Docker CE桌面版,15分钟在笔记本上从零搭建 Kubernetes + Istio开发环境,开启云原生之旅。
说明:本文测试通过环境 Docker CE 18.09 (Kubernetes 1.10.3) 以及 Istio 1.0.4
先决条件,你需要一个 Docker for Mac或者Docker for Windows的安装包,如果没有请下载下载 Docker CE最新版本。由于Kubernetes大量的容器镜像在 gcr.io, 无法在国内保证稳定的访问。我们提供了一些工具脚本,帮助从阿里云镜像服务下载所需镜像
首先,
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop
cd k8s-for-docker-desktop
Docker for Mac 开启 Kubernetes
为 Docker daemon 配置 Docker Hub 的中国官方镜像加速 https://registry.docker-cn.com
可选操作: 为 Kubernetes 配置 CPU 和 内存资源,建议分配 4GB 或更多内存。
预先从阿里云Docker镜像服务下载 Kubernetes 所需要的镜像, 可以通过修改 images.properties
文件加载你自己需要的镜像
./load_images.sh
开启 Kubernetes,并等待 Kubernetes 开始运行
Docker for Windows 开启 Kubernetes
为 Docker daemon 配置 Docker Hub 的中国官方镜像加速 https://registry.docker-cn.com
可选操作: 为 Kubernetes 配置 CPU 和 内存资源,建议分配 4GB 或更多内存。
预先从阿里云Docker镜像服务下载 Kubernetes 所需要的镜像, 可以通过修改 images.properties
文件加载你自己需要的镜像
使用 Bash shell
./load_images.sh
使用 PowerShell
.\load_images.ps1
说明: 如果因为安全策略无法执行 PowerShell 脚本,请在 “以管理员身份运行” 的 PowerShell 中执行 Set-ExecutionPolicy RemoteSigned
命令。
开启 Kubernetes,并等待 Kubernetes 开始运行
配置 Kubernetes
可选操作: 切换Kubernetes运行上下文至 docker-for-desktop
kubectl config use-context docker-for-desktop
验证 Kubernetes 集群状态
kubectl cluster-info
kubectl get nodes
部署 Kubernetes dashboard
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
或
kubectl create -f kubernetes-dashboard.yaml
开启 API Server 访问代理
kubectl proxy
通过如下 URL 访问 Kubernetes dashboard
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default
说明:如果测试 Istio,不需要安装 Ingress,如果需要 Ingress 可以参考 https://github.com/AliyunContainerService/k8s-for-docker-desktop 中 Ingress相关章节
安装 Helm
可以根据文档安装 helm https://github.com/helm/helm/blob/master/docs/install.md
在 Mac OS 上安装
# Use homebrew on Mac
brew install kubernetes-helm
# Install Tiller into your Kubernetes cluster
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.11.0 --skip-refresh
# update charts repo (Optional)
helm repo update
在Windows上安装
# Use Chocolatey on Windows
choco install kubernetes-helm
# Install Tiller into your Kubernetes cluster
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.11.0 --skip-refresh
# update charts repo (Optional)
helm repo update
配置 Istio
可以根据文档安装 Istio https://istio.io/docs/setup/kubernetes/
下载 Istio 1.0.4 并安装 CLI
curl -L https://git.io/getLatestIstio | sh -
cd istio-1.0.4/
export PATH=$PWD/bin:$PATH
在Windows上,您可以手工下载Istio安装包,或者把getLatestIstio.ps1
拷贝到你希望下载 Istio 的目录,并执行 - 说明:根据社区提供的安装脚本修改而来
.\getLatestIstio.ps1
通过 Helm chart 安装 Istio
helm install install/kubernetes/helm/istio --name istio --namespace istio-system
查看 istio 发布状态
helm status istio
为 default
名空间开启自动 sidecar 注入
kubectl label namespace default istio-injection=enabled
kubectl get namespace -L istio-injection
安装 Book Info 示例
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
确认示例应用在运行中
export GATEWAY_URL=localhost:80
curl -o /dev/null -s -w "%{http_code}\n" http://${GATEWAY_URL}/productpage
可以通过浏览器访问
http://localhost/productpage
说明:如果当前80端口已经被占用或保留,我们可以编辑 install/kubernetes/helm/istio/values.yaml
文件中
Gateway 端口进行调整,比如将 80 端口替换为 8888 端口
## You can add custom gateway ports
- port: 8888 # Changed from 80
targetPort: 80
name: http2
nodePort: 31380
然后执行如下命令并生效
kubectl delete service istio-ingressgateway -n istio-system
helm upgrade istio install/kubernetes/helm/istio
学习 Istio
大家参照 Istio 开始学习吧, https://istio.io/zh/docs/examples/bookinfo/
删除实例应用
samples/bookinfo/platform/kube/cleanup.sh
卸载 Istio
helm del --purge istio
kubectl delete -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system
总结
阿里云Kubernetes服务 (ACK) 已经对 Istio提供了支持,并将Istio和阿里云进行了深度整合,比如可以通过阿里云日志服务支持基于Jaeger的全链路监控,基于云监控提升Istio可观测性和报警能力等。后续也将进一步简化Kubernetes和Istio的开发者体验,让大家方便地把 Kubernetes + Istio 应用无缝迁移上云。
原文链接
本文为云栖社区原创内容,未经允许不得转载。
15分钟在笔记本上搭建 Kubernetes + Istio开发环境的更多相关文章
- 转-在Mac OS上搭建Python的开发环境
在Mac OS上搭建Python的开发环境 本文转载自:http://www.jb51.net/article/76931.htm 一. 安装python mac系统其实自带了一个python的执 ...
- 在MAC上搭建python数据分析开发环境
最近工作转型到数据开发领域,想在本地搭建一个数据开发环境.自己有三年python开发经验,马上想到使用numpy.scipy.sklearn.pandas搭建一套数据开发环境. ubuntu的环境,百 ...
- 在windows上搭建C语言开发环境——借助eclipse和MinGW
0. 前言 [本文目的] 近期在电脑上又一次安装了MinGW,发现MinGW的安装方法和之前的方法稍有差别,全部再写了一篇博文记录一下具体的安装方法. [本文主要内容] ...
- 1、在MAC上搭建React Native开发环境
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- CentOS上搭建java WEB开发环境Tomcat+MySQL+JDK
对于初学者来说,想在linux系统上搭建一个java web服务器,不知道什么方案可行, 这篇文章主要是告诉这些基础和概念相对薄弱的同学,这样搭建是可行的,大体上没问 题的,出问题也是细节问题.所以此 ...
- 在Mac上搭建React Native开发环境
概述 前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境. 配置mac开发环境 基本环境安装 1.先安装Homebrew:用于安装Node ...
- 在Ubuntu上搭建kindle gtk开发环境
某个角度上说,kindle很类似android,同样的Linux内核,同样的Java用户层.不过kindle更注重简单.节能.稳定.Amazon一向认为,功能过多会分散人们阅读时候的注意力. Kind ...
- [转] 在Mac上搭建React Native开发环境
原文链接: http://blog.csdn.net/xiangzhihong8/article/details/53914336 概述 前面我们介绍过在window环境下开发React Native ...
- 在Windows7上搭建Cocos2d-x win32开发环境
很多其它相关内容请查看本人博客:http://www.bokeyi.com/ll/category/cocos2d-x/ 建议:为了避免安全相关的问题,请以管理员权限执行全部的操作,当执行命令的时候, ...
随机推荐
- NOIP2000普及组 T1计算器的改良
主要考字符串处理,把等式从等号中间断开,左边的区域为left,右边的区域为right. 开四个数组分别用来存储区域left和right中未知数的系数,区域left和right中的常数 先处理区域lef ...
- tf.contrib.slim.data数据加载 综述
TF-Slim为了方便加载各种数据类型(如TFRocords或者文本文件)的数据,创建了这个库. Dataset 这里的数据库与通常意义下数据库是不同的,这里数据库是python一个类,它负责将原始数 ...
- 神奇高效的Linux命令行
一.为什么要学linux命令 Linux是由命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的.Linux命令有许多强大的功能:从简单的磁盘操作.文件存取, ...
- appium定位
一.链接基本信息 二.在appium界面中 三,定位 三.通过ui automator viewer抓取手机页面元素,点击红框按钮会抓取当前手机界面app全部元素;路径在sdk>tools下面的 ...
- js方法实现--上传文件功能
function createUploadForm(fileElementId, data, curFileList) { var id = new Date().getTime(); var for ...
- Super Jumping! Jumping! Jumping! ---HDU - 1087
Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. May ...
- 1、了解计算机与操作系统发展阶段 2、选择一个具体的操作系统,结合计算机与操作系统的发展阶段,详细了解其渊源、发展过程、趋势,整理成简洁美观的图文博客发布。 Windows Mac os x Unix Linux Android 等。
1.了解计算机与操作系统发展阶段 操作系统并不是与计算机硬件一起诞生的,它是在人们使用计算机的过程中,为了满足两大需求:提高资源利用率.增强计算机系统性能,伴随着计算机技术本身及其应用的日益发展,而逐 ...
- ubuntu安装输入法
sudo apt-get install ibus-pinyin sudo ibus-setup
- linux下SS 网络命令详解
ss命令用来显示处于活动状态的套接字信息. ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容. 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比n ...
- libguestfs手册(2):guestfish command
添加一个drive:guestfs_add_drive_opts add-drive filename [readonly:true|false] [format:..] [iface:..] [na ...