pod运行于Node节点上,若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通。Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。
基于上篇文章《k8s入门系列之集群yum安装篇》的架构,从本文开始进行pod、rc、svc等实际操作以及平时的一些管理,以及记录一些大家都会遇到的坑和解决办法。
1,创建pod。
这里用nginx容器来实验,使用K8S集群创建一个nginx容器,创建的时候可以使用命令行或者yml文件创建,建议都编写yml文件创建(实际生产环境基本都是基于yml来管理):
[root@kube-master-01 yaml]# cat ng-pod.yml --- apiVersion: v1 kind: Pod metadata: name: swh-ng spec: containers: - name: swh-ng #pod名称 image: nginx #镜像名 ports: - containerPort: 80 #容器监听端口号 hostPort: 80 #node监听端口号,对外暴露并提供服务
根据上述ng-pod.yml创建pod:
kubectl create -f ng-pod.yml #创建成功会提示:pod "swh-ng" created
创建后查看pod状态,会发现一直显示ContainerCreating 状态:
[root@kube-master-01 yaml]# kubectl get pod NAME READY STATUS RESTARTS AGE swh-ng 0/1 ContainerCreating 0 6s
查看日志:
[root@kube-master-01 yaml]# kubectl describe pod swh-ng Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request. details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)"
基础镜像不存在,软链接指向文件不存在导致无法拉去基础镜像。
解决办法:
(1) 方法一:yum install *rhsm* -y (可以尝试,网上的解决办法。注意看提示,包建议remove一次后重装,要不然解决不了问题)
(2)方法二:下载rpm包并安装:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
(3)更改基础镜像。更改基础镜像的请求调用地址或镜像种类。
重新创建pod ,可以考虑删除原来pod后重新基于swh-ng.yml重建pod:
[root@kube-master-01 yaml]# kubectl get pod swh-ng -o wide NAME READY STATUS RESTARTS AGE IP NODE swh-ng 1/1 Running 4 20m 172.40.3.4 10.1.14.16
2,验证pod
查看该pod位于node2节点,直接浏览器测试访问node ip地址 10.1.14.16,如果可以看到nginx的欢迎界面,则说明pod创建成功。
也可以从集群中任意一个服务器curl 该node ip地址测试
参考文章:
pod创建:https://www.cnyunwei.cc/archives/1540
基础镜像无法拉取解决办法:https://blog.csdn.net/qq_38695182/article/details/82971114
转载请注明:21运维 » k8s入门系列之pod基础篇