Documentation ¶
Overview ¶
Package container xxx
Index ¶
- Constants
- func EnvOperCopy(task *BcsContainerTask)
- type BcsContainerInfo
- type BcsContainerTask
- type BcsImage
- type BcsKV
- type BcsPort
- type BcsVolume
- type ConEventCB
- type Container
- type DockerContainer
- func (docker *DockerContainer) CommitImage(id, image string) error
- func (docker *DockerContainer) CreateContainer(containerName string, containerTask *BcsContainerTask) (*BcsContainerInfo, error)
- func (docker *DockerContainer) InspectContainer(containerName string) (*BcsContainerInfo, error)
- func (docker *DockerContainer) KillContainer(containerName string, signal int) error
- func (docker *DockerContainer) ListContainer()
- func (docker *DockerContainer) ListImage(filter string) ([]*BcsImage, error)
- func (docker *DockerContainer) PullImage(image string) error
- func (docker *DockerContainer) RemoveContainer(containerName string, force bool) error
- func (docker *DockerContainer) RunCommand(containerID string, command []string) error
- func (docker *DockerContainer) RunCommandV2(ops *schedTypes.RequestCommandTask) (*schedTypes.ResponseCommandTask, error)
- func (docker *DockerContainer) StartContainer(containerID string) error
- func (docker *DockerContainer) StopContainer(containerName string, timeout int) error
- func (docker *DockerContainer) UpdateResources(id string, resource *schedTypes.TaskResources) error
- func (docker *DockerContainer) UploadToContainer(containerID string, source, dest string) error
- type Pod
- type PodEventCB
- type PodEventHandler
- type PodStatus
Constants ¶
const ( // ContainerStatus_PAUSED xxx ContainerStatus_PAUSED = "paused" // ContainerStatus_RESTARTING xxx ContainerStatus_RESTARTING = "restarting" // ContainerStatus_RUNNING xxx ContainerStatus_RUNNING = "running" // ContainerStatus_DEAD xxx ContainerStatus_DEAD = "dead" // ContainerStatus_CREATED xxx ContainerStatus_CREATED = "created" // ContainerStatus_EXITED xxx ContainerStatus_EXITED = "exited" )
const ( // StopContainerGraceTime executor default gracetime StopContainerGraceTime = 10 // DefaultDockerCPUPeriod default cpu period for executor DefaultDockerCPUPeriod = 100000 )
Variables ¶
This section is empty.
Functions ¶
func EnvOperCopy ¶
func EnvOperCopy(task *BcsContainerTask)
EnvOperCopy environment $ operation support
Types ¶
type BcsContainerInfo ¶
type BcsContainerInfo struct { ID string `json:"ID,omitempty"` // container ID Name string `json:"Name,omitempty"` // container name Pid int `json:"Pid,omitempty"` // container pid StartAt time.Time `json:"StartAt,omitempty"` // startting time FinishAt time.Time `json:"FinishAt,omitempty"` // Exit time Status string `json:"Status,omitempty"` // status string, paused, restarting, running, dead, created, exited Healthy bool `json:"Healthy,omitempty"` // Container healthy IsChecked bool `json:",omitempty"` // is health check ConsecutiveFailureTimes int `json:",omitempty"` // consecutive failure times ExitCode int `json:"ExitCode,omitempty"` // container exit code Hostname string `json:"Hostname,omitempty"` // container host name NetworkMode string `json:"NetworkMode,omitempty"` // Network mode for container IPAddress string `json:"IPAddress,omitempty"` // Contaienr IP address NodeAddress string `json:"NodeAddress,omitempty"` // node host address Ports []BcsPort `json:"Ports,omitempty"` // ports info for report Message string `json:"Message,omitempty"` // status message for container Resource *schedTypes.Resource `json:"Resource,omitempty"` BcsMessage *schedTypes.BcsMessage `json:",omitempty"` OOMKilled bool `json:"OOMKilled,omitempty"` // container exited, whether oom }
BcsContainerInfo only for BcsExecutor
func (*BcsContainerInfo) Update ¶
func (info *BcsContainerInfo) Update(other *BcsContainerInfo)
Update data from other info
type BcsContainerTask ¶
type BcsContainerTask struct { Name string // container name Image string // container image HostName string // container hostname Hosts []string // host:ip pair for /etc/hosts in container Command string // container command Args []string // args for command Env []BcsKV // environments Volums []BcsVolume // host path mount NetworkName string // container network name NetworkIPAddr string // container ip address request ForcePullImage bool // pull image every time OOMKillDisabled bool // OOM kill feature, default is true AutoRemove bool // remove container when exit, default false Ulimits []BcsKV // ulimit for docker parameter ShmSize int64 // docker hostconfig shm size, 1 = 1B Privileged bool // setting container privileged PublishAllPorts bool // publish all ports in container PortBindings map[string]BcsPort // port for container reflection, only useful for docker bridge Labels []BcsKV // label for container Resource *bcstypes.Resource // container resource request LimitResource *bcstypes.Resource // container resource limit ExtendedResources []*comtypes.ExtendedResource // extended resources BcsMessages []*bcstypes.BcsMessage // bcs define message RuntimeConf *BcsContainerInfo // container runtime info HealthCheck healthcheck.Checker // for health check KillPolicy int // kill policy timeout, unit is seconds // container network flow limit args NetLimit *comtypes.NetLimit TaskId string Ipc string // IPC namespace to use }
BcsContainerTask task info for running container
type BcsImage ¶
type BcsImage struct { ID string // image id Repository []string // repository, including tag Created int64 // create time Size int64 // image size }
BcsImage image info from hub
type BcsPort ¶
type BcsPort struct { Name string `json:"name,omitempty"` ContainerPort string `json:"containerPort,omitempty"` HostPort string `json:"hostPort,omitempty"` Protocol string `json:"protocol,omitempty"` HostIP string `json:"hostIP,omitempty"` // use for host has multiple ip address }
BcsPort port service for container port reflection
type ConEventCB ¶
type ConEventCB func(*BcsContainerTask) error
ConEventCB callback for every container status changed
type Container ¶
type Container interface { // RunCommand running command in Container RunCommand(containerID string, command []string) error // UploadToContainer upload file from host to Container UploadToContainer(containerID string, source, dest string) error // ListContainer list all running containner info ListContainer() // CreateContainer create Container with info, after container created, // return container id & container name in BcsContainerInfo. if we need conntainer // running, StartContainer must be call with container id CreateContainer(containerName string, containerTask *BcsContainerTask) (*BcsContainerInfo, error) // StartContainer starting container with container id return by CreateContainer StartContainer(containerID string) error // StopContainer with container name. container will be killed when timeout StopContainer(containerName string, timeout int) error // RemoveContainer remove container by name RemoveContainer(containerName string, force bool) error // KillContainer kill container by name with designate signal KillContainer(containerName string, signal int) error // InspectContainer inspect container by name InspectContainer(containerName string) (*BcsContainerInfo, error) // PullImage pull image from hub PullImage(image string) error // ListImage list all image from local ListImage(filter string) ([]*BcsImage, error) // UpdateResources xxx // update container resources limit // para1: container id // para2: resources,cpu mem UpdateResources(string, *schedTypes.TaskResources) error // CommitImage xxx // commit image // para1: container id // para2: image name CommitImage(string, string) error // RunCommandV2 xxx // exec command RunCommandV2(ops *schedTypes.RequestCommandTask) (*schedTypes.ResponseCommandTask, error) }
Container define interface for operating containers
func NewDockerContainer ¶
NewDockerContainer create DockerContainer manager tool endpoint can be http, https, tcp, or unix domain sock
type DockerContainer ¶
type DockerContainer struct {
// contains filtered or unexported fields
}
DockerContainer implement container interface to handle all operator with docker command line.
func (*DockerContainer) CommitImage ¶
func (docker *DockerContainer) CommitImage(id, image string) error
CommitImage create image from running container
func (*DockerContainer) CreateContainer ¶
func (docker *DockerContainer) CreateContainer(containerName string, containerTask *BcsContainerTask) ( *BcsContainerInfo, error)
CreateContainer Start Container with docker client.
func (*DockerContainer) InspectContainer ¶
func (docker *DockerContainer) InspectContainer(containerName string) (*BcsContainerInfo, error)
InspectContainer inspect container by name
func (*DockerContainer) KillContainer ¶
func (docker *DockerContainer) KillContainer(containerName string, signal int) error
KillContainer kill container by name with designate signal
func (*DockerContainer) ListContainer ¶
func (docker *DockerContainer) ListContainer()
ListContainer list all running containner info
func (*DockerContainer) ListImage ¶
func (docker *DockerContainer) ListImage(filter string) ([]*BcsImage, error)
ListImage list all image from local
func (*DockerContainer) PullImage ¶
func (docker *DockerContainer) PullImage(image string) error
PullImage pull image from hub
func (*DockerContainer) RemoveContainer ¶
func (docker *DockerContainer) RemoveContainer(containerName string, force bool) error
RemoveContainer remove container by name
func (*DockerContainer) RunCommand ¶
func (docker *DockerContainer) RunCommand(containerID string, command []string) error
RunCommand running command in Container
func (*DockerContainer) RunCommandV2 ¶
func (docker *DockerContainer) RunCommandV2(ops *schedTypes.RequestCommandTask) (*schedTypes.ResponseCommandTask, error)
RunCommandV2 v2 version run command
func (*DockerContainer) StartContainer ¶
func (docker *DockerContainer) StartContainer(containerID string) error
StartContainer starting container with container id return by CreateContainer
func (*DockerContainer) StopContainer ¶
func (docker *DockerContainer) StopContainer(containerName string, timeout int) error
StopContainer with container name. container will be killed when timeout
func (*DockerContainer) UpdateResources ¶
func (docker *DockerContainer) UpdateResources(id string, resource *schedTypes.TaskResources) error
UpdateResources update container resource in runtime
func (*DockerContainer) UploadToContainer ¶
func (docker *DockerContainer) UploadToContainer(containerID string, source, dest string) error
UploadToContainer upload file from host to Container
type Pod ¶
type Pod interface { IsHealthy() bool // check pod is healthy Injection() bool // check ip address is injected SetIPAddr(ip string) // set Pod ip address GetIPAddr() string // get pod ip address if exist SetPodID(ID string) // set pod id if needed GetNamespace() string // get namespace, not used now GetNetns() string // get netns path string GetNetworkName() string // get container network name GetNetArgs() [][2]string // get cni plugin args GetPid() int // get network infrastructure container pid GetContainerID() string // get network infrastructure container id GetPodID() string // get pod id GetNetStatus() string // get network ip address information GetPodStatus() PodStatus // pod status, see @PodStatus GetMessage() string // Get status message Init() error // init pod, start network container Finit() error // finit pod, release pod resource Start() error // start all container Stop(graceExit int) // stop all container, graceExit UploadFile(name, source, dest string) error // upload source file to container(name) Execute(name string, command []string) error // execute command in container(name) GetContainers() []*BcsContainerInfo // Get all containers info GetContainerByName(name string) *BcsContainerInfo // Get container by ID // UpdateResources TODO // update container resources limit // para1: container id // para2: resources,cpu mem UpdateResources(string, *schedTypes.TaskResources) error // CommitImage TODO // commit image // para1: container id // para2: image name CommitImage(string, string) error GetContainerTasks() map[string]*BcsContainerTask }
Pod interface for bcs
type PodEventHandler ¶
type PodEventHandler struct { PreStart ConEventCB // call before container start PostStart ConEventCB // call after container start success PreStop ConEventCB // call before container stop, not including failed stop PostStop ConEventCB // call after container stopped, not including failed stop }
PodEventHandler callback collection for pod status changed
type PodStatus ¶
type PodStatus string
PodStatus for imply container status in pod
const ( // PodStatus_UNKNOWN TODO PodStatus_UNKNOWN PodStatus = "unknown" // init status code // PodStatus_INIT TODO PodStatus_INIT PodStatus = "init" // INIT pod, network infrastructure // PodStatus_STARTING TODO PodStatus_STARTING PodStatus = "starting" // pulling images, starting all containers // PodStatus_RUNNING TODO PodStatus_RUNNING PodStatus = "running" // all containers are running // PodStatus_FAILED TODO PodStatus_FAILED PodStatus = "failed" // one container failed // PodStatus_KILLING TODO PodStatus_KILLING PodStatus = "killing" // get kill command, killing all container // PodStatus_KILLED TODO PodStatus_KILLED PodStatus = "killed" // all container killed // PodStatus_FINISH TODO PodStatus_FINISH PodStatus = "finish" // get shutdown command, close all container )