我使用DC/OS + Marathon设置Azure容器服务来部署Docker容器.到目前为止看起来不错,我可以使用SSH隧道连接到主节点并访问Mesos和Marathon WebUI以及点击REST API.
接下来,我试图从我的私人docker存储库部署一个docker容器,我在Marathon网站上找到了以下文章.
https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html
请参阅以上网址的"注意"部分 -
注意:所有可能启动应用程序的节点都必须可以访问URI.方法可以包括将文件分发到所有节点的本地文件系统,例如通过RSYNC/SCP,或者将其存储在共享网络驱动器上,例如Amazon S3.值得考虑所选方法的安全含义.
Azure为在所有节点上共享docker.tar.gz文件提供了哪些选项?
谢谢
大家好我们正在寻找实用且经过测试的指南或参考kubernetes主高可用性或主节点故障转移的其他解决方案.
我正在使用 Apache Mesos 在集群模式下运行 Apache Spark。但是,当我启动 Spark-Shell 运行简单的测试命令 (sc.parallelize(0 to 10, 8).count) 时,我收到以下警告消息:
10 年 3 月 16 日 11:50:55 警告 TaskSchedulerImpl:初始作业尚未接受任何资源;检查集群 UI 以确保工作线程已注册并拥有足够的资源
如果我检查 Mesos WebUI,我可以看到 Spark-Shell 被列为一个框架,并且我列出了一个从机(我自己的机器)。有什么帮助如何解决它吗?
如果活性探测失败,有没有办法告诉 Kubernetes 只销毁一个 pod 并创建一个新的 pod?我现在从日志中看到:我的 node js 应用程序刚刚重新启动并在同一个 pod 中运行。
活性探针在我的 YAML 规范中定义如下:
livenessProbe:
httpGet:
path: /app/check/status
port: 3000
httpHeaders:
- name: Accept
value: application/x-www-form-urlencoded
initialDelaySeconds: 60
periodSeconds: 60
Run Code Online (Sandbox Code Playgroud)
免责声明:
我完全意识到,如果活性证明失败,则重新创建一个 Pod 可能不是最好的主意,正确的方法是收到有关正在发生的事情的通知。
我希望Ingress将特定子域重定向到一个后端,将所有其他子域重定向到另一后端。基本上,我想定义如下规则:
如果是子域,
foo.bar.com
则转到s1
,对于所有其他子域,请转到s2
当我按照Ingress规范中的定义定义规则时,在部署时会遇到此异常:
Error: UPGRADE FAILED: cannot re-use a name that is still in use
Run Code Online (Sandbox Code Playgroud)
但是,当我更改*.bar.com
为demo.bar.com
它时,它会起作用。
这是我的Ingress资源规范:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
spec:
rules:
- host: foo.bar.com
http:
paths:
- backend:
serviceName: s1
servicePort: 80
- host: *.bar.com
http:
paths:
- backend:
serviceName: s2
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
任何人都知道是否可能吗?
我正在寻找一个普罗米修斯指标,它可以让我监控吊舱在terminating
消失之前在该状态中花费的时间。
我尝试过尝试,kube_pod_container_status_terminated
但它似乎只在 pod 完成终止过程后才注册,但不能帮助我了解终止 pod 需要多长时间。
我也看过kube_pod_status_phase
我不久前在这个频道中发现的内容,但它似乎也缺乏这种洞察力。
我目前正在使用 cAdvisor、kube-state-metrics 和 prometheus node-exporter 收集 k8s 工作负载的指标,但如果它们包含所需的数据,我很乐意考虑其他收集器。
非普罗米修斯的解决方案也很棒。
有任何想法吗?谢谢!
我有一个用 Go 编写的Lambda 函数,它应该允许通过 HTML 表单/ JavaScript和 API 网关集成将图像文件上传到 S3 存储桶中,所有这些都在SAM 模板中定义。
以下是 Lambda 函数执行日志的示例:
现在的问题是,对于任何 JPEG 或 PNG 文件,我都会得到损坏的结果:
multipart
媒体消息后得到的)大于原始文件大小,例如:8kB(原始)到 12kB(S3 存储桶)。hexdump
它们看起来几乎相同(也就是说:我怀疑是否涉及 base64 编码问题)。text/plain
媒体类型,此设置有效。我试图找出问题出在哪里,目前我的预感是 API 网关配置中有一些我遗漏的东西。FWIW,我试过这个,但没有明显的行为变化:
$ aws apigateway update-integration-response \
--rest-api-id XXX --resource-id XXX \
--http-method POST --status-code 200 \
--patch-operations op='replace',path='/contentHandling',value='CONVERT_TO_BINARY'`
Run Code Online (Sandbox Code Playgroud) 我使用以下配置在DC/OS上部署了服务
当我访问此地址(http://eureka.marathon.l4lb.thisdcos.directory:8761/)时,它表示无法访问该站点,尽管我的仪表板上的所有服务都是健康的.
如何访问服务的公共IP?
我不知道它是否相关,但当我查看我的公共奴隶的负载均衡配置时,我得到了 0 of 2 instances in service
使用以下命令时:
$ dcos marathon app add example.json
Run Code Online (Sandbox Code Playgroud)
我收到输出Error: Object is not valid
示例.json
{
"id": "es-cluster",
"env": {
"MARATHON_URL": "http://127.0.0.1:8080",
"APP_ID": "es-cluster",
"ELASTICSEARCH_CLUSTER_NAME": "CLUSTERNAME"
},
"container": {
"type": "DOCKER",
"volumes": [
{
"containerPath": "data",
"mode": "RW",
"persistent": {
"size": 1000
}
}
],
"docker": {
"image": "some/dockerImage",
"network": "BRIDGE",
"portMappings": [{
"containerPort": 9200
}, {
"containerPort": 9300
}]
}
},
"cpus": 0.5,
"mem": 1024,
"instances": 2
}
Run Code Online (Sandbox Code Playgroud)
如果我删除卷块(或将其保留为空),它就可以正常工作。
还可以直接使用 Marathon 的音量块来运行它,效果非常好。
如何使用 DCOS 创建具有持久卷的应用程序?
我想在 Go to runkubectl
命令中访问我的 Kubernetes 集群 API,以获取我在 google 云上运行的 k8s 集群中的可用命名空间。
我的唯一目的是通过运行kubectl
命令在我的集群中获得可用的命名空间:如果有其他选择,请告诉我。
kubernetes ×5
dcos ×3
go ×2
kubectl ×2
marathon ×2
mesos ×2
apache-spark ×1
aws-lambda ×1
aws-sam ×1
azure ×1
debugging ×1
docker ×1
grpc ×1
grpc-go ×1
http2 ×1
mesosphere ×1
persistent ×1
prometheus ×1
replication ×1
traefik ×1
volume ×1