K8S 九月 25, 2021

【转】如何写一个operator

文章字数 14k 阅读约需 13 mins.

K8S 九月 25, 2021

【转】如何写一个operator

文章字数 14k 阅读约需 13 mins.

原文地址:https://www.jianshu.com/p/79476712575e

文章源地址请移步writing-a-controller-for-pod-labels

样例代码

operator旨在简化基于k8s部署有状态服务(例如:ceph集群、skywalking集群)

可以利用Operator SDK 构建一个operator
operator使扩展k8s及实现自定义调度变得更加简单。

尽管Operator SDK 适合构建功能齐全的operator
但也可以使用它来编写单个控制器...

查看全文

K8S 八月 01, 2021

Ingress 定制配置

文章字数 9.7k 阅读约需 9 mins.

K8s Ingress、Ingress Controller 和 Ingress Class 中介绍了 Ingress 相关的概念,接下来让我们看看如何对 Ingress 进行更加灵活的配置。

Ingress 的特性至 Kubernetes v1.19 进入了稳定状态,不论使用哪个具体的 Ingress Controller,这些配置都是生效的。

Path types

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal...
查看全文

CLOUD NATIVE 七月 11, 2021

K8s Ingress、Ingress Controller 和 Ingress Class

文章字数 8.3k 阅读约需 8 mins.

将 k8s 集群中服务暴露给集群外访问,最简单的方式莫过于使用 NodePort,好比在 docker 环境下为容器的服务端口绑定宿主机的端口,定义 NodePort 类型的 Service 后,即可通过集群中任意节点的 IP 加 nodePort 指定的端口访问到 k8s 集群中的服务。

但随着服务的增多,使用 NodePort 访问的问题也会逐渐显现出来:可用作 NodePort 的端口是一个有限的范围、不容易记忆、不好管理……

有没有更优雅的方式访问集群内的服务呢?

可以在集群内部署一个 ...

查看全文

CLOUD NATIVE 五月 02, 2021

K8s 存储资源回收策略

文章字数 3.4k 阅读约需 3 mins.

Volume、PersistentVolume、PersistentVolumeClaim 和 StorageClass 中,我们介绍了 K8s 存储资源的相关概念。持久卷(PersistentVolume)通过卷插件对位于外部基础设施中的存储资产进行操作,并可通过 回收策略,控制持久卷回收时会对外部存储数据产生的影响。

目前支持的回收策略有三种:

  1. Retain:手动创建的 PV 所使用的默认回收策略。此策略使得用户可以手动回收资源,当使用 PV 的对象被删除时,PV 仍然存在,对应的数据...
查看全文

CLOUD NATIVE 四月 18, 2021

Volume、PersistentVolume、PersistentVolumeClaim 和 StorageClass

文章字数 6k 阅读约需 5 mins.

K8s 中的 ,是指包含可被 Pod 中容器访问的数据的目录。

Docker 也有 卷(Volume) 的概念,但对它只有少量且松散的管理。 Docker 卷是磁盘上或者另外一个容器内的一个目录。 Docker 提供卷驱动程序,但是其功能非常有限。

K8s 支持 很多类型的卷,比如:cephfsconfigMapemptyDirhostPathlocalnfspersistentVolumeClaim 等等。Pod 可以同时使用任意数目的多种类型的卷。所采用的特定的卷类型将决定该目...

查看全文

K8S 一月 31, 2021

K8s subPath

文章字数 2.4k 阅读约需 2 mins.

在 K8s 中,VolumeMount 是用来挂载定义好的存储卷的。

其中有个属性 subPath 是这样描述的:

Field Description
subPath
string
Path within the volume from which the container’s volume should be mounted. Defaults to “” (volume’s root).

subPath 所定义的路径,指的是 卷(Volume)内的子路径,用于将卷内 subPath...

查看全文

K8S 十一月 22, 2020

K8s ConfigMap

文章字数 8.2k 阅读约需 7 mins.

在 k8s 集群中部署第一个应用 中,完成了一个基本的 NGINX 服务的部署,但在真实环境中使用 NGINX 时,一般都需要定制其配置文件,使满足实际代理需求。K8s 提供了一个 ConfigMap 的概念,允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。

可以按字面方式,将 ConfigMap,理解为一个 Config 的 Map:

  • Map 的 Key 为配置标识,可以是文件名等
  • Map 的 Value 为配置内容,可以是字符串、文本内容等

一个 ConfigMap 中可...

查看全文

K8S 十一月 15, 2020

K8s 命名空间

文章字数 2.7k 阅读约需 2 mins.

Kubernetes 支持在一个物理集群上划分多个虚拟集群,这些虚拟集群即 命名空间

  • 在同一个命名空间中,资源名称须保持唯一。但在不同命名空间中,可以存在相同名称的资源。
  • 每一个资源只能隶属于一个命名空间。
  • 但命名空间本身不能属于另一个命名空间。

可以通过如下命令查看哪些资源在或不在命名空间中:

# In a namespace
$ kubectl api-resources --namespaced=true

# Not in a namespace
$ kubectl api-resources...
查看全文

K8S 十一月 08, 2020

在 Mac 的 Docker Desktop 中运行 K8s

文章字数 8.8k 阅读约需 8 mins.

Docker Desktop for MacDocker Community Edition 18.06.0-ce-mac70 2018-07-25 版本起,添加了对 Kubernetes 的支持,可以方便的在 Mac 上运行一个单节点的 K8s 集群。

在 Docker Desktop 的 Preferences 中的 Kubernetes 页面里,提供了一个 Enable Kubernetes 选框,点击之后即可在 Mac 上启动 K8s。

然而点击之后,就没有然后了,一直是下图这个状...

查看全文

CLOUD 十月 18, 2020

在 k8s 集群中部署第一个应用

文章字数 6.8k 阅读约需 6 mins.

使用 kubeasz 离线安装 k8s 集群 中,我们完成了 k8s 集群的搭建,接下来,可以开始在集群中部署第一个应用了。

在集群中启动一个最简单的 nginx 服务,并能够通过 http 进行访问。

回忆 docker 环境下,要实现这个目标,需要做的事情很简单,一行命令即可:

$ docker run --name some-nginx -d -p 8080:80 nginx

之后便可访问 http://localhost:8080 看到 nginx 的欢迎页面。

也可以使用 docker...

查看全文
加载更多
0%