小编moh*_*08p的帖子

Kronnetes中的Cron Jobs - 连接到现有的Pod,执行脚本

我确定我错过了一些明显的东西.我查看了Kubernetes上ScheduledJobs/CronJobs的文档,但是我找不到按计划执行以下操作的方法:

  1. 连接到现有Pod
  2. 执行脚本
  3. 断开

我有其他方法可以做到这一点,但他们感觉不对.

  1. 安排一个cron任务:kubectl exec -it $(kubectl get pods --selector = some-selector | head -1)/ path/to/script

  2. 创建一个具有"Cron Pod"的部署,该部署也包含应用程序,以及许多"Non Cron Pod",它们只是应用程序.Cron Pod将使用不同的图像(一个安排了cron任务).

如果可能的话,我宁愿使用Kubernetes ScheduledJobs来防止同一个Job同时运行多次,也因为它让我感觉更合适.

有没有办法通过ScheduledJobs/CronJobs来做到这一点?

http://kubernetes.io/docs/user-guide/cron-jobs/

kubernetes kubernetes-cronjob

20
推荐指数
2
解决办法
1万
查看次数

如何在主服务器上找到kubeadm的join命令?

我之前跑过的时候,我失去了原来的'kubeadm join'命令kubeadm init.

如何再次检索此值?

kubernetes kubeadm

19
推荐指数
4
解决办法
7751
查看次数

如何在 AWS Fargate 中更新容器映像

我已将初始 docker 映像推送到存储库并使用该映像创建了 AWS Fargate,是否有任何方法可以更新映像,因为我的 docker 映像中有某些更改。

amazon-web-services amazon-ecs aws-fargate

17
推荐指数
3
解决办法
8547
查看次数

如何在部署上配置非默认serviceAccount

我对此文档页面的理解是,我可以使用Pod配置服务帐户,并希望也可以部署,因此我可以访问Kubernetes 1.6+中的k8s API.为了不改变或使用默认的,我想创建服务帐户并将证书挂载到部署的pod中.

如何在部署示例中实现类似的示例?

apiVersion: v1
kind: Pod
metadata:
   name: my-pod
spec:
  serviceAccountName: build-robot
  automountServiceAccountToken: false
Run Code Online (Sandbox Code Playgroud)

service-accounts kubernetes

15
推荐指数
1
解决办法
1万
查看次数

Google Kubernetes Engine:为服务类型启用HTTPS

我在GKE上有一个应用程序,我希望仅通过HTTPS提供,因此我获得了一个签名证书以使用TLS保护应用程序.

我已经查看了很多有关如何执行此操作的教程,但它们都是指使用Ingress并使用LetsEncrypt和KubeLego自动请求证书.但我希望继续使用外部负载平衡器(谷歌为我提供的计算引擎实例),但我只想通过https访问我的应用程序.

如何应用我的server.crt和server.key文件来启用https.Do我将它应用于负载均衡器或kubernetes集群.

google-cloud-platform kubernetes devops

14
推荐指数
1
解决办法
2367
查看次数

Marshal将结构嵌套到JSON中

如何将嵌套结构编组为JSON?我知道如何在没有任何嵌套结构的情况下编组结构.但是,当我尝试使JSON响应看起来像这样:

{"genre": {"country": "taylor swift", "rock": "aimee"}}
Run Code Online (Sandbox Code Playgroud)

我遇到了问题.

我的代码看起来像这样:

走:

type Music struct {
  Genre struct { 
    Country string
    Rock string
  }
}

resp := Music{
  Genre: { // error on this line.
    Country: "Taylor Swift",
    Rock: "Aimee",
  },
}

js, _ := json.Marshal(resp)
w.Write(js)
Run Code Online (Sandbox Code Playgroud)

但是,我得到了错误

Missing type in composite literal

我该如何解决这个问题?

marshalling go

13
推荐指数
1
解决办法
2万
查看次数

docker stack:从秘密设置环境变量

我试图从秘密设置密码,但它没有拿起它.Docker Server版本为17.06.2-ce.我用下面的命令来设置秘密:

echo "abcd" | docker secret create password -
Run Code Online (Sandbox Code Playgroud)

我的docker compose yml文件看起来像这样

version: '3.1'
...
 build:
  context: ./test
  dockerfile: Dockerfile
environment:
  user_name: admin
  eureka_password: /run/secrets/password
secrets:
  - password
Run Code Online (Sandbox Code Playgroud)

我也有root的秘密标签:

secrets:
  password:
     external: true
Run Code Online (Sandbox Code Playgroud)

当我在环境中对密码进行硬编码时,它可以正常工作,但是当我尝试通过秘密时它不会接收.我试着把作曲版本改为3.2,但没有运气.任何指针都非常感谢!

docker-compose docker-secrets

12
推荐指数
2
解决办法
5665
查看次数

Kubernetes和AWS:将LoadBalancer设置为使用预定义的安全组

正如标题所说,我正在寻找一种方法来强制LoadBalancer服务在AWS中使用预定义的安全组.我不想手动编辑Kubernetes为ELB创建的安全组的入站/出站规则.我无法在文档中找到任何内容,也没有找到任何在线其他地方运行的内容.这是我目前的模板:

apiVersion: v1
kind: Service
metadata:
  name: ds-proxy
spec:
  type: LoadBalancer
  ports:
  - port: 8761 # the port that this service should serve on
    targetPort: 8761
    protocol: TCP
  selector:
    app: discovery-service
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes aws-elb

11
推荐指数
1
解决办法
7315
查看次数

ECS / ECR:通常的做法是每个映像(及相关版本)有一个注册表吗?

因此,我是ecs / ecr的新手,但似乎我必须在存储库名称后命名(带有标签)图像,以便将该图像推送到存储库。

所以我的问题是:是否打算让用户(我)仅将单个映像和该映像的任何关联版本推送到ecr中的单个存储库,从而在我需要推送完全不同的映像时创建另一个存储库?

基本上,一个用于nginx的仓库,一个用于postgressql的仓库,等等。

amazon-web-services amazon-ecs docker docker-registry

11
推荐指数
3
解决办法
2775
查看次数

是否可以从主机中获取容器中的java进程的线程转储?

我的java进程在容器内运行.当然,我可以在主机上看到这个过程并看到它的pid.如果群集上没有安装jdk但是在主机上安装了jdk,我是否可以使用此pid在docker容器中针对java进程从主机运行jstack.顺便说一句,我尝试了它并遇到了以下错误

Attaching to process ID 66367, please wait...
Error attaching to process: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)
sun.jvm.hotspot.debugger.DebuggerException: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)
at sun.jvm.hotspot.HotSpotAgent.setupVM(HotSpotAgent.java:411)
at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:305)
at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
at sun.jvm.hotspot.tools.JStack.main(JStack.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.tools.jstack.JStack.runJStackTool(JStack.java:140)
at sun.tools.jstack.JStack.main(JStack.java:106)
Run Code Online (Sandbox Code Playgroud)

java docker docker-container

10
推荐指数
1
解决办法
5277
查看次数