创建pod

创建pod的方式有两种
1.使用命令行进行创建
2.编辑yaml进行创建

服务状态

[root@master ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2024-06-28 09:00:51 CST; 37s ago
     Docs: https://docs.docker.com
 Main PID: 1009 (dockerd)
    Tasks: 15
   Memory: 114.9M
   CGroup: /system.slice/docker.service
           └─1009 /usr/bin/dockerd -H unix://


[root@master ~]# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since Fri 2024-06-28 09:00:59 CST; 25s ago
     Docs: https://kubernetes.io/docs/
 Main PID: 1792 (kubelet)
    Tasks: 28
   Memory: 136.2M
   CGroup: /system.slice/kubelet.service
           ├─1792 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/co...
           └─2074 /opt/cni/bin/calico

docker  kubelet 启动

使用命令行进行创建pod

1.拉取镜像(用nginx实验)

#用docker拉取nginx镜像
[root@master ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest

#查看镜像
[root@master ~]# docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
nginx                                latest              605c77e624dd        2 years ago         141MB

2.创建pod

# run 运行  my-nginx 自定义pod 名称   image 引用的nginx镜像:版本
[root@master ~]# kubectl run my-nginx --image=nginx:latest

#获取一下pod的信息
[root@master ~]# kubectl get po
NAME                        READY   STATUS        RESTARTS   AGE
my-nginx-77ccc6b85f-82fzq   1/1     Running       1          16h
nginx-demo                  1/1     Running       4          27d
nginx-nvbmg                 1/1     Terminating   0          30d
nginx-t5lls                 1/1     Terminating   0          30d

 3.查看某个pod的日志

# logs pod的全称
[root@master ~]# kubectl logs my-nginx-77ccc6b85f-82fzq





/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/06/28 01:02:39 [notice] 1#1: using the "epoll" event method
2024/06/28 01:02:39 [notice] 1#1: nginx/1.21.5
2024/06/28 01:02:39 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2024/06/28 01:02:39 [notice] 1#1: OS: Linux 3.10.0-1160.118.1.el7.x86_64
2024/06/28 01:02:39 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/06/28 01:02:39 [notice] 1#1: start worker processes
2024/06/28 01:02:39 [notice] 1#1: start worker process 30
2024/06/28 01:02:39 [notice] 1#1: start worker process 31
2024/06/28 01:02:39 [notice] 1#1: start worker process 32
2024/06/28 01:02:39 [notice] 1#1: start worker process 33

4.进入pod所创建的容器

# exec -it  
[root@master ~]# kubectl exec -it my-nginx-77ccc6b85f-82fzq -- /bin/bash
root@my-nginx-77ccc6b85f-82fzq:/# 
root@my-nginx-77ccc6b85f-82fzq:/# nginx -v
nginx version: nginx/1.21.5
root@my-nginx-77ccc6b85f-82fzq:/# curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>

 # 列出pod时显示pod IP和pod的节点

[root@master ~]# kubectl get pod -o wide
NAME                        READY   STATUS        RESTARTS   AGE   IP                NODE    NOMINATED NODE   READINESS GATES
my-nginx-77ccc6b85f-82fzq   1/1     Running       1          17h   192.168.166.154   node1   <none> 

5.获取pod节点的详细信息

[root@master ~]# kubectl describe pod my-nginx-77ccc6b85f-82fzq


列出一部分内容
Events:
  Type    Reason          Age                From            Message
  ----    ------          ----               ----            -------
  Normal  SandboxChanged  42m (x2 over 42m)  kubelet, node1  Pod sandbox changed, it will be killed and re-created.
  Normal  Pulling         41m                kubelet, node1  Pulling image "nginx:latest"
  Normal  Pulled          41m                kubelet, node1  Successfully pulled image "nginx:latest"
  Normal  Created         41m                kubelet, node1  Created container my-nginx
  Normal  Started         41m                kubelet, node1  Started container my-nginx


这里是events 下面列出了拉取镜像的内容 成功拉取镜像 已经创建my-nginx容器 并启动它的过程

结束啦啦啦啦啦啦   每天记录一点 学习收获满满

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐