Tag: kubernetes

如何修复kubernetes中的dockernetworking?

我有一个kubernetes集群,并使用jenkins pipe道jenkins: podTemplate(label: 'pod-golang', containers: [ containerTemplate(name: 'golang', image: 'golang:latest', ttyEnabled: true, command: 'cat'), containerTemplate(name: 'docker', image: 'docker:17.11-dind', ttyEnabled: true, command: 'cat'), ], volumes: [hostPathVolume(hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock')] ) { node('pod-golang') { def app String applicationName = "auth" String buildNumber = "0.1.${env.BUILD_NUMBER}" stage 'Checkout' checkout scm container('docker') { stage 'Create docker image' app = docker.build("test/${applicationName}") […]

Kubernetes POD参数不传递给服务,但是Dockerparameter passing正确

问题陈述: 我已经成功地从docker.io/joethecoder2/spring-boot-web创build了一个Docker镜像。 它已经通过命令行参数进行了testing,并且在Docker中本地正常工作。 我正在尝试传递给Docker的javaparameter passing给一个用单个图像定义的docker.io/joethecoder2/spring-boot-web 传递参数的目的是让POD知道数据库服务的IP地址和端口号。 问题定义: 我在这里定义了一个Kubernetes POD,但是我相信当POD运行这个服务的时候,参数没有从singlePod.yaml正确的传递过来。 预期结果: 我期望Kubernetes POD与这里定义的Docker镜像兼容。 我期望Kubernetes POD像Docker一样接受参数: docker run -it -p 8080:8080 joethecoder2 / spring-boot-web -Dcassandra_ip = 127.0.0.1 -Dcassandra_port = 9042 curl -X POST –header 'Content-Type: application/json' –header 'Accept: text/plain' 'http://localhost:8080/restaurant/arguments' 正确的结果返回 – > 127.0.0.1:9042 错误的结果: 我知道实际的参数不会传递给POD,因为当我运行下面的服务时,我没有收到返回的参数。 curl -X POST –header 'Content-Type: application/json' –header 'Accept: text/plain' 'http://192.168.64.3:32308/restaurant/arguments' 错误的结果返回 […]

运行在Docker容器中并在Kubernetes上运行的dotnet核心Web API

调用Docker服务时获得更好的TTFB 我正在运行一个使用DotNet核心1.1的Web API应用程序,在部署在Kubernetes上的Docker容器中运行它。 我在IIS上部署了完全相同的API(Azure上的虚拟机)(IIS VM和Kubernestes主机和代理具有相同的规格,并且都连接到同一个数据库服务器) 部署在IIS上的API请求速度很快,如下图所示 在Docker中部署在Kubernetes上的API请求很慢 这里是我的Dockerfile: FROM microsoft/aspnetcore:1.1 ENV ASPNETCORE_ENVIRONMENT Docker WORKDIR /app EXPOSE 80 COPY . /app/ ENTRYPOINT ["dotnet", "XXXAPI.dll"] 什么可能导致这种行为? 我到处都找不到有关Docker核心性能的明确文档。

用MySQL和PHP创buildKubernetes Pod?

您好,我有一个docker集装箱是一个PHP后端。 我创build了这个容器的一个kubernetes吊舱。 这是我的XML文件看起来像: apiVersion: v1 kind: Pod metadata: name: backend spec: containers: – name: backend image: 000.dkr.ecr.eu-west-1.amazonaws.com/fullstackapp ports: – containerPort: 8000 不过,我希望能够将MySql数据库(也是一个docker容器)连接到同一个容器中的后端。 但是我不知道如何去做这件事。 任何帮助,将不胜感激!

警告:无法删除容器“openshift_s2i-build_nodejs-mongo-persistent-

我得到一个简单的NodeJS-Mongo应用程序(应用程序代码只有20MB),并在Openshift RHC v3上运行。 我可以看到我的mongo数据库正在运行,我的节点服务器正在监听。 但是Build仍然在运行,并没有完成。 40分钟后,popup以下错误日志: warning: Failed to remove container "openshift_s2i-build_nodejs-mongo-persistent- 任何想法这是什么和需要做什么来解决它? 我已经在OS v2上工作,但v3对我来说很难。 我是Kubernetes新手。 我也删除了healthcheck API,以便它可以运行。 运行40分钟后,我没有看到任何错误。 任何帮助将大大帮助。 谢谢。 编辑 :添加更多的图片和日志数据: 正如你在图像中看到的,“Listening …”是我的控制台,它表明它正常运行。 但是在日志上面,你可以看到它是“一小时前创build的” 一旦构build失败,如果我试图查看日志文件,我看到整个日志被覆盖以下内容: error streaming logs from build pod: shantikuteer/nodejs-mongo-persistent-3-build container: , container "sti-build" in pod "nodejs-mongo-persistent-3-build" is not available 另外这里是我的生成日志运行时的副本: Pulling image "registry.access.redhat.com/rhscl/nodejs-4-rhel7@sha256:XXXXXXXXXX" … —> Installing application source … —> […]

从由mesos运行的docker容器访问kubernetes服务

我在我的Kubernetes集群中运行mesos-master(mesosphere / mesos-master)和mesos-slave(mesosphere / mesos-slave)。 Mesos从站启动泊坞窗容器(docker通过挂载/ usb / bin / docker从主机访问)与我的数据处理应用程序(短暂的,1-5分钟)需要访问其他kubernetes服务。 所以简而言之,我需要从容器中访问Kubernetes DNS。 有没有可能做到这一点? 谢谢

Fabric8 kubernetes API握手错误

我在Docker容器中使用kubernetes-client,在连接到Kubernetes master时,它给了我下面的错误信息。 io.fabric8.kubernetes.client.Config : Error reading service account token from: [/var/run/secrets/kubernetes.io/serviceaccount/token]. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[na:1.8.0_121] at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) ~[na:1.8.0_121] at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) ~[na:1.8.0_121] at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) ~[na:1.8.0_121] at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514) ~[na:1.8.0_121] at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[na:1.8.0_121] at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026) ~[na:1.8.0_121] at sun.security.ssl.Handshaker.process_record(Handshaker.java:961) ~[na:1.8.0_121] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[na:1.8.0_121] at […]

Kubernetes容器挂在ContainerCreating上

我已经创build了一个我知道可用的容器,并且已经在一个“只有主人”的Kubernetes上进行了testing。 我现在想要在一个奴隶上运行pod。 我已经使用kubeadm init出一个集群,并且kubeadm join <IP>:6443 –discovery-token-unsafe-skip-ca-verification –token XXXXXXjoin一个从VM。 尝试从以下YAML创build一个吊舱时吊舱挂在ContainerCreating: apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: psql spec: serviceName: "psql-svc" replicas: 3 template: metadata: labels: app: psqllogical spec: terminationGracePeriodSeconds: 10 containers: – name: psqllogical image: psqllogical:v1 imagePullPolicy: Never ports: – containerPort: 5432 name: dbport volumeMounts: – name: db mountPath: /var/lib/postgresql/data volumeClaimTemplates: – metadata: name: db […]

Kubernetes之间为mysql和tomcat进行的服务间通信

我有两个使用kubectl在kubernetes上运行的服务。 1. Tomcat 2. MYSQL 场景 – Tomcat是外部世界。 托pipe的tomcat使用节点端口。 而MySQL服务是后端,因此使用群集IP(默认types)托pipe它。 Tomcat无法连接到MySQL。 我正在使用的War文件,需要JDBC URL来连接。 我能够从我的实例(主节点)连接到MySQL。 但tomcat服务是无法做到的。

运行在Docker容器内的纱线容器

在Docker容器中运行yarn nodemanagers时,我有一些关于资源分配的问题。 docker和yarn都使用cgroups来pipe理cpu资源。 我的理解是, cgroups不会将cpus专用于进程,而是将cpu时间用于进程。 如果一个纱线集装箱在docker集装箱内运行,则有2个limits 。 一个用于纱线容器,另一个用于docker集装箱。 由于我们正在处理的时间段,而不是专门的计划,有可能内部limit和外部limit是相互不同步的? 还是内部容器可以直接访问节点内核,并可以分配自己的CPU limit 。 任何关于此的文档将不胜感激,因为我无法在网上find任何东西。 我担心的是,如果在docker集装箱上有6个硬件CPU limit ,那么运行分配3个虚拟CPU的单个纱线容器实际上并不会获得3个虚拟CPU资源,因为时隙在内部和外部外部容器。