概念 - Kubernetes 对象名称及编号

集群中的每个对象都有一个对于该资源类型唯一的名称(敬请期待~~)。每个 Kubernetes 对象还具有在整个集群中唯一的 UID。

例如,在同一个命名空间(敬请期待~~)中只能有一个名为 myapp-1234 的 Pod,但是我们可以有名为 myapp-1234 的 Pod 和 Deployment。

对于非唯一的用户提供的属性,Kubernetes 提供标签(敬请期待~~)及注解(敬请期待~~)。

名称

客户端提供的字符串,它引用资源 URL 中的对象,例如 /api/v1/pods/some-name

给定种类的一个对象一次只能有一个给定的名称。但是,如果删除该对象,则可以使用相同的名称插件一个新对象。

以下是三种常用的资源名称约束。

DNS 子域名

大多数资源类型都需要一个名称,该名称可以用作 RFC 1123 中定义的 DNS 子域名。这意味着该名称必须:

  • 最多包涵 253 个字符;
  • 仅包含小写字母数字字符 “-” 或 “。”;
  • 以字母数字字符开头;
  • 以字母数字字符结尾。

DNS 标签名称

某些资源类型要求其名称遵循 RFC 1123 中定义的 DNS 标签标准。这意味着名称必须:

  • 最多包含 63 个字符;
  • 仅包含小写字母数字字符或 “-”;
  • 以字母数字字符开头;
  • 以字母数字字符结尾。

路径段名称

某些资源类型要求其名称能够安全地编码为路径段。换句话说,名称可能不是 “。” 或 “…”,并且名称中不得包含 “/” 或 “%”。

这是一个名为 nginx-demo 的 Pod 的示例清单。

apiVersion: v1
kind: Pod
metadata:
  name: nginx-demo
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

Note: 某些资源类型对其名称由其他限制。

UID

Kubernetes 系统生成的字符串来唯一标识对象。

在 Kubernetes 集群的整个生命周期中插件的每个对象都有一个独特的 UID。旨在区分相似实体的历史事件。

Kubernetes UID 是普遍唯一的标识符(也称为 UUID)。UUID 被标准化为 ISO/IEC 9834-8 及 ITU-T X.667。

下一步怎么做

  • 阅读有关 Kubernetes 中的标签(敬请期待~~)的信息;
  • 请参阅 Kubernetes 设计文档中的标识符及名称
可以使用 Helm 命令来安装 logstash-input-kubernetes,步骤如下: 1. 添加 Elastic 官方的 Helm 仓库: ``` helm repo add elastic https://helm.elastic.co ``` 2. 创建一个 Helm chart: ``` helm create my-logstash-kubernetes ``` 3. 打开 my-logstash-kubernetes/values.yaml 文件,添加以下配置: ``` esHost: "elasticsearch-master.elasticsearch.svc.cluster.local" esPort: "9200" image: "docker.elastic.co/logstash/logstash-oss:7.11.2" ``` 这些配置项指定了 Elasticsearch 的主机和端口,以及使用的 Logstash 镜像。 4. 打开 my-logstash-kubernetes/templates/deployment.yaml 文件,添加以下部分: ``` - name: logstash-input-kubernetes image: {{ .Values.image }} env: - name: LOGSTASH_JAVA_OPTS value: "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.rmi.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=localhost" args: - "-f" - "/usr/share/logstash/pipeline/logstash.conf" - "--config.reload.automatic" - "--config.reload.interval=5s" volumeMounts: - name: config mountPath: /usr/share/logstash/pipeline/logstash.conf subPath: logstash.conf ports: - containerPort: 5044 resources: limits: cpu: 1000m memory: 2Gi requests: cpu: 500m memory: 1Gi ``` 这个部分定义了一个名为 logstash-input-kubernetes 的容器,使用了之前指定的 Logstash 镜像,并挂载了一个名为 config 的 ConfigMap。 5. 打开 my-logstash-kubernetes/templates/service.yaml 文件,添加以下部分: ``` - name: logstash-input-kubernetes port: 5044 targetPort: 5044 ``` 这个部分定义了一个名为 logstash-input-kubernetes 的服务,使用了之前定义的端口。 6. 创建一个 ConfigMap,用于存储 Logstash 的配置文件: ``` kubectl create configmap my-logstash-config --from-file=logstash.conf=./logstash.conf ``` 7. 使用 Helm 命令安装 Logstash: ``` helm install my-logstash-kubernetes elastic/logstash --values=my-logstash-kubernetes/values.yaml ``` 这个命令会创建一个名为 my-logstash-kubernetesKubernetes 部署,并启动一个名为 logstash-input-kubernetes 的容器。容器会使用之前创建的 ConfigMap 中的配置文件来处理 Kubernetes 的日志数据,并将数据发送到 Elasticsearch。 以上就是使用 Helm 安装 logstash-input-kubernetes 的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值