k8s入门之pod

2022年5月18日09:59:50

pod是k8s项目中的最小编排单位,它是运行中的一组(一个或多个)容器,这些容器共享存储、网络、调度等资源,pod是一个逻辑概念,同一个名称空间下不同pod可以通过ip互相访问。

k8s入门之pod

一、通过命令行方式管理

1.创建

在dev名称空间下创建名称为mynginx的pod,如果不指定-n参数,则默认创建在default名称空间下

kubectl run mynginx --image=nginx -n dev

2.查看dev名称空间下所有pod的简单信息

kubectl get pod -n dev

创建pod需要时间,尤其是节点上没有该镜像时,还需要下载镜像,可以看到pod的Status状态会随着时间而改变,最后变成Running表示pod启动成功
k8s入门之pod

k8s入门之pod

3.查看dev名称空间下所有pod的详细信息

kubectl get pod -n dev -owide --show-labels

结果截图如下

k8s入门之pod

NODE:表示该pod被调度了哪个worker节点上

IP:k8s会为每个pod分配一个ip,集群中的任意一个机器以及任意的应用都能通过此ip来访问这个Pod

在master节点上可以通过curl ip访问pod

# 默认是80端口,所以访问的是pod中的nginx容器
curl 10.244.218.1

4.根据标签检索pod

kubectl get pod -n dev -owide --show-labels -l app=nginx

5.查看pod的描述信息

kubectl describe pod mynginx -n dev

k8s入门之pod

其中Events事件可以查看到pod被创建的详细过程

6.查看Pod的运行日志

kubectl logs mynginx -n dev

k8s入门之pod

7.进入pod容器

kubectl exec -it mynginx /bin/bash -n dev

更改nginx容器的index.html内容

echo "hello,pod" >> /usr/share/nginx/html/index.html

再次访问mynginx

curl 10.244.218.1

可以看到index.html首页内容已经发生了变化

k8s入门之pod

8.监控pod状态命令

使用k8s的-w参数

kubect get pod -n dev -w

使用linux命令

watch -n 1 kubectl get pod -n dev

9.删除pod

kubectl delete pod mynginx -n dev

二、使用yaml管理

1.在pod里部署两个容器

一个pod里面不能部署相同镜像的容器,端口冲突

(1)创建yaml文件

vi pod-nginx-tomcat.yaml

(2)编写pod文件内容,定义两个容器,一个为nginx,一个为tomcat

apiVersion: v1
kind: Pod
metadata:
  labels:
    web: server
  name: web-server
  namespace: dev
spec:
  containers:
  - image: nginx
    name: nginx
  - image: tomcat:9.0

(3)使用kubectl apply创建pod

kubectl apply -f pod-nginx-tomcat.yaml

(4)自动监控创建过程

kubectl get pod -n dev -w

k8s入门之pod

2.查看pod描述

kubectl describe pod web-server -n dev

k8s入门之pod

3.在节点上访问pod

(1)查看pod的ip

kubectl get pod -n dev -owide

k8s入门之pod

(2)通过此ip访问pod中的nginx容器

curl 10.244.218.2

k8s入门之pod

(3)通过此ip访问pod中的tomcat容器

curl 10.244.218.2:8080

k8s入门之pod

4.进入pod里面访问服务

(1)进入pod里面的nginx容器

kubectl exec web-server --container nginx -it /bin/bash -n dev

(2)在容器内,以下命令均可访问,证明了pod里网络共享

curl localhost
curl localhost:8080
curl 10.244.218.2
curl 10.244.218.2:8080
  • 作者:景少
  • 原文链接:https://www.cnblogs.com/chuandao/p/16163649.html
    更新时间:2022年5月18日09:59:50 ,共 1646 字。