首页 > 其他分享 >k8s_kind-创建pod-拉取私有仓库镜像

k8s_kind-创建pod-拉取私有仓库镜像

时间:2023-12-12 20:00:14浏览次数:46  
标签:kubectl kind name -- 拉取 pod docker

kind本地配置

 查看您创建的所有集群,您可以使用该kind get clusters 命令
 在kubernetes内使用私有镜像仓库之前,我们需要先有一个私有镜像仓库,并保证这个仓库是可用的
    检查私有镜像仓库是否可用
   kind create cluster --name datapre
 ## 以将本机镜像导入到 Kind 集群中去
  [root@docker ~]# kind load docker-image --nodes kind-control-plane 10.*.*.*:*/roloid:latest

   kindest/node 镜像的版本,一般与 K8S 发布的版本一一对应
      https://hub.docker.com/r/kindest/node/tags
kind的配置文件
方式
 --config 参数传递配置文件给 kind,配置文件可修改的内容主要有 role 和 节点使用的镜像
 
 创建一个 test1.yaml 的文件,内容如下
     kind: Cluster
     # 一共两个节点,一个主节点,一个从节点
     apiVersion: kind.x-k8s.io/v1alpha4
     nodes:
     - role: control-plane  # 主节点
     - role: worker  # 从节点
 kind create cluster --config=test2.yaml --name=my-cluuster2 		
 创建高可用的 k8s 集群,创建一个 test2.yaml 文件,代码如下
 一共六个节点,
 三个 control-plane 节点,三个 workers 节点	
###
 kind create cluster  --name=datepre
 kind  get  clusters	
  kubectl cluster-info --context kind-kind
  kubectl get nodes	
	
 0.docker pull   到本地
 1.kind load docker-image 10.*.*.*:*/roloid:latest  --name datepre
   kind load docker-image --nodes datepre-control-plane 10.*.*.*:*/roloid:latest --name datepre
   kind load docker-image --nodes kind-control-plane 10.*.*.*:*/roloid:latest --name kind
 2.	
	
当有多个集群的时候,我们可以使用 kubectl 来切换要管理的集群
设置新建的k8s集群从私有http仓库加载镜像	

K8S

  命令行操作
  使用YAML创建配置文件 YAML是一种人类可读的、专门用于配置信息的文本格
     YAML是JSON的超集,这意味着任何有效的JSON文件也是有效的YAML文件 maps of lists和lists of maps

kubectl apply -f (echo 'apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: private-reg-container
    image: 10.*.*.*:*/roloid:latest
  imagePullSecrets: 
  - name: regcred' )
	
也可以创建成文件-yaml
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: 10.*.*.*:*/roloid:latest
	imagePullPolicy: IfNotPresent
    ports:
      - containerPort: 80

容器编排YAML

###方式一:
	kubectl apply -f roloid.yaml 命令应用该 YAML 文件,Kubernetes 会自动创建相关的 Pod 对象,并将镜像加载到集群
  使用xxx.yaml文件,使用kubectl create -f xxx.yaml 来创建一个新的Pod
   ## 文件格式检查
   kubectl apply -f mysql-rc.yaml
### 方式二
  现在大多数的kubernetes集群,是使用helm来进行镜像包管理的
  
 创建应用时,当Node节点从私有仓库Pull镜像时,需要有相应凭证,才能使用私有Docker仓库  
   从私有仓库拉取镜像 | Kubernetes
        ImagePullSecrets 是一个在 Kubernetes 中用于授权拉取私有镜像的字段。
   	     它是一个列表,包含一个或多个令牌,用于认证访问私有镜像仓库	  
           insecureLocalRegistryPort
           registry.insecureRegistries
   		
   	k8s的docker registry secret中,保存的是docker的用户名、密码的信息,并且是使用加密的方式进行保存的
       imagePullSecrets:
           - name: pers-registry-secret-name

secret

    kubectl create secret docker-registry pers-registry-secret-name --docker-server=10.*.*.*:* --docker-username=admin --docker-password=123456 
      secrets为刚刚创建的秘钥,image为刚刚推送到私人仓库的image
	kubectl delete secret pers-registry-secret-name
	kubectl create -f  secret.yaml
	
	kubectl get secret

pod

 kubectl get pods 
 kubectl describe pods/my-pod 
 kubectl describe pod  my-pod 
 Pod是Kubernetes管理的最小运行单元 一个Pod规定了其能够使用的硬件资源,达到隔离的作用	
     Container运行在Pod中,多个紧密相关联的Container,一般会让他们运行在同一个Pod
 kubectl delete  pods/my-pod  
 kubectl describe pod  my-pod 
##进入pod中的busybox容器,查看文件内容
# 补充一个命令: kubectl exec  pod名称 -n 命名空间 -it -c 容器名称 /bin/sh  在容器内部执行命令 
	 kubectl exec my-pod -it  -c my-container /bin/bash  或者 kubectl exec my-pod -it  -c my-container /bin/sh

## 强大的 kubectl debug 命令
####pod 状态
 Pending  Running   Succeeded  Failed  Unknown	
yaml文件
    command: ["/bin/sh","-c","while true;do /bin/echo $(date +%T);sleep 60; done;"]
    env: # 设置环境变量列表
    - name: "username"
      value: "admin"
    - name: "password"
limits:用于限制运行时容器的最大占用资源,当容器占用资源超过limits时会被终止,并进行重启
requests :用于设置容器需要的最小资源,如果环境资源不够,容器将无法启动
可以通过上面两个选项设置资源的上下限	 	 
容器探测  liveness probes:存活性探针  readiness probes:就绪性探针
     livenessProbe 决定是否重启容器,readinessProbe 决定是否将请求转发给容器。
钩子函数: 钩子函数能够感知自身生命周期中的事件,并在相应的时刻到来时运行用户指定的程序代码 		 

kubectl 帮助系统

  在这里,可通过一个命令来查看每种资源的可配置项
      kubectl explain 资源类型         查看某种资源可以配置的一级属性
      kubectl explain 资源类型.属性     查看属性的子属性 
	      kubectl explain pod
		  kubectl explain pod.metadata
          kubectl explain pod.spec.containers	  
    busybox并不是一个程序,而是类似于一个工具类的集合
	   拉取 BusyBox 映像,运行如下命令 $ sudo docker pull busybox
	Busybox容器在K8S中主要用于临时调试和测试目的,并不适合用作生产环境中的主要容器。
	   在生产环境中,应使用包含所需软件的正式镜像来创建K8S Pod	

标签:kubectl,kind,name,--,拉取,pod,docker
From: https://www.cnblogs.com/ytwang/p/17897696.html

相关文章

  • Rocky Linux 9 安装 Podman
    1、安装Podmandnf-yinstallpodman2、配置镜像加速和私有镜像仓库#vim/etc/containers/registries.confunqualified-search-registries=["docker.io"][[registry]]prefix="docker.io"insecure=falseblocked=falselocation="docker.io"......
  • shell脚本模板-从git拉取代码并打包部署
    source/etc/profile.~/.bash_profile#拉取能耗后端代码cd/usr/local/testmvncleanecho-e"从git华为云拉取后端代码"#首次clonegitpulltest.gitecho-e"从git华为云代码拉取完成"#工程打包echo-e"开始打jar包"mvnpackage-Dmaven.test.skip=true#删除原来的jar包rm......
  • 内核维护者手册 - 创建拉取请求【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/maintainer/pull-requests.html创建拉取请求本章描述了维护者如何创建并提交拉取请求给其他维护者。这对于将一个维护者的更改传输到另一个维护者的树中非常有用。这份文档是由TobinC.Harding(当时并不是一位经验丰富的维护者)根据Greg......
  • 内核维护者手册 - 处理混乱的拉取请求差异统计【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/maintainer/messy-diffstat.html处理混乱的拉取请求差异统计子系统维护者通常在将工作发送到上游的过程中使用gitrequest-pull命令。通常,结果包括一个漂亮的差异统计,显示将要修改的文件以及每个文件将被修改的程度。然而,偶尔会出现一个......
  • POD类型
    文章参考:爱编程的大丙(subingwen.cn)1.POD概述1.1意义POD:是plainolddata的缩写,即普通的旧数据。POD通常用于说明一个类型的属性,尤其是用户自定义类型的属性,具体来说它是指没有使用面向思想来设计的类/结构体。POD含义为:Plain:表示是一个普通的类型。(说明支持静态初始......
  • How to connect two pairs of AirPods to one phone simultaneously
    TechStreamingHomeKitchenHealthStyleBeautyGiftsDealsMore REVIEWS  TECHHowtoconnecttwopairsofAirPodstoonephonesimultaneouslyWrittenby AbigailAbesamisDemarest and DevonDelfino; editedby ElenaMatarazzo Updated......
  • SAP数据一键拉取!利用零代码ETL工具快速实现数据同步
    当我们谈到SAP数据读取以及提取、转换、加载(ETL)工作时,选择适当的方法和工具对于企业来说至关重要。本文将为您介绍如何通过SAP函数读取数据,并推荐一些强大的ETL工具,以帮助您更好地处理和整合SAP数据。如何解锁SAP数据的力量?SAP系统在现代企业中扮演着关键的角色,管理着财务、供......
  • 拉取镜像代码
    #检测是否含有yq命令echo-e"正在将内容输出至$Images_File文件中,请稍等..."#获取Harbor中所有的项目(Projects)Project_List=$(curl-u${Harbor_User}:${Harbor_Passwd}-H"Content-Type:application/json"-XGET"${Harbor_Schema}://${Harbor_Address}/api/v2.0/......
  • 从master拉取代码,新建分支,将新建分支推送到远程
    例如master分支为https://xxx.git克隆master分支gitclonehttps://xxx.git进入项目,查看项目所在的分支gitbranch-a 本地新建分支ex-qiuxie058,将远程master的代码同步到ex-qiuxie058gitcheckout-bex-qiuxie058origin/master查看操作后的......
  • 修改k8s节点上的pod数
    测试环境是k8s1.25查看kubelet配置文件 查看/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 本次测试是在/var/lib/kubelet/kubeadm-flags.env中添加了参数--max-pods=200,然后重启kubelet 验证使用命令kubectldescribenodenode1|greppod查看pod数下次......