本文整理汇总了Golang中k8s/io/kubernetes/pkg/kubelet/container.Pod.ID方法的典型用法代码示例。如果您正苦于以下问题:Golang Pod.ID方法的具体用法?Golang Pod.ID怎么用?Golang Pod.ID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类k8s/io/kubernetes/pkg/kubelet/container.Pod
的用法示例。
在下文中一共展示了Pod.ID方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: GetPods
// GetPods returns a list containers group by pods. The boolean parameter
// specifies whether the runtime returns all containers including those already
// exited and dead containers (used for garbage collection).
func (r *runtime) GetPods(all bool) ([]*kubecontainer.Pod, error) {
podInfos, err := r.hyperClient.ListPods()
if err != nil {
return nil, err
}
var kubepods []*kubecontainer.Pod
for _, podInfo := range podInfos {
var pod kubecontainer.Pod
var containers []*kubecontainer.Container
podID, podName, podNamespace, err := r.parseHyperPodFullName(podInfo.PodName)
if err != nil {
glog.V(5).Infof("Hyper: pod %s is not managed by kubelet", podInfo.PodName)
continue
}
pod.ID = types.UID(podID)
pod.Name = podName
pod.Namespace = podNamespace
for _, cinfo := range podInfo.PodInfo.Spec.Containers {
var container kubecontainer.Container
container.ID = kubecontainer.ContainerID{Type: typeHyper, ID: cinfo.ContainerID}
container.Image = cinfo.Image
for _, cstatus := range podInfo.PodInfo.Status.Status {
if cstatus.ContainerID == r.buildContainerID(cinfo.ContainerID) {
createAt, err := parseTimeString(cstatus.Running.StartedAt)
if err == nil {
container.Created = createAt.Unix()
}
}
}
_, _, _, containerName, containerHash, err := r.parseHyperContainerFullName(cinfo.Name)
if err != nil {
glog.V(5).Infof("Hyper: container %s is not managed by kubelet", cinfo.Name)
continue
}
container.Name = containerName
hash, err := strconv.ParseUint(containerHash, 16, 64)
if err == nil {
container.Hash = hash
}
containers = append(containers, &container)
}
pod.Containers = containers
kubepods = append(kubepods, &pod)
}
return kubepods, nil
}
示例2: dockerContainersToPod
func dockerContainersToPod(containers []*docker.APIContainers) kubecontainer.Pod {
var pod kubecontainer.Pod
for _, c := range containers {
dockerName, hash, err := ParseDockerName(c.Names[0])
if err != nil {
continue
}
pod.Containers = append(pod.Containers, &kubecontainer.Container{
ID: kubecontainer.ContainerID{"docker", c.ID},
Name: dockerName.ContainerName,
Hash: hash,
Image: c.Image,
})
// TODO(yifan): Only one evaluation is enough.
pod.ID = dockerName.PodUID
name, namespace, _ := kubecontainer.ParsePodFullName(dockerName.PodFullName)
pod.Name = name
pod.Namespace = namespace
}
return pod
}
示例3: GetPods
// GetPods returns a list containers group by pods. The boolean parameter
// specifies whether the runtime returns all containers including those already
// exited and dead containers (used for garbage collection).
func (r *runtime) GetPods(all bool) ([]*kubecontainer.Pod, error) {
podInfos, err := r.hyperClient.ListPods()
if err != nil {
return nil, err
}
var kubepods []*kubecontainer.Pod
for _, podInfo := range podInfos {
var pod kubecontainer.Pod
var containers []*kubecontainer.Container
if !all && podInfo.Status != StatusRunning {
continue
}
podID := podInfo.PodInfo.Spec.Labels[KEY_API_POD_UID]
podName, podNamespace, err := kubecontainer.ParsePodFullName(podInfo.PodName)
if err != nil {
glog.V(5).Infof("Hyper: pod %s is not managed by kubelet", podInfo.PodName)
continue
}
pod.ID = types.UID(podID)
pod.Name = podName
pod.Namespace = podNamespace
for _, cinfo := range podInfo.PodInfo.Spec.Containers {
var container kubecontainer.Container
container.ID = kubecontainer.ContainerID{Type: typeHyper, ID: cinfo.ContainerID}
container.Image = cinfo.Image
for _, cstatus := range podInfo.PodInfo.Status.ContainerStatus {
if cstatus.ContainerID == cinfo.ContainerID {
switch cstatus.Phase {
case StatusRunning:
container.State = kubecontainer.ContainerStateRunning
default:
container.State = kubecontainer.ContainerStateExited
}
// harryz: container.Created is moved to ContainerStatus
// createAt, err := parseTimeString(cstatus.Running.StartedAt)
// if err == nil {
// container.Created = createAt.Unix()
// }
}
}
_, _, _, containerName, _, containerHash, err := r.parseHyperContainerFullName(cinfo.Name)
if err != nil {
glog.V(5).Infof("Hyper: container %s is not managed by kubelet", cinfo.Name)
continue
}
container.Name = containerName
hash, err := strconv.ParseUint(containerHash, 16, 64)
if err == nil {
container.Hash = hash
}
containers = append(containers, &container)
}
pod.Containers = containers
kubepods = append(kubepods, &pod)
}
return kubepods, nil
}