mirror of
https://github.com/rancher/rke.git
synced 2025-07-18 17:31:05 +00:00
Merge pull request #251 from moelsayed/fix_multible_roles
Fix multi-role port-check conflict
This commit is contained in:
commit
f6c36623f5
@ -72,7 +72,7 @@ services:
|
|||||||
|
|
||||||
system_images:
|
system_images:
|
||||||
alpine: alpine:latest
|
alpine: alpine:latest
|
||||||
nginx_proxy: rancher/rke-nginx-proxy:v0.1.0
|
nginx_proxy: rancher/rke-nginx-proxy:v0.1.1
|
||||||
cert_downloader: rancher/rke-cert-deployer:v0.1.1
|
cert_downloader: rancher/rke-cert-deployer:v0.1.1
|
||||||
service_sidekick_image: rancher/rke-service-sidekick:v0.1.0
|
service_sidekick_image: rancher/rke-service-sidekick:v0.1.0
|
||||||
kubedns_image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5
|
kubedns_image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5
|
||||||
|
@ -19,7 +19,7 @@ const (
|
|||||||
|
|
||||||
DefaultInfraContainerImage = "gcr.io/google_containers/pause-amd64:3.0"
|
DefaultInfraContainerImage = "gcr.io/google_containers/pause-amd64:3.0"
|
||||||
DefaultAplineImage = "alpine:latest"
|
DefaultAplineImage = "alpine:latest"
|
||||||
DefaultNginxProxyImage = "rancher/rke-nginx-proxy:v0.1.0"
|
DefaultNginxProxyImage = "rancher/rke-nginx-proxy:v0.1.1"
|
||||||
DefaultCertDownloaderImage = "rancher/rke-cert-deployer:v0.1.1"
|
DefaultCertDownloaderImage = "rancher/rke-cert-deployer:v0.1.1"
|
||||||
DefaultServiceSidekickImage = "rancher/rke-service-sidekick:v0.1.0"
|
DefaultServiceSidekickImage = "rancher/rke-service-sidekick:v0.1.0"
|
||||||
|
|
||||||
|
@ -317,13 +317,16 @@ func (c *Cluster) deployTCPPortListeners(ctx context.Context, currentCluster *Cl
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Cluster) deployListenerOnPlane(ctx context.Context, portList []string, holstPlane []*hosts.Host, containerName string) error {
|
func (c *Cluster) deployListenerOnPlane(ctx context.Context, portList []string, holstPlane []*hosts.Host, containerName string) error {
|
||||||
portBindingList := []nat.PortBinding{}
|
var errgrp errgroup.Group
|
||||||
for _, portNumber := range portList {
|
for _, host := range holstPlane {
|
||||||
rawPort := fmt.Sprintf("0.0.0.0:%s:1337/tcp", portNumber)
|
runHost := host
|
||||||
portMapping, _ := nat.ParsePortSpec(rawPort)
|
errgrp.Go(func() error {
|
||||||
portBindingList = append(portBindingList, portMapping[0].Binding)
|
return c.deployListener(ctx, runHost, portList, containerName)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
return errgrp.Wait()
|
||||||
|
}
|
||||||
|
func (c *Cluster) deployListener(ctx context.Context, host *hosts.Host, portList []string, containerName string) error {
|
||||||
imageCfg := &container.Config{
|
imageCfg := &container.Config{
|
||||||
Image: c.SystemImages[AplineImage],
|
Image: c.SystemImages[AplineImage],
|
||||||
Cmd: []string{
|
Cmd: []string{
|
||||||
@ -340,19 +343,19 @@ func (c *Cluster) deployListenerOnPlane(ctx context.Context, portList []string,
|
|||||||
}
|
}
|
||||||
hostCfg := &container.HostConfig{
|
hostCfg := &container.HostConfig{
|
||||||
PortBindings: nat.PortMap{
|
PortBindings: nat.PortMap{
|
||||||
"1337/tcp": portBindingList,
|
"1337/tcp": getPortBindings("0.0.0.0", portList),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var errgrp errgroup.Group
|
logrus.Debugf("[network] Starting deployListener [%s] on host [%s]", containerName, host.Address)
|
||||||
for _, host := range holstPlane {
|
if err := docker.DoRunContainer(ctx, host.DClient, imageCfg, hostCfg, containerName, host.Address, "network"); err != nil {
|
||||||
runHost := host
|
if strings.Contains(err.Error(), "bind: address already in use") {
|
||||||
errgrp.Go(func() error {
|
logrus.Debugf("[network] Service is already up on host [%s]", host.Address)
|
||||||
logrus.Debugf("[network] Starting deployListener [%s] on host [%s]", containerName, runHost.Address)
|
return nil
|
||||||
return docker.DoRunContainer(ctx, runHost.DClient, imageCfg, hostCfg, containerName, runHost.Address, "network")
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
return errgrp.Wait()
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Cluster) removeTCPPortListeners(ctx context.Context) error {
|
func (c *Cluster) removeTCPPortListeners(ctx context.Context) error {
|
||||||
@ -509,3 +512,13 @@ func getPortCheckLogs(reader io.ReadCloser) ([]string, error) {
|
|||||||
}
|
}
|
||||||
return hostPortLines, nil
|
return hostPortLines, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getPortBindings(hostAddress string, portList []string) []nat.PortBinding {
|
||||||
|
portBindingList := []nat.PortBinding{}
|
||||||
|
for _, portNumber := range portList {
|
||||||
|
rawPort := fmt.Sprintf("%s:%s:1337/tcp", hostAddress, portNumber)
|
||||||
|
portMapping, _ := nat.ParsePortSpec(rawPort)
|
||||||
|
portBindingList = append(portBindingList, portMapping[0].Binding)
|
||||||
|
}
|
||||||
|
return portBindingList
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user