随笔分类 - Kubernetes
摘要:liveness 探针是让用户自定义判断容器是否健康的条件,如果探测失败,Kubernetes 会重启容器。 Readiness 探针是让用户自定义判断容器什么时候可以被 Kubernetes 加入到service 负载均衡池中,对外提供服务。 liveness 示例: apiVersin: v1
阅读全文
摘要:PVC 可以看做是一个接口,PV 可以看做是 PVC 的一个实现。开发人员只需要定义 PVC,提出需要多大的一个存储空间,读取模式是怎么样的,不需要知道数据是通过什么方式存储的。运维人员则提供 PV,可以是 ceph,也可以是 NFS 或者其它。 #定义PVC apiVersion: v1 kind
阅读全文
摘要:3个基本概念: (1) Role: 角色。它其实是一组规则,定义了一组对 kubernetes API 对象的操作权限 。 (2)Subject:被作用者。可以是“人”,也可以是“机器”。 (3)RoleBinding: 定义了 subject 和 role 间的绑定关系。 Role 的定义示例如下
阅读全文
摘要:部署应用,我们经常碰到的问题是配置文件的内容会变化,我们可以通过 configMap 来保存配置文件的内容。比如:一个 spring boot 的 Java 应用,做了一个镜像,jar 包是放在容器的 /opt 目录里,程序启动命令为: java -jar mock-app-1.0.jar 我们知道
阅读全文
摘要:Deployment 应用于无状态的应用,即它认为所有 Pod 是完全一样的。所以它们之间没有顺序。但对于一些应用,尤其是分布式应用, 它的多个实例之间有依赖关系。比如:主从关系。这种实例之间有不对等关系(拓扑状态),以及实例对外部数据有依赖关系(存储状态)的应用,就称为有状态的应用。 Servic
阅读全文
摘要:以下为 Probe 示例 apiVersion: v1 kind: Pod metadata: labels: test: liveness name: test-liveness-exec # pod 的名称。 kubectl get pod 中显示此名字 spec: containers: -
阅读全文
摘要:演示 Lifecycle 的配置 apiVersion: v1 kind: Pod metadata: name: lifecycle-demo spec: containers: - name: demo-container image: nginx lifecycle: postStart: e
阅读全文
摘要:一般都是一个 pod 里面包含一个容器,但是有些情况,多个容器之间有比较亲密的关系,需要通过共享目录或本地 localhost 请求互相通信的话,可以放到一个 pod 里。比如:一个tomcat 的 web 应用,可以把 tomcat 算作一个容器,我们自己的 war 包可以单独做一个镜像,然后通过
阅读全文
摘要:经过前面的4篇文章, kubernetes 集群已经部署好了,下面通过一些命令,了解一下对 kubernetes 的操作。 1. 创建 nginx 的 pod: kubectl run nginx --image=nginx --replicas=3 2. 查看 pod: kubectl get p
阅读全文
摘要:1. Job 定义示例 此例只是运行一个已经安装了 bc 的 Ubuntu 系统,去计算圆周率的值,精确到 1000 位小数 apiVersion: batch/v1 kind: Job metadata: name: pi spec: parallelism: 2 completions: 4 t
阅读全文
摘要:1. Deployment Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义(declarative)方法,用来替代以前的 ReplicationController 来方便的管理应用。 典型的应用场景包括: 定义 Deployment 来创建 Pod 和 Repli
阅读全文
摘要:Secret 的作用,是帮你把 Pod 想要访问的加密数据,存放到 Etcd 中。然后,你就可以通过在 Pod 的容器里挂载 Volume 的方式,访问到这些 Secret 里保存的信息了。 apiVersion: v1 kind: Pod metadata: name: test-projecte
阅读全文
摘要:1. 资源限制 apiVersion: v1 kind: Pod metadata: name: backend spec: containers: - name: db image: mysql resources: requests: memory: "256Mi" cpu: "500m" #
阅读全文
摘要:1. Yaml 文件说明 yaml 文件中都有哪些字段,分别代表什么意思,可以直接使用 kubectl explain 来查看 kubectl explain pods.spec 通过 yaml 创建时的命令。通过下面的命令,不管是新建还是更新,都可以运行。 kubectl apply -f ngi
阅读全文
摘要:1. 看教程,都要需要一个 yaml 的配置文件。这个竟然也是需要FQ才能下载的。网上搜了一下,发现有好心人贴出来了,https://blog.csdn.net/qq504960027/article/details/115285432 这里是找到的最新的。直接拿来用。本文最后也附上了修改后的文本内
阅读全文
摘要:本部署主要参照 https://www.kubernetes.org.cn/7189.html 的步骤,其中有几个地方可能因为版本不一样,会有一些问题。 1. 在其中第5步,初始化k8s集群时,有一个 image (coredns:V1.8.0)拉取不到, 可以通过下面的命令,先从 docker 拉
阅读全文
摘要:以下无特殊说明,都是在 Node 节点运行 1. 创建文件 vim /opt/k8s/cfg/kubelet.conf,内容如下: 注意: --kubeconfig 指定的文件是自动生成的。 2.创建文件 vim /usr/lib/systemd/system/kubelet.service ,内容
阅读全文
摘要:1. Node 节点配置文件 1.1 下载相关的软件 上面的 client 包里只有一个 kubectl 的脚本,这个脚本在 kubernetes-server-linux-amd64.tar.gz 也有。 1.2. 创建一个文件 /opt/k8s/cfg/gen-cfg.sh , 并增加执行权限,
阅读全文
摘要:1. 下载包 wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz 2. 把解压出来的可执行文件放到 /opt/k8s/bin 下 3. 创建 /opt/
阅读全文
摘要:Kubenetes 集群部署规划: 以下在 Master 节点操作。 1. 创建目录,用于存放 kuburnetes 相关的文件。 2. 获取下面的文件并解压,把解压后的 etcd 和 etcdctl 两个文件放到 /opt/k8s/bin 目录下 3. 把 kubernetes 集群部署 自签 T
阅读全文