k8s基础知识:镜像下载策略、容器重启策略、资源限制、端口映射

[root@master pod]# cat www.yaml # 指定apiserver版本号 apiVersion: v1 # 指定资源的类型 kind: Pod # 定义源数据信息 metadata: # Pod的名称 name: pod-www # 用户定义资源期望运行的状态 spec: # 指定在worker232的工作节点运行 nodeName: worker232 # 在Pod内运行的容器定义 containers: # 容器的名称 - name: c1 # 镜像名称 image: harbor.shuaige.com/shuaige-linux/alpine:latest # 相当于Dockerfile的ENTRYPOINT指令,指定容器运行的命令 command: ["tail","-f","/etc/hosts"] [root@master pod]# #运行指令 [root@master pod]# kubectl apply -f www.yaml [root@master pod]# #查看pod [root@master pod]# kubectl get pods NAME READY STATUS RESTARTS AGE pod-www 1/1 Running 1 (15h ago) 15h [root@master pod]# [root@master pod]# 

k8s在启动容器时,如何下载镜像的三种策略:

Always: k8s的默认策略,总是去拉取最新的镜像

如果本地镜像存在同名称的tag,其会取出该镜像的RepoDigests(镜像摘要)和远程仓库 的 RepoDigests进行比较
若比较结果相同,则直接使用本地缓存镜像,若比较结果不同,则会拉取远程仓库最新 的镜像

naver: 如果本地有镜像,则尝试启动容器;

如果本地没有镜像,则永远不会去拉取尝试镜像。

IfNotPresent: 如果本地有镜像,则尝试启动容器,并不会去拉取镜像。
如果本地没有镜像,则会去拉取镜像。

root@master pod]# cat www.yaml # 指定apiserver版本号 apiVersion: v1 # 指定资源的类型 kind: Pod # 定义源数据信息 metadata: # Pod的名称 name: pod-www # 用户定义资源期望运行的状态 spec: # 指定在worker232的工作节点运行 nodeName: worker232 # 在Pod内运行的容器定义 containers: # 容器的名称 - name: c1 # 镜像名称 image: harbor.shuaige.com/shuaige-linux/alpine:latest # 镜像的拉取策略 imagePullPolicy: Always # imagePullPolicy: Never # imagePullPolicy: IfNotPresent

Always:
容器退出时,始终重启容器(即创建新容器),默认策略。
Never:
容器退出时,不重启容器(即不创建新容器)。
OnFailure:
当容器异常退出时(kill -9时容器的退出码非0,貌似是137),重启容器(即创建新容器)。
当容器正常退出(docker stop,退出码为0)不重启容器。

#加入文件中 restartPolicy: Always restartPolicy: Never restartPolicy: OnFailure

用于限制Pod,Namespace的资源,比如Pod内的某个容器资源使用cpu,内存等。

 # 配置资源限制 resources: # 指定容器期望资源,若满足不了,则无法完成调度 requests: # 指定内存限制 memory: "200M" # 1core=1000m cpu: "250m" # 指定资源的上限 limits: memory: "500M" # 表示使用1.5core,即1500m cpu: 1.5
 # 指定pod的端口映射信息 ports: # 容器的端口号 - containerPort: 3306 # 容器绑定到宿主机的IP地址,若不写表示"0.0.0.0" hostIP: 10.0.0.233 # 映射的主机端口 hostPort: 13306 # 给服务起名字,要求唯一 name: db # 指定协议 protocol: TCP
[root@master pod]# kubectl apply -f 06-pods-mysql-wordpress.yaml #错误 pod/oldboyedu-ports-02 unchanged The Pod "oldboyedu-dp" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds`, `spec.tolerations` (only additions to existing tolerations) or `spec.terminationGracePeriodSeconds` (allow it to be set to 1 if it was previously negative) core.PodSpec{ ... // 9 identical fields ServiceAccountName: "default", AutomountServiceAccountToken: nil, - NodeName: "workr232", + NodeName: "worker232", SecurityContext: &{}, ImagePullSecrets: nil, ... // 17 identical fields } [root@master pod]# kubectl describe -f 06-pods-mysql-wordpress.yaml #查看 Name: oldboyedu-dp Namespace: default Priority: 0 Node: worker232/10.0.0.232 ..... #省略 QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Pulling 22m kubelet Pulling image "harbor.oldboyedu.com/oldboyedu-wordpress/wordpress:latest" Normal Pulled 22m kubelet Successfully pulled image "harbor.oldboyedu.com/oldboyedu-wordpress/wordpress:latest" in 59.307828ms (59.325623ms including waiting) Normal Created 22m kubelet Created container wp Normal Started 22m kubelet Started container wp [root@master pod]# #最后几行为错误输出 [root@master ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES www-dp 0/1 Terminating 0 12s <none> workr232 <none> <none> [root@master pod]# # 输出同上 [root@master pod]# kubectl describe pod www-dp [root@master pod]# kubectl describe pod/www-dp [root@master pod]# # 连接到指定的容器查看 [root@master231 pod]# kubectl exec -it www-db -- sh # 当一个Pod内只有一个容器时,无需使用-c选项。 [root@master231 pod]# kubectl exec -it www-db -c wp -- bash # 当Pod内有多个容器时,可以使用-c选项连接到指定的容器。若不指定,默认连接到第一个容器。

原文链接:https://blog.csdn.net/2301_76839564/article/details/131235588?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168994567316800182722850%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168994567316800182722850&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-29-131235588-null-null.268%5Ev1%5Ekoosearch&utm_term=docker%E3%80%81wordpress%E3%80%81wordpress%E5%BB%BA%E7%AB%99%E3%80%81wordpress%E4%B8%BB%E9%A2%98%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享