如何将 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
====
我已经实现了 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
====