k8s开发基础
文章平均质量分 69
weopsway
从运维的角度思考开发,从开发的角度思考运维...
展开
-
k8s - kubelet启动失败处理记录
看看日志吧:journalctl -xu kubelet。google了下,应该是证书过期了。原创 2023-08-04 11:02:57 · 1657 阅读 · 0 评论 -
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...原创 2022-04-23 11:46:06 · 5057 阅读 · 0 评论 -
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原创 2022-04-14 23:26:32 · 4471 阅读 · 0 评论 -
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原创 2022-04-07 22:15:54 · 2538 阅读 · 0 评论 -
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原创 2022-04-07 08:14:58 · 4697 阅读 · 0 评论 -
k8s问题-总结
1. deployment的pod每次扩容,为什么老在一个节点(所有节点均可调度,状态均正常)?2. deployment为什么扩容完成后,pod的个数不发现变化(所有节点均可调度,状态均正常) ?原创 2022-04-06 18:35:18 · 452 阅读 · 0 评论 -
k8s开发基础-pod的initcontainer示例
Init Container可以在多种K8S资源里被使用到如Deployment、Daemon Set, Pet Set, Job等,但归根结底都是在Pod启动时,在主容器启动前执行,做初始化工作。Init 容器不支持 lifecycle、livenessProbe、readinessProbe 和 startupProbe, 因为它们必须在 Pod 就绪之前运行完成。应用场景:第一种场景:等待其它模块Ready,比如我们有一个应用里面有两个容器化的服务,一个是Web Server,另一个.原创 2022-04-05 21:03:21 · 1959 阅读 · 0 评论 -
k8s基础-empty,hostpath
Pod是生命周期是短暂,容器销毁时,保存在容器内部文件系统中的数据都会被清除。为了持久化保存容器的数据,这里引入了kubernetes Volume,k8s volume是独立于容器,pod中容器被销毁或重建,但volume会被保留。本质上k8s volume是一个目录,k8s提供了各种backend后端的抽象,用户在使用的时候不需要关心数据存放在本地节点还是cloud上,对用户来说,所有volume只是一个目录。重要概念:emptyDir(和pod同生同灭),hostPath(独立于pod),外原创 2022-04-04 21:19:55 · 2644 阅读 · 0 评论 -
k8s开发基础-patch和replace的区别
patch是局部更新,增删改某一个属性,deployment回滚功能:replace是全局更新,对deployment的yaml文件进行整体修改的功能:原创 2022-04-02 20:49:21 · 3048 阅读 · 0 评论 -
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.原创 2022-03-28 20:14:14 · 3983 阅读 · 0 评论 -
k8s开发基础-从底层逆向总结service和ingress
很早就很想弄一个k8s的管理平台,一直都在做一些准备工作,迟迟没有开始。技术选型,web框架 ,页面展示 这些我都得从零开始,好在自己有django+adminlte的积累。页面显示,最后决定选择模仿openshift,结合自己的想要展现的东西,边写边查,收获良多。从底层代码结构逆向学习k8s基础,很多东西豁然开朗,很多东西都串起来了。以前很讨厌看的yaml文件,现在看起来很亲切了。一个deployment可以包含多个svc,server port , target port, node原创 2022-03-26 13:05:50 · 575 阅读 · 0 评论 -
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"},..原创 2022-03-25 10:47:42 · 1004 阅读 · 0 评论 -
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 (原创 2022-03-24 20:25:50 · 1897 阅读 · 0 评论 -
k8s开发基础-仿照Openshift之deployment
我的平台效果原创 2022-03-20 13:21:44 · 264 阅读 · 0 评论