![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
kubernetes
容器编排平台
天地一扁舟
这个作者很懒,什么都没留下…
展开
-
kubernetes 26、liveness和readiness的原理与使用
目标:弄清楚readiness和liveness探针的原理目录:1 readiness和liveness探针2 样例3 总结1 readiness和liveness探针1.1 原理liveness主要用来确定何时重启容器。liveness探测的结果会存储在livenessManager中。kubelet在syncPod时,发现该容器的liveness探针检测失败时,会将其加入待启动的容器列表中,在之后的操作中会重新创建该容器。readiness主要来确定容器是否已经就绪。只有当P原创 2020-06-15 16:40:35 · 1064 阅读 · 0 评论 -
kubernetes 25、亲和性与反亲和性的使用
目标:弄清楚亲和性与反亲和性原理1 亲和性与反亲和性2 样例3 总结1 亲和性与反亲和性PodAffinity: pod亲和与互斥调度策略requiredDuringSchedulingIgnoredDuringExecution作用:限制pod所能运行的节点,根据节点本身的标签判断调和度。原理:在具有标签X的节点上运行1个或多个符合条件Y的pod,那么pod应该(如果是互斥,就拒绝)运行在这个节点上。X: 指集群中的节点,区域等,可通过节点标签中的key声明;key的名字:原创 2020-06-15 16:22:35 · 1360 阅读 · 0 评论 -
kubernetes 24、排查pod,service,ingress是否正常的方法
目标:当k8s的某个应用的api的pod无法接受到请求时的问题排查方法总体步骤:分别排查pod,service,ingress是否正常1 验证api的pod可以收到请求kubectl get pods -n openstack -o wide --show-labels|grep scheduler-dasscheduler-dashboard-api-6455678546-tspsq 1/1 Running 0 3m13s 1...原创 2020-06-02 12:01:02 · 1010 阅读 · 1 评论 -
kubernetes 23、kubernetes源码分析
待补充原创 2020-01-22 09:00:50 · 185 阅读 · 0 评论 -
kubernetes 22、operator实战
待补充原创 2020-01-01 20:45:40 · 223 阅读 · 0 评论 -
kubernetes 21、operator源码分析
目标:掌握kubernetes operator的开发,并弄清楚operator的原理1 安装1.1 安装go开发环境cd /etccp -rf yum.repos.d yum.repos.d_bakcd /etc/yum.repos.d/rm -rf ./*wget http://mirrors.aliyun.com/repo/Centos-7.repomv Centos-7...原创 2020-01-01 20:44:24 · 1126 阅读 · 0 评论 -
kubernetes 20、operator基础
待补充原创 2020-01-01 20:43:26 · 429 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 14、编写statefulset
1 statefulset基础1.1 引入原因deployment, daemonset, job无状态,但是数据库集群的相关服务一般都是有状态的1.2 statefulset特点1) 每个pod有唯一网络标识,可用于发现集群内其他成员.每个结点有固定id,集群中成员可通过该id互相发现并通信。集群规模固定。2) statefulset控制的pod启停顺序是受控的,操作第n个p...原创 2019-06-18 21:50:06 · 1980 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 15、编写deployment
1 deployment基础deployment内部使用Replica Set实现。使用场景:滚动升级和回滚,扩缩容等。2 重要属性2.1)滚动升级相关apiVersion: extensions/v1beta1kind: Deploymentmetadata: ....spec: strategy: rollingUpdate: maxSurge:...原创 2019-07-20 08:40:52 · 994 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 16、编写job
1 job基础job负责仅执行一次的任务。2 job样例2.1 查看jobyaml文件:{{- if .Values.manifests.job_db_init_mongodb }}{{- $envAll := . }}{{- $dependencies := .Values.dependencies.db_init_mongodb }}---apiVersion: batch...原创 2019-07-21 22:09:56 · 1047 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 17、编写ingress
ingress是kubernetes中的核心内容,这是TODO list中的核心内容。先占个坑,后面补上。原创 2019-07-21 22:10:05 · 253 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 18、编写service和ingress
1 service/ingress基础service作用: 用于kuernetes内部服务访问,将请求分发给通过标签选择器选择的一组pod中的一个上,实现负载均衡。ingress作用: 集群外部访问kuernetes中的服务。2 service样例2.1 查看service[root@node-1 ~]# kubectl get svc -n openstack -o wide|gre...原创 2019-07-30 08:24:45 · 506 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 19、卸载pv重新挂载pv的解决方法
卸载mongodb老的pv,挂载新的pv操作方法如下:1 先查看原来的pvkubectl get pv -n openstack | grep mongo样例输出信息如下:pvc-e353b86f-c971-11e9-a602-fa163ea65c3c 500Gi RWO Delete Bound openstack/mong...原创 2019-09-19 09:36:36 · 1187 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 13、搭建minikube环境
主要思路: 通过kvm安装(libvirt是建立在kvm之上的),然后用仓库,最后记得安装charts,就可以运行helm命令来安装组件步骤0: 安装libvirthttps://github.com/kubernetes/minikube/blob/master/docs/drivers.mdsudo yum install libvirt-daemon-kvm qemu-kvm -y...原创 2019-03-27 22:42:25 · 3210 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 12、详解提供外部访问的node port
1 kubernetes中的service1.1 基础含义: Service就是微服务,其他通过这个入口地址访问起背后的一组由Pod副本组成的集群实例。原理: Service与其后端Pod副本集群之间通过Label Selector来实现无缝对接。服务之间通过 TCP/IP通信。与Pod关系: 每个Pod提供独立的Endpoint(Pod IP + Container...原创 2019-02-24 10:03:02 · 2557 阅读 · 0 评论 -
读书笔记---kubernetes权威指南:从docker到kubernetes实践 第2章: Kubernetes实践指南
以下内容来自kubernetes权威指南:从docker到kubernetes实践纪念版第2章 Kubernetes实践指南2.1 Kubernetes安装与配置kubeadm:适合初学安装kubectl [command] [TYPE] [NAME] -o=<output_format>-o=yaml:以yaml格式显示结果kubectl exec -it p...转载 2018-05-15 21:13:19 · 677 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 1、 编写ConfigMap
1 Configmap基础问题原因: 配置信息要和docker image解耦,不能修改配置就重做镜像。作用:ConfigMap可以保存但个属性或整个配置文件原理:保存key-value配置数据,该数据可以在pods里面使用。可以理解为是多个属性文件的引用,认为是/etc目录,专门用来存储配置文件的目录。示例文件1:ceilometer/temp{{- if empty .Valu...原创 2018-12-16 21:41:06 · 2347 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 2、 编写daemonset
1 概要介绍DaemonSet:特点:确保全部Node上运行一个Pod副本(单副本)Node加入集群,则新增Pod;移除,则回收删除Daemonset,删除创建的Pod2编写2.1 必须字段apiVersion:可用值: extensions/v1beta1kind :可用值:DaemonSetmetadata:例如:name: nova-compute.spe...原创 2018-12-16 22:28:51 · 1230 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 3、 两个容器之间数据共享的方式
问题:两个容器,一个容器往某个目录中写数据,另一个容器需要从该目录读取数据。解决办法:将两个容器写在同一个pod中,并采用emptyDir挂载大致代码结构如下: ... containers: - name: cotainer1 image: ... imagePullPolicy: ... co...原创 2018-12-17 08:52:30 · 555 阅读 · 1 评论 -
kubernetes -- helm charts 开发: 4、 容器可以执行主机上的命令的方法
问题:一个容器需要能够执行主机上某些命令解决办法:容器内采用hostPath挂载,挂载的patch设定为主机上该命令的路径大致代码结构如下: ... containers: - name: mycontainer image: ... imagePullPolicy: ... command: ...原创 2018-12-17 08:57:46 · 446 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 5、 编写容器服务依赖
问题:某个服务依赖其他服务如何编写这种依赖解决办法:在dependencies的services下面添加该service的名称,注意该service名称和endpoins中对应名称相同。大致代码结构如下: ...dependencies: api: jobs: - gnocchi-storage-init services: - service...原创 2018-12-17 09:06:22 · 1314 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 6、 调试容器中python项目源码
以ceilometer-api为例,介绍调试的整个过程1 修改容器的启动方式将直接启动容器的方式改为不启动,自己进入容器后手动执行命令启动容器以ceilometer-api为例,修改ceilometer-api这个deployment,具体执行如下命令:先备份ceilometer-api这个deployment,即执行如下命令:kubectl get deploy -n open...原创 2019-01-26 09:24:26 · 383 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 7、 helm charts开发调试
1 编写helm charts2 charts语法检查执行命令:helm lint <chart_name>注意:请将<chart_name> 替换为自己的chart名称样例如下:helm lint gnocchi输出结果:==> Linting gnocchi[INFO] Chart.yaml: icon is recommended...原创 2019-01-26 09:41:25 · 1708 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 8、 不进入容器而执行容器中命令的方法
1 问题能否不进入容器执行容器内部的命令2 分析执行Pod的命令,默认是用Pod中的第一个容器执行通过bash获得Pod中某个容器的TTY,相当于登录容器kubectl exec -it <pod-name> -c <container-name> bash3 解决方法kubectl exec -it -n <namespace&g...原创 2019-01-26 10:08:03 · 2360 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 9、 helm charts升级方法
1 问题更新了helm charts,如何升级2 解决方法步骤1: 下载最新的整个helm charts项目代码步骤2: 查看当前环境的charts版本 这个可以通过查看某个组件的charts中使用的image的版本确定。以ceilometer-api为例,具体查看版本方法请执行如下命令:kubectl edit deploy -n openstack cei...原创 2019-01-27 21:14:15 · 2004 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 10、 helm charts中修改组件的resource limit
1 k8s中的资源限制request:容器使用的最小资源需求,容器调度时资源分配的判断依赖。只有当节点上可分配资源量>=容器资源请求数时,才会虚将容器调度到该节点,但Request参数不限制容器的最大可使用资源。limit:容器能使用资源的资源最大值,设置为0表示使用资源无上限。request:保证pod有足够资源运行limit:防止pod中无限制使用资源0<=Re...原创 2019-01-27 21:54:19 · 1450 阅读 · 0 评论 -
kubernetes -- helm charts 开发: 11、 helm, kubernetes, docker常用命令汇总
1 helm命令部分对组件的charts进行语法检查:helm lint ceilometer调试安装组件:helm install --dry-run --debug mongodb --namespace openstack真正安装组件:1) 通过编译后的组件的tgz包来安装组件:helm install --name ceilometer ceilometer-1.0.1....原创 2019-01-28 09:15:54 · 635 阅读 · 0 评论 -
读书笔记---kubernetes权威指南:从docker到kubernetes实践 第1章: Kubernetes入门
以下内容来自:kubernetes权威指南:从docker到kubernetes实践纪念版第1章 Kubernetes入门含义:基于容器技术的分布式架构方案Service:分布式集群架构核心特点:唯一名字,虚机ip和端口号,远程服务,被映射到了提供这种服务能力的一组容器应用上含义:service由多哥相关服务近好层提igong服务隔离:服务需要隔离,设计pod对象,将每个服务进...转载 2018-05-15 21:11:24 · 968 阅读 · 0 评论