MicroK8s及KubeFlow安装文档
安装简单的k8s大约有三种思路:minikube,microk8s,kubeadm。minikube 虽然是官方出品,但主要还是基于虚拟机做的设计。在 Linux 生产环境下,microk8s 可能是一个更合适的选择,它的主要组件是基于二进制包启动。
microk8s 基于 snap 进行安装,ubuntu 16.04 及之后的版本都已经预装了 snap,如果是其他发行版的 Linux 需要先安装 snap。
一,SNAP安装
Snap是Canonical推出的一种新的软件打包格式,彻底解决linux依赖性的问题,Snap 软件包拥有更加稳定和安全的特性。
官网URL:https://docs.snapcraft.io/installing-snap-on-centos
# 安装EPEL sudo yum install epel-release # 安装snapd sudo yum install snapd # 添加snap,启动通信socket sudo systemctl enable --now snapd.socket # 创建软链 sudo ln -s /var/lib/snapd/snap /snap |
二,Snap常用命令
# 列出已经安装的snap包 sudo snap list # 搜索要安装的snap包 sudo snap find <text to search> # 搜索要安装的snap包 sudo snap install <snap name> # 删除一个snap包 sudo snap remove <snap name> |
三,MicroK8s安装
通过 microk8s 可以非常快速的搭建起一个 Kubernetes 单机环境,安装极其非常方便,通过 snap 命令一键安装,可用测试,快速原型及CI/CD。
官方URL:https://microk8s.io/
1,单独安装microk8s
# 安装1.14稳定版microk8s sudo snap install microk8s --classic --channel=1.14/stable # 启用microk8s的DNS,存储和面板功能 sudo microk8s.enable dns dashboard storage # 启动microk8s sudo microk8s.start # 查看microk8s状态 sudo microk8s.status # 停止microk8s服务 sudo smicrok8s.stop # 查看集群信息 sudo microk8s.kubectl cluster-info # 查看集群节点 sudo microk8s.kubectl get nodes # 命令别名 sudo snap alias microk8s.kubectl kubectl |
2,脚本安装microk8s
由于本次安装microk8s主要是为了和kubeflow进行集成使用,所以使用更为方便的脚本安装。
Kubeflow推荐的脚本:https://github.com/canonical-labs/kubernetes-tools
安装脚本:
sudo kubernetes-tools/setup-microk8s.sh |
安装过程如下图示:
***注意,由于此脚本安装dashborad时,使用了token,登陆时会增加操作步骤。为更方便测试,需要对脚本内容进行裁剪,禁用microm8s的dashboard功能(脚本里去除dashaboard或是microk8s命令禁用)。
dashboard的deployment及service使用了我自己提供的如下方案。
apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kubernetes-dashboard roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kubernetes-dashboard namespace: kube-system --- kind: Deployment apiVersion: apps/v1beta2 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: replicas: 1 revisionHistoryLimit: 3 selector: matchLabels: k8s-app: kubernetes-dashboard template: metadata: labels: k8s-app: kubernetes-dashboard spec: containers: - name: kubernetes-dashboard image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 ports: - containerPort: 9090 protocol: TCP livenessProbe: httpGet: path: / port: 9090 initialDelaySeconds: 25 timeoutSeconds: 30 serviceAccountName: kubernetes-dashboard --- kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: type: NodePort ports: - port: 80 targetPort: 9090 nodePort: 32766 selector: k8s-app: kubernetes-dashboard |
四,Kubeflow安装
Kubeflow是目前基于Kubernetes的主流机器学习解决方案,它抽象了和机器学习相关的PS-Worker模型,实现了一套pipeline的工作流,支持超参数训练和Jupyter notebooks集成等能力。
官网URL:https://www.kubeflow.org/
1,脚本安装kubeflow
本次安装参考url: https://www.kubeflow.org/docs/started/getting-started-multipass/
Kubeflow推荐的脚本:https://github.com/canonical-labs/kubeflow-tools
安装脚本:
sudo kubeflow-tools/install-kubeflow.sh |
安装过程如下所示
2,镜像获取
上图中,有些kubeflow的pod已开始running,但有些pod一直处于ImagePullBackOff状态,这是因为这批镜像都是放在gcr.io域名仓库中,需要特别上网才能访问。
在这种情况下,根据网上的资料,我们以dockerhub为中继,将需要的docker镜像辗转拉取,直至所有镜像成功启动。
3,更新jupyter-web-app镜像
当一切就绪之,如果我们访问kubeflow的notebook服务时,发现还是无法正常使用jupyterhub功能。分析浏览器错误,才发现是一个网页内的jquery库,引用的是googleapis的地址,于是,还需要重新将涉及的layout.html更改之后生成新的镜像。
Dockerfile内容:
FROM gcr.io/kubeflow-images-public/jupyter-web-app:v0.5.0 COPY layout.html /app/kubeflow_jupyter/default/templates/ COPY layout.html /app/kubeflow_jupyter/rok/templates/ |
Layout.html更新后的内容:
<!DOCTYPE html> <html> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Material Design Lite --> <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.blue-pink.min.css"> <script src="https://code.getmdl.io/1.3.0/material.min.js"></script> <!-- UI Specific --> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css"> <link rel="shortcut icon" href="{{ prefix + url_for('static', filename='kubeflow.png') }}"> <link rel="stylesheet" href="{{ prefix + url_for('static', filename='css/main.css') }}"> <!-- Dialogs --> <link rel="stylesheet" href="{{ prefix + url_for('static', filename='css/dialog.css') }}""> <script src="{{ prefix + url_for('static', filename='js/dialog.js') }}"></script> {% if title %} <title>Kubeflow Jupyter - {{ title }}</title> {% else %} <title>Kubeflow Jupyter</title> {% endif %} {% block javascript %} <script type="text/javascript"> var prefix = "{{ prefix }}"; </script> {% endblock %} </head> <body> <div class='parent errors'> <div class="spacer"></div> <div id="error-msgs"></div> <div class="spacer"></div> </div> <div class="page-content"> {% block content %}{% endblock %} </div> </body> </html> |
最终,即可正常使用这一功能了。
MicroK8s及KubeFlow安装文档的更多相关文章
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- Oracle 11g 单实例安装文档
这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...
- linkedin开源的kafka-monitor安装文档
linkedin开源的kafka-monitor安装文档 linkedin 开源的kafka-monitor的安装使用可以参考官方的readme:流程介绍的已经比较清楚,但是还是有一些地方需要修正.让 ...
- _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0
笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...
- oracle database 12c R1 安装文档
INSTALLORACLE DATABASE 12C 完整的安装文档下载地址: http://download.csdn.net/detail/royjj/5665869 OS:ORALCE LINU ...
- HAProxy安装文档
HAProxy安装文档 [toc][TOC] 一.环境说明 系统环境:CentOS Linux release 7.2.1511 (Core) 系统内核:3.10.0-327.el7.x86_64 软 ...
- Oracle 12c RAC 静默安装文档
参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...
- Oracle 12c RAC 安装文档
参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...
- Azkaban使用安装文档
Azkaban使用安装文档 Azkaban简介 Azkaban的是什么 Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程.Az ...
随机推荐
- [LeetCode] 545. Boundary of Binary Tree 二叉树的边界
Given a binary tree, return the values of its boundary in anti-clockwise direction starting from roo ...
- 原生/CM系列网络叹号问题
网络叹号问题: 原因:某墙屏蔽了谷歌,而原生安卓是利用谷歌的服务器来测试网络是否通畅的 解决方案:修改网络测试的服务器地址 方案来源:https://www.noisyfox.io/android-c ...
- uniApp上传图片
项目中用到了上传图片的功能,记录一下.增强记忆. 要上传图片首先就要先选择图片,或者是先拍照,此时先调用的是 chooseImage 接口,此接口可选择拍照也可以从相册中选择. 它有几个参数,具体可以 ...
- C++版本 ORM 访问数据库之ODB 的oracle Demo测试(二)
有上篇文章已经说了odb的环境编译, 现在直接拿来给的例子进行数据库的增删改查操作测试 1. ODB访问oracle数据库_ 插入操作(insert) 直接运行上篇编译好的exe文件会出现如下错误 错 ...
- 用Python搞定九宫格式的朋友圈。内附“马云”朋友圈
PIL(Python Imaging Library)是一个非常强大的Python库,但是它支持Python2.X, 在Python3中则使用的是Pillow库,它是从PIL中fork出来的一个分支. ...
- springcloud(五,多个服务注册中心eureka)
spring cloud (一.服务注册demo_eureka) spring cloud (二.服务注册安全demo_eureka) spring cloud (三.服务提供者demo_provid ...
- lombok的使用以及其中的坑
1.lombok踩坑与思考 https://www.cnblogs.com/heyonggang/p/8638374.html 2.Lombok介绍.使用方法和总结 https://www.cnblo ...
- HTTP之缓存是如何保持副本的新鲜的!
缓存保持副本的新鲜 ========================摘自<HTTP权威指南>================================= 可能不是所有已缓存副本都与服 ...
- ABA问题的产生及解决
什么是ABA问题 在CAS算法中,需要取出内存中某时刻的数据(由用户完成),在下一时刻比较并交换(CPU保证原子操作),这个时间差会导致数据的变化. 1.线程1从内存位置V中取出A2.线程2从内存位置 ...
- 【JVM学习】3.深入解析强引用、软引用、弱引用、幻象引用
来源:公众号:猿人谷 关于强引用.软引用.弱引用.幻象引用的区别,在很多公司的面试题中经常出现,可能有些小伙伴觉得这个知识点比较冷门,但其实大家在开发中经常用到,如new一个对象的时候就是强引用的应用 ...