解决镜像下载失败的几种方法
前言 在学习、研究 K8S 的过程中,经常遇到镜像拉取不了的网络问题,这并不是镜像本身的问题,而是国内的“国情”导致无法正常访问墙外资源。 这些镜像有的是 K8S 团队自研的插件,也有一些是爱好者开发的第三方组件,正常来说,他们会存放于 gcr.io 或者 quay.io 中。 gcr.io 是 谷歌的镜像仓库,是禁止访问的,而 quay.io 是 RedHat 的镜像仓库,可以访问,但速度较慢。 那如何应对这种网络问题呢? 现成的镜像代理仓库k8s.gcr.io 源代理仓库ctr images tag k8s.m.daocloud.io/scheduler-plugins/kube-scheduler:v0.24.9 这是 gcr.io/google-containers 的仓库,使用阿里云镜像 123k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0#...
K8S容器退出状态码Exit-Code分析
转自: https://blog.csdn.net/hakula007/article/details/125786395 Pod status 状态解释...
Kubernetes权限管理RBAC详解
摘自: https://blog.csdn.net/qq_35745940/article/details/120693490 一、简介 kubernetes 集群相关所有的交互都通过apiserver来完成,对于这样集中式管理的系统来说,权限管理尤其重要,在1.5版的时候引入了RBAC(Role Base Access Control)的权限控制机制。 启用RBAC,需要在 apiserver 中添加参数–authorization-mode=RBAC,如果使用的kubeadm安装的集群,1.6+版本都默认开启了RBAC。 1$ grep -C3 'authorization-mode' /etc/kubernetes/manifests/kube-apiserver.yaml API...
NodeLocal DNSCache的使用
参看此篇章前可先查看记录一次k3s网络DNS问题排查篇 参考:...
etcdctl的安装和使用
使用 etcdctletcdctl 为 etcd 提供了一个 CLI。 如果您想在安装带有嵌入式 etcd 的 K3s 后使用 etcdctl,请使用官方文档安装 etcdctl。 123VERSION="v3.5.0"curl -L https://github.com/etcd-io/etcd/releases/download/${VERSION}/etcd-${VERSION}-linux-amd64.tar.gz --output etcdctl-linux-amd64.tar.gztar -zxvf etcdctl-linux-amd64.tar.gz --strip-components=1 -C /usr/local/bin etcd-${VERSION}-linux-amd64/etcdctl 然后开始使用带有适当 K3s 标志的 etcdctl 命令: 1234etcdctl --endpoints="https://127.0.0.1:2379"...
job和cronjob的使用
job 主要用于负责**批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)**任务。Job特点如下: 当Job创建的pod执行成功结束时,Job将记录成功结束的pod数量 当成功结束的pod达到指定的数量时,Job将完成执行 关于重启策略设置的说明: 如果指定为OnFailure,则job会在pod出现故障时重启容器,而不是创建pod,failed次数不变 如果指定为Never,则job会在pod出现故障时创建新的pod,并且故障pod不会消失,也不会重启,failed次数加1 job.yaml 12345678910111213141516171819202122232425262728293031323334apiVersion: batch/v1kind: Jobmetadata: name: job labels: app: jobspec: # 允许使用selector(默认是false) manualSelector: true # 指定job在任一时刻应该并发运行Pods的数量。默认值: 1 ...
k8s command & args
在describe或kubelet日志中没有明确记录错误原因,基本都是因为command命令不合法导致 命令和参数说明:command 和 args 分别对应于 Dockerfile 中的 ENTRYPOINT 和 CMD。command 表示要执行的命令,args 是传递给该命令的参数。 如果command和args均没有写,那么用Dockerfile的配置。如果command写了,但args没有写,那么Dockerfile默认的配置会被忽略,执行输入的command(不带任何参数,当然command中可自带参数)。如果command没写,但args写了,那么Dockerfile中配置的ENTRYPOINT的命令行会被执行,并且将args中填写的参数追加到ENTRYPOINT中。如果command和args都写了,那么Dockerfile的配置被忽略,执行command并追加上args参数。比如: command:/test.sh,p1,p2args:...
k8s-configmap配置管理
configmap简介 在生产环境中经常会遇到需要修改配置文件的情况,传统的修改方式不仅会影响到服务的正常运行,而且操作步骤也很繁琐。为了解决这个问题,kubernetes项目从1.2版本引入了ConfigMap功能,用于将应用的配置信息与程序的分离。 ConfigMap是一种API对象,用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigMap不可以跨命名空间使用 ConfigMap必须要在pod/deployment创建之前就得存在 ConfigMap 在设计上不是用来保存大量数据的。在 ConfigMap 中保存的数据不可超过 1 MiB。如果你需要保存超出此尺寸限制的数据,你可能希望考虑挂载存储卷 或者使用独立的数据库或者文件服务。 ConfigMap创建通过文件创建configmap1kubectl create configmap my-config --from-file=key1=test1.txt ...
k8s-secret安全加密
Secret介绍 k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息。它把 Pod 想要访问的加密数据存放到 Etcd 中。然后用户就可以通过在 Pod 的容器里挂载 Volume 的方式或者环境变量的方式访问到这些 Secret 里保存的信息了。 Secret有三种类型Opaque 1base64 编码格式的 Secret,用来存储密码、密钥等;但数据也可以通过base64 –decode解码得到原始数据,所有加密性很弱。 Service Account(暂时没用过) 1用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/secrets/kubernetes.io/serviceaccount 目录中。 kubernetes.io/dockerconfigjson 1用来拉取私有库镜像的认证信息(比如nexus或者habor等) Opaque类型 base64加密(--wrap=0表示不换行输出)echo -n 'xiaowu' | base64...