看了k8s原始碼,發現位于的dockerServicepkg/kubelet/dockershim/docker_service.go和位于的DockerServerpkg/kubelet/dockershim/remote/docker_server.go似乎都實作了CRI shim server.
但是我不明白這兩者的區別,為什么我需要區分這兩者呢?
k8s 版本是標簽 1.23.1
uj5u.com熱心網友回復:
- DockerServer 只是創建dockershim grpc 服務器
// DockerServer is the grpc server of dockershim.
type DockerServer struct {
// endpoint is the endpoint to serve on.
endpoint string
// service is the docker service which implements runtime and image services.
service DockerService
// server is the grpc server.
server *grpc.Server
}
...
// Start starts the dockershim grpc server.
func (s *DockerServer) Start() error {
glog.V(2).Infof("Start dockershim grpc server")
l, err := util.CreateListener(s.endpoint)
if err != nil {
return fmt.Errorf("failed to listen on %q: %v", s.endpoint, err)
}
// Create the grpc server and register runtime and image services.
s.server = grpc.NewServer()
runtimeapi.RegisterRuntimeServiceServer(s.server, s.service)
runtimeapi.RegisterImageServiceServer(s.server, s.service)
go func() {
// Use interrupt handler to make sure the server to be stopped properly.
h := interrupt.New(nil, s.Stop)
err := h.Run(func() error { return s.server.Serve(l) })
if err != nil {
glog.Errorf("Failed to serve connections: %v", err)
}
}()
return nil
}
- DockerService是實作CRI遠程服務服務器的介面
// DockerService is the interface implement CRI remote service server.
type DockerService interface {
runtimeapi.RuntimeServiceServer
runtimeapi.ImageServiceServer
}
// **dockerService uses dockershim service to implement DockerService**.
BTW,你確定你以后會用嗎?來自最新(5 天前)的訊息: Kubernetes 正在從 Dockershim 繼續前進:承諾和后續步驟:
- Kubernetes 將在即將發布的 v1.24 版本中洗掉 dockershim。
- 如果您使用 Docker Engine 作為 Kubernetes 集群的容器運行時,請準備好在 1.24 中遷移
- Kubernetes 1.24 的目標是在 2022 年 4 月完全洗掉。
- 我們將在 Kubernetes 專案中再支持一年的 Kubernetes 版本 1.23,其中包括 dockershim。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/410374.html
標籤:
上一篇:是否可以通過主機名允許出口流量?
