如何在管道中使用kubernetes-plugin访问另一个容器的容器端口

时间:2019-03-26 22:16:54

标签: jenkins jenkins-pipeline jenkins-plugins jenkins-kubernetes

我正在尝试从一个容器访问同一节点内另一个容器的暴露端口,但是我不知道如何使用管道中的kubernetes插件来做到这一点。

在我的脚本中,我创建了两个容器并公开了数据库容器的端口,在另一个容器中,我试图访问主机的端口1521。

def label = "mypod-${UUID.randomUUID().toString()}"
podTemplate(label: label, containers: [
    containerTemplate(name: 'oracle', image: 'repo:5000/ng-oracle:latest',privileged: true, ttyEnabled: true, command: 'cat', ports:[
        portMapping(name: 'oracle1', containerPort: 1521, hostPort: 1521),
        portMapping(name: 'oracle2', containerPort: 22, hostPort: 2222),
    ]),
    containerTemplate(name: 'maven', image: 'repo:5000/ng-satelites:4', ttyEnabled: true, command: 'cat')
  ]) {
        node(label) {
            stage('all') {
                container('maven') {
                    stage('test-db') {
                        sh 'curl $(/sbin/ip route|awk \'/default/ { print $3 }\'):1521'
                    }
                }
            }
        }
}

1 个答案:

答案 0 :(得分:0)

在Kubernetes POD内,所有容器都通过localhost“互相看到”。因此,您应该能够从$entryTemplate = @' <individual> <Name>$($_.Name)</Name> <Item>$($_.Item)</Item> <Purchase Price>$($_."Purchase Price")</Purchase Price> </individual> '@ 上的oracle容器连接到maven容器。