Tag: kubernetes

ENOTFOUND在使用Kubernetes的Docker容器上启动Secure Gateway Client时出错

我有一个在Bluemix上运行(进入VPNnetworking)的单个Docker容器来运行我的Secure Gateway客户端,以稳定Cloud to Site之间的VPN连接,并且它正在工作。 我正尝试迁移此容器以在Kubernetes上运行,因为IBM将弃用Bluemix上的单个泊坞窗实例。 但是运行相同的图像到一个Kubernetes集群得到的错误: [2017-10-02 13:52:11.766] [错误](客户端ID 17)响应代码:ENOTFOUND,消息:getaddrinfo 有谁知道发生了什么? 我正在使用的安全网关客户端映像是“ibmcom / secure-gateway-client” 谢谢,

jenkins与GKE上的kubernetes

我是新的kubernetes与jenkins组合。 为此我做了一些教程。 我的目标是:1)build立docker图像2)将docker图像推送到GCR 3)在kubernetes中部署图像 我已经像教程一样安装了GKE 1:1。 https://cloud.google.com/solutions/continuous-delivery-jenkins-container-engine还做了这些教程:“jenkins-on-container-engine-tutorial”“configurations-jenkins-container-engine” 由于这些教程是相互依赖的,我已经完全从头开始多次完成它们,以避免来自我身边的错误。 问题是构build代理找不到docker命令! 我也尝试了一些像这个线程中的自定义图像: 在Jenkins从节点上运行的Jenkinsfile中执行docker build命令的最简单的方法是什么? 但似乎没有工作:(

kubernetes ssh连接在gcloud上被拒绝

我试图连接到GKE集群内运行的pod – 我可以ssh进入集群内的节点,但是当我尝试下面的命令进入pod内的bash时,出现错误: kubectl –namespace=prod exec -it test-webserver-3998817321-728hj — /bin/bash – >服务器错误:错误拨号后端:ssh:拒绝:连接失败(连接超时) 如何使用kubectl命令连接到gke群集中的正在运行的群集? 有没有什么configuration与我的防火墙? 我有以下的SSH规则: NAME NETWORK DIRECTION PRIORITY ALLOW DENY sshaccess default INGRESS 1000 tcp:22,icmp 当我在本地群集上尝试上述命令时,可以轻松连接。 有时候是有效的,有时却不行。 据我所知,Loadbalancer(Ingress)可能是负责这种行为?

在GKE /容器优化的操作系统上logging日志logging会破坏kubectl日志

很简单,我们的集群将日志驱动程序设置为json-file 。 我们希望使用journald驱动程序喂养成功。 更改日志logging驱动程序打破了kubectl logs因为它仍然在寻找json文件。 Docker logs其中的一个节点工作得很好。 有任何想法吗? OS信息: CHROMEOS_AUSERVER=https://tools.google.com/service/update2 CHROMEOS_BOARD_APPID={76E245CF-C0D0-444D-BA50-36739C18EB00} CHROMEOS_CANARY_APPID={90F229CE-83E2-4FAF-8479-E368A34938B1} CHROMEOS_DEVSERVER= CHROMEOS_RELEASE_APPID={76E245CF-C0D0-444D-BA50-36739C18EB00} CHROMEOS_RELEASE_BOARD=lakitu-signed-mpkeys CHROMEOS_RELEASE_BRANCH_NUMBER=84 CHROMEOS_RELEASE_BUILDER_PATH=lakitu-release/R60-9592.84.0 CHROMEOS_RELEASE_BUILD_NUMBER=9592 CHROMEOS_RELEASE_BUILD_TYPE=Official Build CHROMEOS_RELEASE_CHROME_MILESTONE=60 CHROMEOS_RELEASE_DESCRIPTION=9592.84.0 (Official Build) stable-channel lakitu CHROMEOS_RELEASE_NAME=Chrome OS CHROMEOS_RELEASE_PATCH_NUMBER=0 CHROMEOS_RELEASE_TRACK=stable-channel CHROMEOS_RELEASE_VERSION=9592.84.0 DEVICETYPE=OTHER GOOGLE_RELEASE=9592.84.0 HWID_OVERRIDE=LAKITU DEFAULT BUILD_ID=9592.84.0 NAME="Container-Optimized OS" KERNEL_COMMIT_ID=30321742b4e00c2250c21bb15f64cb23fa443c74 GOOGLE_CRASH_ID=Lakitu VERSION_ID=60 BUG_REPORT_URL=https://crbug.com/new PRETTY_NAME="Container-Optimized OS from Google" VERSION=60 GOOGLE_METRICS_PRODUCT_ID=26 HOME_URL="https://cloud.google.com/compute/docs/containers/vm-image/" ID=cos Docker版本: Docker version 1.13.1, build […]

如何使用kubernetes python客户端耗尽节点?

我正在尝试使用官方kubernetes python-client自动化kubernetes工作者节点。 我目前正在寻找一种方法来安全地将正在运行的应用程序移动到其他节点 。 我们可以使用“kubectl排水”。 我没有find一种方法来模拟使用Python客户端的function。 我目前正在调查这个库是否支持排水function呢?

在OpenShift上创buildREDIS集群

我正在使用这个镜像,并在OpenShift上创build了两个REDIS部署。 部署名称是redis-node01和redis-node02 。 我也创build了最小的REDIS集群configuration文件,如下所述。 它看起来像这样,它在REDIS启动时加载: port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes 现在我打开一个REDIS容器的terminal,并发出cluster meet命令,如下所述。 我得到这个错误: (error) ERR Invalid node address specified: redis-node02:6379 我想REDIS不能联系那个地址上的另一个实例吗? 如何解决这个问题?

如何为kubernetes桌面UIconfiguration简单的login/传递身份validation

我在kubernetes中很新,我只是通过kubeadm安装kubernetes并运行仪表板UI,但是无法configuration对它的访问。 下面的文档中,我添加行–basic-auth-file=/etc/kubernetes/auth.csv到/etc/kubernetes/manifests/kube-apiserver.yaml,创build文件,并放入一个像pass,admin,adminstring。 但之后,API删除此string并重新启动服务器后,崩溃并恢复正常。 我怎么能通过这个参数到api服务器没有api服务器崩溃,也许别的什么需要添加或从这个文件中删除? 这是我的 KUBE-apiserver.yaml apiVersion: v1 kind: Pod metadata: annotations: scheduler.alpha.kubernetes.io/critical-pod: "" creationTimestamp: null labels: component: kube-apiserver tier: control-plane name: kube-apiserver namespace: kube-system spec: containers: – command: – kube-apiserver – –admission-control=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota – –tls-cert-file=/etc/kubernetes/pki/apiserver.crt – –tls-private-key-file=/etc/kubernetes/pki/apiserver.key – –secure-port=6443 – –kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname – –requestheader-allowed-names=front-proxy-client – –service-account-key-file=/etc/kubernetes/pki/sa.pub – –client-ca-file=/etc/kubernetes/pki/ca.crt – –enable-bootstrap-token-auth=true – –allow-privileged=true – –requestheader-username-headers=X-Remote-User – –advertise-address=236.273.51.124 […]

无法在互联网上访问AWS上暴露的k8s服务

我在我的AWS ECR上有一个名为hello-node的图像(在post底部有描述)。 如果我在本地运行它并转到localhost:8080我看到“hello world”。 在AWS上我的节点上运行: kubectl run hello-node –image=xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hello-node:v1 –port=8080 (帐号被屏蔽) 然后: kubectl expose deployment hello-node –type="LoadBalancer" 如果我运行: kubectl describe service hello-node 我看到(信息编辑) Name: hello-node Namespace: default Labels: run=hello-node Annotations: <none> Selector: run=hello-node Type: LoadBalancer IP: xx.xx.xx.xx LoadBalancer Ingress: xxxxxxxxx-xxxxxx.us-east-1.elb.amazonaws.com Port: <unset> 8080/TCP NodePort: <unset> 32059/TCP Endpoints: xx.xx.xx.xx:8080 Session Affinity: None 我想在线访问我的hello-node服务。 我想在浏览器中访问一些url或IP地址,看看“hello world”。 我试过去上面列出的IP,LoadBalancer […]

使用Kubernetes工具Kompose在单个容器中启动多个容器

我一直在search谷歌的解决scheme,以解决以下问题的时间比我不愿承认的更长。 我有一个docker-compose.yml文件,它允许我在本地机器上启动2个容器的生态系统。 这真棒。 但是我需要能够部署到Google Container Engine(GCP)。 为此,我使用Kubernetes; 仅部署到单个节点。 为了简化部署过程,我使用了kompose,它允许我使用原始的docker-compose.yml在Google Container Engine上部署容器。 这也很酷。 问题是,默认情况下,Kompose会将每个docker服务(我有2个)部署在独立的pod中; 每个容器一个容器。 但是我真的希望所有容器/服务都在同一个容器中。 我知道有一些方法可以在单个容器中部署多个容器,但我不确定是否可以使用Kompose来完成此任务。 这是我的docker-compose.yml: version: "2" services: server: image: ${IMAGE_NAME} ports: – "3000" command: node server.js labels: kompose.service.type: loadbalancer ui: image: ${IMAGE_NAME} ports: – "3001" command: npm run ui labels: kompose.service.type: loadbalancer depends_on: – server 提前致谢。

OpenShift上的REDIS集群

我已经为Docker使用了官方 REDIS镜像,并将其部署在OpenShift上。 我部署了6个REDIS实例,并使用REDIS集群教程将它们configuration为以群集模式运行。 我已经在不同的端口上运行了每个实例,并使用服务公开了这些端口。 我也暴露了REDIS的pipe理端口。 我已经将hostNetwork的REDIS实例部署为true。 我现在将这些实例连接到一个集群中。 对于在同一个OpenShift节点上运行的实例,我可以使用运行它的节点IP或使用在服务和REDIS实例端口中定义的clusterIP来发出CLUSTER MEET命令。 两者都很好。 在同一个OpenShift节点上运行的实例在群集中连接,但无法获取正在不同节点上运行的实例以便彼此连接。 示例服务YAML: spec: ports: – name: 6371-tcp protocol: TCP port: 6371 targetPort: 6371 nodePort: 31790 – name: 16371-tcp protocol: TCP port: 16371 targetPort: 16371 nodePort: 31989 selector: deploymentconfig: redis-cache-node01 clusterIP: 172.30.63.9 type: NodePort sessionAffinity: None