摘要: K8S鉴权 访问K8S集群的资源需要过三关:认证、鉴权、准入控制 普通用户若要安全访问集群API Server(6443端口),往往需要证书、 Token或者用户名+密码;如果是访问Pod访问,需要ServiceAccount K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段 都支持插件方式 阅读全文
posted @ 2020-10-22 21:55 SoleMemory 阅读(1221) 评论(0) 推荐(0)
摘要: Volume Kubernetes中的Volume提供了在容器中挂载外部存储的能力 Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可 以使用相应的Volume k8s支持的卷类型 大致可以分类为以下四种,其中比较常用的如 阅读全文
posted @ 2020-10-22 21:52 SoleMemory 阅读(467) 评论(0) 推荐(0)
摘要: secret用途 保存镜像仓库账号信息 保存数字证书(比如https证书) 保存通用的敏感数据,例如用户名密码 加密数据实际还是存放在Etcd中,让Pod的容器以挂载Volume方式访问。 可通过kubectl get secret查看 将证书保存至secret:kubectl create sec 阅读全文
posted @ 2020-10-22 21:43 SoleMemory 阅读(348) 评论(0) 推荐(0)
摘要: Ingress为弥补NodePort不足而生 NodePort存在的缺点 一个端口只能一个服务使用,端口需要提前规划 只支持四层负载均衡 Pod与Ingress的关系 通过service相关联 通过Ingress Controller实现Pod的负载均衡 支持TCP/UDP 4层和HTTP 7层 部 阅读全文
posted @ 2020-10-22 21:41 SoleMemory 阅读(3808) 评论(0) 推荐(0)
摘要: Service存在的意义 如果有好几组pod,前端要怎么正确的找到对应的pod呢? 防止Pod失联(服务发现) 定义一组Pod的访问策略(负载均衡) 通常应用前端都需要访问后端,那么后端同时有好几个Pod IP,前端无法通过某个ip去访问,这个时候就通过LB(负载均衡器)提供一个统一的入口IP,供前 阅读全文
posted @ 2020-10-22 21:37 SoleMemory 阅读(394) 评论(0) 推荐(0)
摘要: POD与controllers的关系 controllers:在集群上管理和运行容器的对象 通过label和seletor相关联 pod通过控制器实现应用的运维,如弹性伸缩,滚动更新等 Controllers的分类 Deployment : 无状态应用部署 StatefulSet : 有状态应用部署 阅读全文
posted @ 2020-10-22 21:30 SoleMemory 阅读(258) 评论(0) 推荐(0)
摘要: pod基本概念 最小部署单元 可以包含多个容器 一个pod中的容器可以共享网络命名空间 pod是短暂的(可能做一次滚动更新,IP就可能发生变化) 适合放在一个pod中的应用 两个应用之间发生文件交互 比如有两个应用需要共享数据,那么如果通过外部存储共享的方式,受到网络之类的影响,性能较差,可以用到p 阅读全文
posted @ 2020-10-22 21:24 SoleMemory 阅读(1417) 评论(0) 推荐(0)
摘要: 使用kubectl命令部署应用 kubectl create deployment 名称 --image=镜像名称或路径 可以通过kubectl create --help查看支持的资源,一般网站、api、微服务都是用deployment部署 后面加上 --dry-run=client可以测试命令是 阅读全文
posted @ 2020-10-22 21:15 SoleMemory 阅读(631) 评论(0) 推荐(0)
摘要: K8S的特性 自我修复: 在节点故障时重新启动失败的容器,替换和重新部署,保证预期的副本数量;杀死健康检查失败的容器,并且在未准备好之前不会处理客户端请求,确保线上服务不中断 弹性伸缩: 使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用程序实例,保证应用业务高峰并发时的高可用性,业务低峰时 阅读全文
posted @ 2020-10-22 21:10 SoleMemory 阅读(296) 评论(0) 推荐(0)
摘要: 一、问题引入 根据镜像启动容器,执行命令如下:docker run --name mycentos -d centos,通过docker ps查看正在运行中容器,缺找不到mycentos容器。再次通过docker ps -a查看发现,mycentos容器已经处于停止状态了。 二、原因 Docker容 阅读全文
posted @ 2020-10-22 21:05 SoleMemory 阅读(10333) 评论(0) 推荐(0)
摘要: 安装 docker-compose apt install docker-compose 启动docker-compose docker-compose up -d 参数: -f 如果没有使用默认的docker-compose名称,用-f来指定新名字 -d 后台执行 up:运行docker-comp 阅读全文
posted @ 2020-10-22 21:03 SoleMemory 阅读(338) 评论(0) 推荐(0)
摘要: 因为官网提供的一些镜像不一定能满足需求,所以可以自己创建镜像,一个dockerfile相当于一个文本文件 创建dockerfile文件 # 一 # 导入基类镜像,如果本地有python镜像,那么就用本地仓库的,如果没有,他会去dockerhub中下载 # 往往一个dockerfile文件中,只有一个 阅读全文
posted @ 2020-10-22 20:59 SoleMemory 阅读(112) 评论(0) 推荐(0)
摘要: 镜像常用命令 查看当前所有的镜像:docker images 参数: -q,查看镜像的id 官方推荐使用docker image ls,这样比较完整 删除镜像: docker image rm 镜像名称或镜像id 或docker rmi 镜像名或镜像id 如果镜像正在运行,那么需要加-f参数 doc 阅读全文
posted @ 2020-10-22 20:57 SoleMemory 阅读(149) 评论(0) 推荐(0)
摘要: docker docker是容器,用来装应用的容器,每个应用都在内核里面进行隔离 每个应用之前的linux内核都是共用的,所以更轻量化 采用go语言开发,C/S架构 docker内的容器如何连接网络呢? 安装完docker后可以ifconfig查看,可以看到自动生成了docker0的数据,那么这个d 阅读全文
posted @ 2020-10-22 20:50 SoleMemory 阅读(121) 评论(0) 推荐(0)
摘要: ORM框架 每个应用下的数据库模型类,需要在models.py来定义 一个数据库模型类相当于一个数据表(table) 数据库模型类必须继承Model或者Model子类 模型类中定义的类属性,一个类属性相当于一个数据表中的一个字段 Objects是用来操作数据库的接口 关系型字段 models.One 阅读全文
posted @ 2020-10-22 20:42 SoleMemory 阅读(137) 评论(0) 推荐(0)
摘要: DRF自带用户模块接口 path('api/', include('rest_framework.urls')) 创建登陆的路径 数据库迁移后可以访问 在pycharm中选择Tools-Run manage.py文件, 输入createsuperuser进行创建用户 在用户模块的url中导入from 阅读全文
posted @ 2020-10-22 20:35 SoleMemory 阅读(264) 评论(0) 推荐(0)
摘要: 创建SimpleRouter路由对象 # router = routers.SimpleRouter() # 使用DefaultRouter,会自动创建根路由页面 router = routers.DefaultRouter() 注册路由 # 第一个参数为路由前缀(支持正则),一般添加为应用名即可 阅读全文
posted @ 2020-10-22 20:31 SoleMemory 阅读(257) 评论(0) 推荐(0)
摘要: 因为目前还是需要两个类才能实现所有接口,因为两个类中都有GET方法,所以想合并成一个就不能用这个请求方法名字,但Django框架不认识action(动作),就可以用到ViewSet GenericAPIView只支持get、post、put、delete等请求方法,而不支持aciton,而ViewS 阅读全文
posted @ 2020-10-22 20:29 SoleMemory 阅读(510) 评论(0) 推荐(0)
摘要: DRF中的Mixin拓展类,需要放在GenericAPIView前面继承 ListModelMixin 类里面实现了获取项目列表的方法,可以直接调用list方法使用 def get(self, request, *args, **kwargs): # *args, **kwargs为了接收前端传的路 阅读全文
posted @ 2020-10-22 20:27 SoleMemory 阅读(399) 评论(0) 推荐(0)
摘要: GenericAPIView提供了分页、排序、过滤的功能 继承GenericAPIView之后,往往需要在类属性中指定查询集和序列化器类 过滤排序 安装django-filter OrderingFilter:排序过滤引擎 filter_backends = [DjangoFilterBackend 阅读全文
posted @ 2020-10-22 20:19 SoleMemory 阅读(204) 评论(0) 推荐(0)
摘要: DRF中的Request 继承DRF框架中APIView之后,request是DRF中的response对象,会根据请求头中的Content-Type,自动进行解析 Response对HttpRequest进行的拓展,HttpRequest有的功能Response都支持 request.data来接 阅读全文
posted @ 2020-10-22 20:16 SoleMemory 阅读(205) 评论(0) 推荐(0)
摘要: 数据校验 比如 将前端传递的json格式数据转化为python中的数据类型(模型类对象)叫做反序列化 将模型类对象转化为json格式的数据叫做序列化 数据增删改查流程 增 校验请求参数-->反序列化-->保存数据-->将保存的对象序列化并返回 删 判断要删除的数据是否存在-->执行数据库删除并返回 阅读全文
posted @ 2020-10-22 20:13 SoleMemory 阅读(408) 评论(0) 推荐(0)
摘要: Djang中的MVT和Java中的MVC模式: java中的MVC,相当于Django中的MVT M:负责和数据库交互 V:和MVC的C功能相同,接收请求,进行业务处理,返回响应 T:和MVC的V功能相同,负责构造要返回的HTML页面 前后端分离与不分离的区别 1、通过模板渲染的形式,叫做前后端不分 阅读全文
posted @ 2020-10-22 20:05 SoleMemory 阅读(141) 评论(0) 推荐(0)