aws eks 部署jupyterhub执行kubectl

news2024/12/24 20:22:50

资料

  • https://aws.amazon.com/cn/blogs/china/teach-you-how-to-handle-kubeflow-on-eks-2/
  • https://hub.docker.com/r/jupyterhub/singleuser

在部署kubeflow的过程中意识到在jupyter中能够运行外部指令,如果在其中集成一个kubectl,就可以实现命令的重用,并且能够使用jupyter的功能来生成文档。

在docker hub搜索jupyter可以找到很多images,这里使用jupyterhub/singleuser

在docker上查看image的基本信息:

  • 通过环境变量指定用户
  • 入口为tini
  • 暴露端口默认为8888

查看image基本信息

在docker上运行测试,默认用户为jovyan,需要修改为root

docker run -d -p 8888:8888 --name mynote -u root jupyterhub/singleuser

查看log并使用token登录即可

docker logs mynote

我们只需要在容器运行之后安装kubectl即可, 但是要确保pod具有权限访问集群中的资源

部署jupyterhub

创建所需的clusterrole,或者使用集群的cluster-admin。自定义角色可以按需控制权限

注意:需要在kube-system中部署,否则会报错没有权限(很奇怪)

apiVersion: v1
kind: ServiceAccount
metadata:
  name: mynote-sa
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: mynote-clusterrole
rules:
- apiGroups:
  - "*"
  resources:
  - "*"
  verbs: 
  - "*"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: mynote-clusterrolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: mynote-sa
  namespace: kube-system

创建deployment,需要注意:在args中开启root运行,["start-notebook.sh","--allow-root"]

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mynote
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: jupyter
  replicas: 1
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      serviceAccountName: mynote-sa
      containers:
      - name: jupyter
        env:
        - name: NB_USER
          value: root
        - name: NB_UID
          value: "0"
        - name: NB_GID
          value: "0"
        securityContext:
          runAsUser: 0
        args: ["start-notebook.sh","--allow-root"]
        image: jupyterhub/singleuser
        imagePullPolicy: IfNotPresent

暴露服务,方便起见,使用NodePort访问

kind: Service
apiVersion: v1
metadata:
  name: mynote
  namespace: kube-system
spec:
  selector:
    app: jupyter
  ports:
  - port: 8888
    targetPort: 8888
  type: NodePort

在pod上手动安装kubectl,也可以自己封装image简化这步

#!/bin/bash
set -x
wget https://s3.cn-north-1.amazonaws.com.cn/amazon-eks/1.23.7/2022-06-29/bin/linux/amd64/kubectl
chmod +x kubectl
mv kubectl /usr/bin

部署完成后,同样查看log日志找到token 52fd2867b168fc63f252f5e2731f41258ce8bbce258d2063

mynote-659948574c-cn4bq     To access the server, open this file in a browser:                      mynote-659948574c-cn4bq         file:///root/.local/share/jupyter/runtime/jpserver-18-open.html mynote-659948574c-cn4bq     Or copy and paste one of these URLs:                                       mynote-659948574c-cn4bq         http://mynote-659948574c-cn4bq:8888/labtoken=52fd2867b168fc63f252f5e2731f41258ce8bbce258d2063
mynote-659948574c-cn4bq      or http://127.0.0.1:8888/lab?token=52fd2867b168fc63f252f5e2731f41258ce8bbce258d2063             

之后使用该token登录,创建notebook,也可以直接在此运行shell

在这里插入图片描述

执行测试命令

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/21079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PowerQuery】Excel 自动刷新PowerQuery连接

Excel集成的PowerQuery提供了数据的手动刷新功能之外,也提供了数据的自动刷新功能。需要注意的是,PowerQuery提供的自动刷新功能是针对连接的,也就是说在PowerQuery自动刷新功能不是全局刷新功能,而是针对连接本身提供。接下来我们来看一下如何实现PowerQuery连接的自动刷新…

封装vue插件并发布到npm详细步骤

前言 平常使用Vue开发时,一个项目中多个地方需要用到的相同组件通常我们会封装为一个公共组件,但是如果项目不同我们也需要这个组件,那就需要复制一份公共组件代码到新项目,一个还好,如果是多个组件,这样就…

Design Compiler工具学习笔记(2)

目录 引言 知识储备 设计 objects 库 objects 命令 对象和属性 实际操作 all_* all_inputs all_outputs all_registers 其他 remove_from_collection list 数组 查看环境变量 设置/取消环境变量 引言 本篇继续学习 DC的基本使用。本篇主要学习 design 和 libr…

spring authorization server 0.3.1 - 默认示例

spring authorization server 0.3.1 - 默认oidc开始1、default-authorizationserver项目1.1、AuthorizationServerConfig.java1.2、DefaultSecurityConfig.java1.3、Jwks.java1.4、KeyGeneratorUtils.java1.5、DefaultAuthorizationServer.java1.6、application.yml2、client项…

使用poi操作excel详解

使用poi操作excel详解1、POI工具介绍2、POI可操作的文件类型3、POI所需依赖4、xls和xlsx的区别5、POI Excel 写 03(xls)和07(xlsx)版本方式6、HSSF和XSSF写大文件的区别6.1、使用HSSF写大文件6.2、使用XSSF写大文件6.3、使用SXSS写大文件1、POI工具介绍 1.1、POI 是用Java编写…

为什么进程切换比线程切换代价大,效率低?【TLB:页表缓存/快表】

参考: 计组复习:cache,虚拟内存,页表与TLB小林coding - 为什么要有虚拟内存? 一、为什么进程切换比线程切换代价大,效率更低? 首先,先给出标题的答案(关键在于进程切换…

CleanMyMac X2023最新版安装图文详解

对于刚刚入手苹果Mac设备的用户来说,什么软件好用、怎样设置能够获得最佳的使用体验等这些问题都需要一步一步摸索,但其实,从懵懂到熟练使用OS X系统的过程是非常有趣的。日前,有网友分享了自己认为在OS X系统下非常好用的软件&am…

免费查题接口系统调用

免费查题接口系统调用 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点…

Spring——Bean注入几种方式(放入容器)

Bean注入几种方式1.XML方式注入set方式注入构造方法注入2.注解方式注入ComponentComponentScanConfigurationBeanComponentScanImport3.实现ImportBeanDefinitionRegistrar接口4.实现FactoryBean5.实现BeanDefinitionRegistryPostProcessor1.XML方式注入 在现在这个Springboot…

jsp课程资源网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 课程资源网站系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用…

怎么用docker将项目打包成镜像并导出给别人适用 (dockerfile)

前提 你得安装docker,没有安装的可以看看这篇文章 编写dockerfile 这个位置最好和我一样,不然后面打包成镜像可能出问题(找不到jar包) FROM openjdk:8-jdk-slim MAINTAINER JacksonNing COPY /target/iec104-1.0.0-SNAPSHOT.j…

这次把怎么做好一个PPT讲清-演讲篇

《商务演讲与汇报》 一、目标:演讲必须有清晰的目标 演讲:影响他人发生积极的**“改变”** 注意,目标就要设定的影响听众在听完你的演讲后发生积极的改变; 例:5月初向领导做月度工作汇报→→让领导在5月第一周例会…

QGradient(渐变填充)

QGradient(渐变填充) QGradient和QBrush一起使用来指定渐变填充。 Qt支持的填充: 线性渐变(linear gradient),在起点和终点之间插值颜色辐射渐变(radial gradient),在焦点和围绕它的圆的端点之…

2019上半年-2019下半年软件设计师上午题错题总结

2019上半年 30.以下关于极限编程(XP)的最佳实践的叙述中,不正确的是(C )。 A.只处理当前的需求,使设计保持简单 B.编写完程序之后编写测试代码 C.可以按日甚至按小时为客户提供可运行的版本 D.系统最…

【附源码】Python计算机毕业设计水库洪水预报调度系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

linux进阶-构建deb软件安装包

Linux软件包的组成:源码包和二进制包。 文件类型保存目录普通程序/usr/binroot权限程序/usr/sbin程序配置文件/etc日志文件/var/log文档文件/usr/share/doc 源码包优点:开源免费、自由裁剪、修改源代码。 源码包缺点:安装步骤繁琐、编译时间…

【信号处理】卡尔曼滤波(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

区块链解决方案-最新全套文件

区块链解决方案-最新全套文件一、建设背景区块链的五大场景1、合同存证2、产品防伪溯源3、供应链金融4、住房租赁5、贸易金融业务二、建设架构三、建设方案四、获取 - 区块链全套最新解决方案合集一、建设背景 区块链的五大场景 1、合同存证 传统的合同存证存在着被篡改、删…

【AcWing19】【LeetCode】DFS - 46/47/39/77/216/17

文章目录代码随想录在B站的视频讲得比AcWing好模板题1:排列数字模板题2:n皇后方法一方法二LeetCode 46. 全排列LeetCode 47. 全排列 II (重复元素)LeetCode 39. 组合总和LeetCode 77. 组合LeetCode 216. 组合总和 IIILeetCode 17.…

黑马点评--分布式锁

黑马点评–分布式锁 基本原理与不同实现方式对比: 什么是分布式锁: ​ 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心是实现多进程之间互斥,而满足这一点的方式有很多,常见的有三种…