我确定我错过了一些明显的东西.我查看了Kubernetes上ScheduledJobs/CronJobs的文档,但是我找不到按计划执行以下操作的方法:
我有其他方法可以做到这一点,但他们感觉不对.
安排一个cron任务:kubectl exec -it $(kubectl get pods --selector = some-selector | head -1)/ path/to/script
创建一个具有"Cron Pod"的部署,该部署也包含应用程序,以及许多"Non Cron Pod",它们只是应用程序.Cron Pod将使用不同的图像(一个安排了cron任务).
如果可能的话,我宁愿使用Kubernetes ScheduledJobs来防止同一个Job同时运行多次,也因为它让我感觉更合适.
有没有办法通过ScheduledJobs/CronJobs来做到这一点?
我之前跑过的时候,我失去了原来的'kubeadm join'命令kubeadm init.
如何再次检索此值?
我已将初始 docker 映像推送到存储库并使用该映像创建了 AWS Fargate,是否有任何方法可以更新映像,因为我的 docker 映像中有某些更改。
我对此文档页面的理解是,我可以使用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) 我在GKE上有一个应用程序,我希望仅通过HTTPS提供,因此我获得了一个签名证书以使用TLS保护应用程序.
我已经查看了很多有关如何执行此操作的教程,但它们都是指使用Ingress并使用LetsEncrypt和KubeLego自动请求证书.但我希望继续使用外部负载平衡器(谷歌为我提供的计算引擎实例),但我只想通过https访问我的应用程序.
如何应用我的server.crt和server.key文件来启用https.Do我将它应用于负载均衡器或kubernetes集群.
如何将嵌套结构编组为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
我该如何解决这个问题?
我试图从秘密设置密码,但它没有拿起它.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,但没有运气.任何指针都非常感谢!
正如标题所说,我正在寻找一种方法来强制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) 因此,我是ecs / ecr的新手,但似乎我必须在存储库名称后命名(带有标签)图像,以便将该图像推送到存储库。
所以我的问题是:是否打算让用户(我)仅将单个映像和该映像的任何关联版本推送到ecr中的单个存储库,从而在我需要推送完全不同的映像时创建另一个存储库?
基本上,一个用于nginx的仓库,一个用于postgressql的仓库,等等。
我的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) kubernetes ×5
amazon-ecs ×2
docker ×2
aws-elb ×1
aws-fargate ×1
devops ×1
go ×1
java ×1
kubeadm ×1
marshalling ×1