我有一个 GKE 集群突然无法从 GCR 提取我的 docker 镜像;两者都在同一个 GCP 项目中。它已经运行良好几个月了,提取图像没有任何问题,现在在没有进行任何更改的情况下开始抛出错误。
(注意:我通常是团队中唯一访问 Google Cloud 的人,尽管我团队中的其他人完全有可能在没有意识到的情况下进行了更改/无意中进行了更改)。
我看过有关此主题的其他一些帖子,但其他人提供的解决方案没有帮助。其中两篇帖子对我来说特别突出,因为它们都是在我的问题开始大约 13/14 天前的同一天发布的。这究竟是巧合还是巧合,谁知道呢。
这篇文章和我有同样的问题;不确定发布的评论是否帮助他们解决了问题,但对我来说还没有解决。这个帖子好像也是同样的问题,但是发帖人说等了一段时间后自己解决了。
几天前我第一次注意到集群上的问题。通过将映像推送到 GCR 然后弹跳 Pod 来部署新映像kubectl rollout restart deployment。
然后所有 Pod 都返回ImagePullBackOff,表示无法从 GCR 获取图像:
kubectl get pods:
XXX-XXX-XXX 0/1 ImagePullBackOff 0 13d
XXX-XXX-XXX 0/1 ImagePullBackOff 0 13d
XXX-XXX-XXX 0/1 ImagePullBackOff 0 13d
...
Run Code Online (Sandbox Code Playgroud)
kubectl describe pod XXX-XXX-XXX:
Normal BackOff 20s kubelet Back-off pulling image "gcr.io/<GCP_PROJECT>/XXX:dev-latest"
Warning Failed 20s kubelet Error: ImagePullBackOff
Normal Pulling …Run Code Online (Sandbox Code Playgroud) docker google-cloud-platform kubernetes google-kubernetes-engine google-container-registry
在我的Fortran 95代码中,我有一系列嵌套的DO循环,整个过程需要大量的时间来计算,所以我想用OpenMP添加并行功能(gfortran -fopenmp用于编译/构建).
有一个主要的DO循环,运行1000次.
其中有一个子DO循环,运行100次.
其他几个DO循环嵌套在此中,迭代次数随着DO循环的每次迭代而增加(第一次一次,最后一次最多1000次).
例:
DO a = 1, 1000
DO b = 1, 100
DO c = 1, d
some calculations
END DO
DO c = 1, d
some calculations
END DO
DO c = 1, d
some calculations
END DO
END DO
d = d + 1
END DO
Run Code Online (Sandbox Code Playgroud)
一些嵌套的DO循环必须以串行方式运行,因为它们本身包含依赖关系(也就是说,循环的每次迭代都有一个包含上一次迭代的值的计算),并且在这种情况下不能轻易并行化.
我可以轻松地使没有任何依赖项的循环并行运行,如下所示:
d = 1
DO a = 1, 1000
DO b = 1, 100
DO c = 1, d
some calculations with dependencies
END …Run Code Online (Sandbox Code Playgroud) 这感觉像是一个需要解决的简单问题,但在我的所有搜索中,我仍然没有找到适合我的解决方案。可能是另一种找不到我想要的东西的情况,因为我没有寻找正确的“东西”,但我们在这里......
我有一个 C# Web API 程序,我想从配置对象配置 kestrel 服务器。
我通过休息调用将此配置接收到我的服务中,进入一个CustomConfig对象。我可以在 inProgram.cs或 in 中获取此配置对象Startup.cs,但由于我不想重复自己并进行额外的调用,所以我不想在这两个地方都这样做。
我的偏好是获取配置,Startup.cs因为这是我的其余配置代码所在的位置,并且是我已经使用我的CustomConfig对象的位置。但是,我找不到一种方法来配置 kestrel 服务器以使用我提供给它的证书(在 Startup.cs 中),也找不到一种将此配置注入到Startup.csfrom的方法Program.cs。
在其他项目中,我已将 PFX 文件的位置作为环境变量传递:(ASPNETCORE_Kestrel__Certificates__Default__Path在这种情况下,一切都可以正常工作,无需额外的代码配置),但在这个项目中,所有配置都必须通过其余调用检索,因此这里不是一个选项。
我目前一切都在运行,但只能通过两次其余调用来获取配置。配置 kestrel 的当前实现是将 PFX 存储CustomConfig为 base64 字符串,并在以下位置进行配置Program.cs:
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
CustomConfig config = CustomConfig() // <- I receive config here
webBuilder.UseStartup<Startup>();
webBuilder.UseKestrel(options =>
{
options.ConfigureHttpsDefaults(d =>
{
byte[] pfxBytes = Convert.FromBase64String(config.Base64PFXBytes);
d.ServerCertificate …Run Code Online (Sandbox Code Playgroud)