小编Pau*_*aul的帖子

从私有注册表中提取 k3s 镜像

我一直在查看有关如何启用 k3s(在我的 pi 上运行)从我的家庭网络(我的网络上的服务器笔记本电脑)上的私有注册表中提取 docker 映像的不同参考资料。如果有人可以请把我的头指向正确的方向吗?这是我的方法:

  1. 在我的服务器上创建了 docker 注册表(并可通过端口 10000 进行访问):
docker run -d -p 10000:5000 --restart=always --local-docker-registry registry:2
Run Code Online (Sandbox Code Playgroud)

这有效,并且能够将图像从“服务器电脑”推拉到它。我还没有添加身份验证 TLS 等...

(通过 VS Code 上的 docker 插件查看图像)。

注册表 docker 镜像

  1. 在我的笔记本电脑服务器上添加了入站防火墙规则,并测试了可以从我的 pi 中“看到”注册表(因此这也有效):
$ curl -ks http://<server IP>:10000/v2/_catalog
{"repositories":["tcpserialpassthrough"]}
Run Code Online (Sandbox Code Playgroud)
  1. 在 registries.yaml 文件中添加了 k3s(在我的 pi 上运行的 k3s)的注册表链接,并重新启动了 k3s 和 pi
$ cat /etc/rancher/k3s/registries.yaml
mirrors:
  pwlaptopregistry:
    endpoint:
      - "http://<host IP here>:10000"
Run Code Online (Sandbox Code Playgroud)
  1. 将注册表前缀添加到部署清单上的我的映像端点:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tcpserialpassthrough
spec:
  selector:
    matchLabels:
      app: tcpserialpassthrough
  replicas: 1
  template:
    metadata:
      labels:
        app: tcpserialpassthrough
    spec:
      containers:
      - …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes docker-registry k3s

7
推荐指数
1
解决办法
1万
查看次数

高性能写入 apache Iceberg

我正在尝试直接在 Python 环境中实现从 pandas(或者理想情况下是 Polars,如果可能)到我们的 Apache Iceberg 部署(使用 hive 元存储)的高性能记录写入,或者通过基于性能最高的 Trino 查询引擎进行记录写入。

鉴于我已经尝试过的方法,我当前的记录写入吞吐量仍然相当垃圾。如果有人可以请我指出如何直接与 Iceberg 建立高性能写入连接的正确方向(或者如果期望通过查询引擎工作,则通过 Trino)...因为我也没有看到指导文档。

我的尝试如下:

  • 最初通过Trino python 包将 pandas df 的内容解析为批量的 sql 语法查询。- 笨重且最慢
  • 然后挖掘并找到了一个异步 Trino python 包,它至少允许我使用 asyncio 进行调用,并从基于部署的 trino 工作人员数量的调用并发中受益。
  • 利用 Trino 的 jdbc 连接器类型,以及底层的 trino-jdbc.jar 和 python 的jaydebeapi 包,看看底层 java 运行时执行是否可以提高性能 - 数据读取成功,但写入不成功
  • Iceberg 通过pySpark直接连接- 本文中描述的连接问题
  • 从 0.4.0 版开始,pyIceberg 仍然不包含我从文档或挖掘包中收集到的记录写入功能
  • 使用pandas.to_sql()方法偶然发现了这种方法 - 迄今为止最好的方法,但仍然不够

通过一个通信线程,我还了解了如何将数据帧作为镶木地板文件格式直接上传到 S3,然后从那里可以通过元数据调用与 Iceberg 的相关目录表链接(明智的压缩传输是有意义的)...但也有避风港无法以这种方式开始工作

Trino 的 pandas.sql() 代码片段是唯一值得分享的:

import warnings
# …
Run Code Online (Sandbox Code Playgroud)

python bigdata trino apache-iceberg

5
推荐指数
0
解决办法
1349
查看次数

K3s 上的 RBAC(基于角色的访问控制)

在观看了 kubernetes 上的 RBAC(基于角色的访问控制)视频(其中这个对我来说是最透明的)后,我遵循了这些步骤,但是在 k3s 上,而不是所有来源暗示的 k8s 上。据我收集的信息(不起作用),问题不在于实际的角色绑定过程,而在于 API 服务未确认的 x509 用户证书

$ kubectl get pods --kubeconfig userkubeconfig

错误:您必须登录到服务器(未经授权)

Rancher 的 wiki上也没有记录K3s 的安全性(虽然记录了他们的 k8s 实现)?虽然对rancher 2.x本身进行了描述,但不确定这是否是我的实现的问题,或者是 k3s <-> k8s 的问题。

$ kubectl version --short
Client Version: v1.20.5+k3s1
Server Version: v1.20.5+k3s1

Run Code Online (Sandbox Code Playgroud)

通过重复该过程,我的步骤如下:

  1. 获取 k3s ca 证书

这被描述为位于/etc/kubernetes/pki (k8s) 下,但是基于似乎位于/var/lib/rancher/k3s/server/tls/ (server-ca.crt 和 server-ca.key)

  1. 从 ca 证书生成用户证书
#generate user key
$ openssl genrsa -out user.key 2048

#generate signing request from ca
openssl req …
Run Code Online (Sandbox Code Playgroud)

kubernetes rancher k3s kubernetes-rbac

4
推荐指数
1
解决办法
4180
查看次数

PI4 k3s 安装服务器当前无法处理请求

我正在尝试安装并运行一个单节点轻量级 kubernetes 集群,以便在我的 Raspberry pi4(我发现了 k3s)上使用。然而,从我读过或看到的内容来看,我可能遗漏了一些东西,但还没有找到我遇到的确切问题的参考(安装后使用简单的 kubectl 命令进行测试):

\n
$ kubectl get nodes\nError from server (ServiceUnavailable): the server is currently unable to handle the request\n
Run Code Online (Sandbox Code Playgroud)\n

我参考过的安装:

\n\n
$ sudo k3s server\nINFO[2020-09-30T06:58:13.488363192+01:00] Starting k3s v1.18.9+k3s1 (630bebf9)\nINFO[2020-09-30T06:58:13.489450500+01:00] Cluster bootstrap already complete\nFATA[2020-09-30T06:58:13.535582640+01:00] starting kubernetes: preparing server: start cluster and https: listen tcp :6443: bind: address already in use\n
Run Code Online (Sandbox Code Playgroud)\n
\n

根据较新的安装版本,假定不再需要这样做。

\n
\n

raspberry-pi kubernetes k3s

0
推荐指数
1
解决办法
4104
查看次数