云原生

18-Pods

2021-12-22  本文已影响0人  紫荆秋雪_文

一、Pods

Pod是一组容器;这些容器共享存储、网络以及怎样运行这些容器的声明。Pod 中的内容总是并置的并且一同调度,在共享的上下文中运行。Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器,这些容器是相对紧密的耦合在一起的。

Pod(容器组)是一个k8s中一个抽象的概念,用于存放一组 Container (可包含一个或多个 Container 容器,即图上正方形),以及这些 Container 的一些共享资源

二、Node

Pod(容器组)总是在 Node(节点)上运行。Node(节点)是kubernetes集群中的计算机,可以是虚拟机或物理机。每个Node都由 master 管理。一个Node可以有多个Pod,kubernetes master 会根据每个 Node 上可用资源的情况,自动调度 Pod 到最佳的 Node上

1、每个Node(节点)至少运行

kubeadm init \
--apiserver-advertise-address=172.20.173.235 \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.21.0 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.169.0.0/16

三、部署应用

1、创建一次部署工作,带有自愈机制

kubectl create --help
kubectl create deployment 这次部署的名称 --image=nginx
kubectl create deployment my-nginx --image=nginx
kubectl create deployment my-nginx --image=nginx --replicas=3
kubectl create deployment my-nginx --image=nginx --port=80

Department(部署)的意义

四、故障排除

1、显示资源列表

kubectl get 资源类型
kubectl get deployments

2、获取 Deployments 类型资源列表

image.png

3、获取 Pod 类型资源列表

kubectl get pod
image.png

4、获取 node 类型资源列表

kubectl get node
image.png

5、获取 命名空间下的 类型资源列表

5.1、查看全部命名空间

kubectl get deployments -A
或
kubectl get deployment --all-namespaces
image.png

5.2、查看特定命名空间

kubectl get deployment -n default
image.png

6、不是所有资源都有命名空间

#  在命名空间里
kubectl api-resources --namespaced=true

#  不在命名空间里
kubectl api-resources --namespaced=false

7、显示有关资源的详细信息

kubectl describe pod my-nginx
或者
#  查看名称为 my-nginx 的 deployment 的信息
kubectl describe deployment my-nginx

8、查看 Pod 中的容器的打印日志

kubectl logs Pod名称
kubectl logs my-dep-5b7868d854-6j2zl

9、进入Pod

kubectl exec -it my-dep-5b7868d854-6j2zl /bin/bash
# v1.21.0 推荐使用下面命令
kubectl exec -it my-dep-5b7868d854-6j2zl -- /bin/bash

五、小结

kubectl create 资源 #创建任意资源
kubectl create deploy #创建部署,拥有【自愈功能】
kubectl run #只创建一个Pod,不具有 【自愈功能】
kubectl get 资源名(node/pod/deploy) -n xxx(指定名称空间,默认是default) #获取资源
kubectl describe 资源名(node/pod/deploy) xxx #描述某个资源的详细信息
kubectl logs 资源名 ##查看日志
kubectl exec -it pod名 -- 命令 #进pod并执行命令
kubectl delete 资源名(node/pod/deploy) xxx #删除资源

上一篇下一篇

猜你喜欢

热点阅读