当前位置: 首页 > 工具软件 > MicroK8s > 使用案例 >

microk8s部署k8s或harbor镜像拉取

司徒胤
2023-12-01

microk8s署kubenertes,harbor拉取镜像
https使用自签证书
1、首先说下tls或者说是ssl的理解:一般会使用一种非对称方式来传输一些重要的信息或者用于数字签名。非对称算法如rsa,服务端先用openssl生成私钥,用这个私钥生成证书请求,这个证书请求发给权威机构,权威机构会返回带有公钥,且包含客户身份信息的证书。这个证书跟自己的私钥就是一对非对称密钥。
2、当客户端请求时,客户端会把自己支持的算法告诉服务端,服务端返回证书公钥给客户,客户端再把对称密钥通过公钥加密传送给服务端,之后就用对称密钥通信(如果所有信息用非对称传输,性能低),这里涉及到ssl的握手协议。当然服务端也可以请求客户端证书验证客户端。
3、非对称算法还用于数字签名,上面也是一种签名的体现,对服务器的签名,客户端知道服务器所属者,因为通过私钥加密的消息只有公钥能解,反之亦然。
4、关于消息的完整性,在消息通信里会加入MAC(消息验证码)或者对消息进行md5算法,消息接受者使用同样的算法,再比较MAC值或md5值是否相等。

microk8s跟harbor的安装请参考官方文档。
1、使用自签的CA生成公钥,
2、把自签CA根证书(ca.crt)复制到microk8s节点,
3、修改配置文件:/var/snap/microk8s/current/args/containerd-template.toml

 [plugins."io.containerd.grpc.v1.cri".registry]

    # 'plugins."io.containerd.grpc.v1.cri".registry.mirrors' are namespace to mirror mapping for all namespaces.
    [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
        endpoint = ["https://registry-1.docker.io", ]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:32000"]
        endpoint = ["http://localhost:32000"]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."db.com"]
        endpoint = ["https://db.com"]
    [plugins."io.containerd.grpc.v1.cri".registry.configs]
      [plugin."io.containerd.grpc.v1.cri".registry.configs."db.com".tls]
        ca_file   = "/root/harbor/ca.crt"

笔者这里是https://db.com,ca_file的目录。。。。
重启microk8s
说明containerd-template.toml里的host_name需要跟主机一致。
这样就可通过https方式拉取harbor上的镜像了。

 类似资料: