学习内容:k8s详细教程-调整版/k8s详细教程.md · yooome/LearningNotes - Gitee.com
Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。
Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。
1、创建
[root@master01 4.1]# kubectl create ns dev
namespace/dev created
[root@master01 4.1]#
# --image=镜像:版本
# --port=指定端口
# --namespace=指定namespace
[root@master01 4.1]# kubectl run nginx --image=nginx:latest --port=80 --namespace dev
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx created
[root@master01 4.1]#
2、查看pod信息
[root@master01 4.1]# kubectl get pods -n dev
NAME READY STATUS RESTARTS AGE
nginx-dd6b5d745-46gb4 1/1 Running 0 16s
[root@master01 4.1]#[root@master01 4.1]# kubectl describe pod nginx -n dev
Name: nginx-dd6b5d745-46gb4
Namespace: dev
Priority: 0
Node: node02/192.168.254.176
Start Time: Mon, 05 Dec 2022 23:15:00 +0800
Labels: pod-template-hash=dd6b5d745
run=nginx
Annotations: <none>
Status: Running
IP: 10.244.2.2
IPs:
IP: 10.244.2.2
...
[root@master01 4.1]#
3、访问pod
[root@master01 4.1]# kubectl get pods -n dev -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-dd6b5d745-46gb4 1/1 Running 0 60s 10.244.2.2 node02 <none> <none>
[root@master01 4.1]# curl http://10.244.2.2:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@master01 4.1]#
4、删除pod
[root@master01 4.1]# kubectl delete pod nginx-dd6b5d745-46gb4 -n dev
pod "nginx-dd6b5d745-46gb4" deleted
# 此时,显示删除Pod成功,但是再查询,发现又新产生了一个
[root@master01 4.1]# kubectl get pods -n dev
NAME READY STATUS RESTARTS AGE
nginx-dd6b5d745-x48rj 1/1 Running 0 26s
# 这是因为当前Pod是由Pod控制器创建的,控制器会监控Pod状况,一旦发现Pod死亡,会立即重建
# 此时要想删除Pod,必须删除Pod控制器
# 先来查询一下当前namespace下的Pod控制器
[root@master01 4.1]# kubectl get deploy -n dev
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 2m37s
# 接下来,删除此PodPod控制器
[root@master01 4.1]# kubectl delete deploy nginx -n dev
deployment.apps "nginx" deleted
[root@master01 4.1]# kubectl get pods -n dev
No resources found in dev namespace.
[root@master01 4.1]#
5、配置操作
[root@master01 4.2]# cat pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: dev
spec:
containers:
- image: nginx:latest
name: pod
ports:
- name: nginx-port
containerPort: 80
protocol: TCP
[root@master01 4.2]# kubectl create -f pod-nginx.yaml
pod/nginx created
[root@master01 4.2]# kubectl get pod -n dev
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 17s
[root@master01 4.2]# kubectl delete -f pod-nginx.yaml
pod "nginx" deleted
[root@master01 4.2]#