k8s基础-kubectl node-shell 登录节点 通过kubectl node-shell可以直接登录任意节点主机:(weops) [root@node201 helm]# curl -LO https://github.com/kvaps/kubectl-node-shell/raw/master/kubectl-node_shell % Total % Received % Xferd Average Speed Time Time Time Current...
k8s开发基础-架构 master是k8s集群的大脑:1.api提供前端接口2.etcd是后端数据库,保存集群的配置和各种资源信息3.scheduler调度pod自由负载到node4.controller-manager负责管理集群的各种资源5.pod-network(flannel)网络6.kube-proxy这个是节点的agent组件,master也可以是节点...
k8s基础-pv/pvc问题分析 pod has unbound immediate PersistentVolumeClaims 问题描述: 用户反应deployment创建不成功, 通过describe查看报错如下,pod has unbound immediate PersistentVolumeClaims用户自己也查了按照网上的方法都没解决。我也按照用户提供方法尝试了一下,没有成功。从提示看,是pod不能绑定到pvc,我第一感觉是pv,pvc是不是配置有问题。最后发现确实是管理员pv写的太草率了。重点部分已经标黑,image核心我用nginx替换了。(weops) [root@node201 pv]# ca
k8s问题处理: 无法拉取本地image 用户反应: 创建资源的时候无法从本地pull image造成deployment失败。检查思路:根据用户提供的创建失败deployment。 通过kubectl describe deployment/xxx -n yyy可以看到提示没有使用本地的image,但是拉取github的image提示需要docker login。docker images可以看到node1节点(非master)本地有这个image,尝试创建pod指定node1也是创建失败。看了用户的deployment的ymal
k8s基础-hostpath和localvolume(需创建sc/pv/pvc)的区别示例 引用官话的一句话:Both use local disks available on a machine. But! Imagine you have a cluster of three machines and have a Deployment with a replica of 1. If your pod is scheduled on node A, writes to a host path, then the pod is destroyed. At this point the sch
k8s问题-总结 1. deployment的pod每次扩容,为什么老在一个节点(所有节点均可调度,状态均正常)?2. deployment为什么扩容完成后,pod的个数不发现变化(所有节点均可调度,状态均正常) ?
k8s开发基础-pod的initcontainer示例 Init Container可以在多种K8S资源里被使用到如Deployment、Daemon Set, Pet Set, Job等,但归根结底都是在Pod启动时,在主容器启动前执行,做初始化工作。Init 容器不支持 lifecycle、livenessProbe、readinessProbe 和 startupProbe, 因为它们必须在 Pod 就绪之前运行完成。应用场景:第一种场景:等待其它模块Ready,比如我们有一个应用里面有两个容器化的服务,一个是Web Server,另一个.
k8s基础-empty,hostpath Pod是生命周期是短暂,容器销毁时,保存在容器内部文件系统中的数据都会被清除。为了持久化保存容器的数据,这里引入了kubernetes Volume,k8s volume是独立于容器,pod中容器被销毁或重建,但volume会被保留。本质上k8s volume是一个目录,k8s提供了各种backend后端的抽象,用户在使用的时候不需要关心数据存放在本地节点还是cloud上,对用户来说,所有volume只是一个目录。重要概念:emptyDir(和pod同生同灭),hostPath(独立于pod),外
layui基础: 弹出页面 1.弹出页面样式layer.confirm('是否确定删除<a class="layui-bg-red">{{ name }}</a>这个Deployment吗?', {icon: 3, time:3000, title:'警告信息提示'},
k8s开发基础-patch和replace的区别 patch是局部更新,增删改某一个属性,deployment回滚功能:replace是全局更新,对deployment的yaml文件进行整体修改的功能:
k8s开发基础-Deployment的autoscale(需安装metric-server)和rollback # kubectl create deployment web --image=nginx:latest --replicas=2deployment副本扩容和缩容# kubectl scale deployment/test -n default --replicas=2 或者 kubectl patch -n default deployment/test -p '{"spec":{"replicas":2}}'deployment的版本回滚改变images生成新的deploy.
k8s开发基础-从底层逆向总结service和ingress 很早就很想弄一个k8s的管理平台,一直都在做一些准备工作,迟迟没有开始。技术选型,web框架 ,页面展示 这些我都得从零开始,好在自己有django+adminlte的积累。页面显示,最后决定选择模仿openshift,结合自己的想要展现的东西,边写边查,收获良多。从底层代码结构逆向学习k8s基础,很多东西豁然开朗,很多东西都串起来了。以前很讨厌看的yaml文件,现在看起来很亲切了。一个deployment可以包含多个svc,server port , target port, node
k8s开发基础-ingress元数据 复杂嵌套的场景,便于完整开发[{'api_version': None,'kind': None,'metadata': {'annotations': {'kubectl.kubernetes.io/last-applied-configuration': '{"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"annotations":{},"name":"web","namespace":"default"},..
k8s开发基础-配置ingress+tls 1.创建证书,web和web1分别对应一个独立的tls证书:(weops) [root@node201 tls]# openssl genrsa -out web-ingress.key 2048Generating RSA private key, 2048 bit long modulus......................................+++...............................................+++e is 65537 (
layui基础-表单内容换行+右侧固定高度调整 /*layui-table 表格内容允许换行*/ .layui-table-cell{ font-size:12px; //padding:0 5px; vertical-align: middle; height: auto; //overflow:visible; //内容全显示,注释就可以省略显示 text-overflow:inherit; white-space:norm...
Layui基础-Layui 的 Tab 示例 效果图:HTML部分:<!--tab标签--><div class="layui-tab layui-tab-brief" lay-filter="tabs"> <ul class="layui-tab-title"> <li lay-id="detail" class="layui-this">Detail&Pod Scale</li> <li lay-id="replicaset">Re...
django基础-html处理python后台的数组数据 需求:python后端数据:labels= {'app': 'nginx', 'project': 'k8s'}在前端我们需要这样显示:通过django的前端html处理代码就可以实现: {% if labels %} {% for k,v in labels.items %} {{ k }}={{ v }}...