k8s创建pod执行过程(k8s创建configmap)
原标题:k8s创建pod执行过程(k8s创建configmap)
导读:
k8s搭建过程轻量高可用的K8s集群搭建方案:MicroK8s的搭建步骤如下:安装MicroK8s:在Ubuntu环境下,通过命令snap install microk8s快...
k8s搭建过程
轻量高可用的K8s集群搭建方案:MicroK8s的搭建步骤如下:安装MicroK8s:在ubuntu环境下,通过命令snap install microk8s快速安装MicroK8s。国内用户需注意可能对系统做一些额外调整,如启用cgroup,并解决权限问题、组件镜像缺失等常见问题。
配置文件位置和大小,大小建议为16GB。配置CPU核心数为2核,必须为2核,这是运行K8s的最小要求。配置底片,选择虚拟盘,也就是Centos的镜像。当前使用的镜像为CentOS-7-x86_64-minimal-200iso 启动虚拟电脑,然后无脑式往下点,最后配置ROOT 账户的密码,下一步执行安装。
安装后,通过`snap alias`创建kubectl别名,使得操作更加便捷。此外,MicroK8s内置CONTAINERd,降低了资源消耗。了解MicroK8s与其他K8s版本的区别后,我们开始搭建过程。在Ubuntu环境中,先确保基础配置完成,然后通过`snap install microk8s`快速安装。
使用ZeroTier打通云上与本地网络并搭建K8s集群的步骤如下:注册并安装ZeroTier:访问ZeroTier官网注册账户。下载并安装对应操作系统的ZeroTier客户端。创建并加入ZeroTier网络:在ZeroTier管理界面中创建一个网络,并获取网络ID。使用网络ID将云主机和本地Mac mini加入该网络。
Kubernetes-Pod基本概念(六)
1、pod是kubernetes的最小管理单位,它由一个或多个容器组成,构成集群中的基本运行单位。Kubernetes中的POD控制器管理着Pod的创建、更新和删除,确保其在集群中的稳定运行。控制器类型多样,适合不同场景,如ReplicaSet、Deployment、Horizontal Pod Autoscaler(HPA)等,下面将对这些控制器进行详细解析。
2、Pod:Pod是Kubernetes集群中最小的可运行单元。它代表着集群中运行的进程,并能够共享网络和存储资源。一个Pod内部可以同时运行一个或多个容器,通过Pause容器实现容器间的网络共享和存储共享。节点:节点是Kubernetes中的最小计算硬件单元,可以理解为集群中的单个机器。
3、Kubernetes的核心概念Label和Label Selector,是组织和选择集群资源的关键工具。它们为用户提供了元数据标识和分类资源的机制,提升资源管理效率。Label,作为一种标识Kubernetes对象的键值对,用于标记对象属性,如用途、环境等,便于组织和管理。例如,Pod可以被标记为APP: web和environment: production。
4、Pod是Kubernetes的基本计算单元,它将一个或多个容器封装在一起,并共享相同的名称空间和本地网络。Pod中的容器可以互相通信,仿佛它们在同一台机器上,同时保持一定程度的隔离。Pod被用作Kubernetes的复制单元,确保负载均衡和故障恢复。Pod应保持较小的规模,通常只包含一个主进程和紧密耦合的辅助容器。
k8s在创建pod时先创建pause容器,还是先与cni交互执行网络
1、总结,Kubernetes在创建pod时,先启动pause容器以创建命名空间,然后pod中的其他容器共享这个命名空间,实现进程间的隔离和独立封装。通过pause容器的命名空间机制,确保了容器之间的资源隔离和通信隔离,有效管理了容器在集群中的运行。
2、sandbox创建:首先,containerd通过CRI创建sandbox,包含容器的基本信息和配置。网络环境设置:在创建sandbox的过程中,CNI插件负责设置容器的网络环境,包括命名空间、网卡等。容器创建与网络配置:容器创建后,CNI插件执行网络设置,确保每个Pod的网络环境正确配置。
3、编写YAML资源清单:首先,需要编写一个YAML文件,定义Pod的配置信息,包括容器镜像、资源限制、环境变量、存储卷等。使用kubectl Apply命令创建:通过kubectl命令行工具,使用apply命令将YAML文件应用到Kubernetes集群中,Kubernetes会根据定义创建Pod。
4、在Node节点上:先执行kubeadm reset命令重置节点,然后启用IP转发。加入集群:通过kubeadm join命令将node节点加入集群。部署CNI网络插件 在所有节点上:部署CNI网络插件以确保Pod间网络通信。测试集群功能 创建并暴露nginx部署:在集群中创建并暴露一个Nginx部署。
5、Calico+macvlan双网络为实现Calico+macvlan双网络配置,必须创建一个辅助网络,专门用于macvlan。配置时需避免将默认路由设置为macvlan网络,以避免路由冲突。确保`vmultus-cni.io/defaul...`注解设置为`net-calico-2`,而`k8s.vcni.cncf.io/netw...`注解设置为`net-macvlan`。
6、在部署不使用CRI-O的k8s集群,采用kube-ovn网络插件时,需要进行一系列的准备工作和配置。首先,确保加载必要的内核模块并安装ipvsadm。接着,更新yum源,安装Go语言环境,为cri-o的安装做准备。安装cri-o时,从源码包下载并生成默认配置。随后,安装conmon,同样是从源码获取并安装。
【云原生】k8s集群命令行工具kubectl基础操作命令实践详解
Replication Controller 创建 myhello-rc.yaml 文件并写入内容。通常不会单独配置 pod,而是通过副本控制器资源部署 pod。
kubectl是管理Kubernetes集群的命令行工具,它在$HOME/.kube目录下查找名为config的配置文件。若要指定其他kubeconfig文件,可以通过设置KUBECONFIG环境变量或使用--kubeconfig参数。本文将深入探讨Kubernetes中kubectl run的常用命令。kubectl run命令用于创建新的Pod。
在Kubernetes(K8s)环境中,kubectl 是一个强大的命令行工具,用于对集群进行操作和管理。默认情况下,kubectl会在$HOME/.kube目录下查找名为config的配置文件。然而,你也可以通过设置KUBECONFIG环境变量或使用--kubeconfig选项来指定其他kubeconfig文件,以便于更灵活地管理不同的集群配置。
作用:将之前被cordon命令标记为不可调度的节点重新加入服务选择,恢复其正常服务功能。使用场景:当节点维护完成,需要重新加入集群以接收新的Pod调度时,可以使用此命令。它将节点从不可调度状态恢复为可调度状态。
安装kubectl:kubectl是Kubernetes的命令行工具,用于与K8s集群进行交互。在安装kubectl时,建议同时安装zsh自动补全和命令别名,以提高操作效率。安装metricsServer:metricsserver用于采集pod和node的CPU和内存数据,这些数据被kubectl top、dashboard、HPA等依赖。通过访问k8s api,可以看到返回的Json格式数据。