如何将 gRPC unix 套接字传递给 Kubernetes api-server

How to pass gRPC unix socket to Kubernetes api-server

我已经实现了 KMS 插件 gRPC 服务器。但是,我的 api-server 无法连接到路径“/opt/mysocket.sock”的 Unix 套接字。

如果我将套接字绑定到“/etc/ssl/certs/”目录。 "api-server" 能够访问它并通过 Unix 套接字与我的 gRPC 服务器交互,插件按预期工作。

我如何将我的 unix 套接字传递到 api-server 而不会仅限于“/etc/ssl/certs/”目录。

我想使用其他标准目录,如“/opt”或“/var”等

我已按照 Google 中的以下指南实施 KMS 插件。 https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/

要让"api-server" pod 从主机系统访问任何目录,我们需要在"kube-apiserver.yaml" 文件中添加挂载路径。

yaml 文件“/etc/kubernetes/manifests/kube-apiserver.yaml”文件的路径。

如下所示添加挂载点(保持正确的缩进)。

=====
volumeMounts:
   - mountPath: /etc/my_dir
       name: my-kms
       readOnly: true
...
...
volumes:
   - hostPath:
       path: /etc/my_dir
       type: DirectoryOrCreate
====