您的位置: 首页 - 站长

dedecms网站模板免费下载周口河南网站建设

当前位置: 首页 > news >正文

dedecms网站模板免费下载,周口河南网站建设,Soho外贸常用网站,外贸网站官网怎么做文章目录 介绍Kubernetes 核心组件k8s安装环境安装组件 常用命令测试1. 创建一个测试应用程序2. 检查 Pod 是否运行 3. 暴露应用让外部访问4. 查看服务的暴露端口5. 访问 nginx 服务6. 验证节点调度 如有错误#xff0c;敬请指针#xff0c;谢谢! 介绍 Kubernetes#xff0… 文章目录 介绍Kubernetes 核心组件k8s安装环境安装组件 常用命令测试1. 创建一个测试应用程序2. 检查 Pod 是否运行 3. 暴露应用让外部访问4. 查看服务的暴露端口5. 访问 nginx 服务6. 验证节点调度 如有错误敬请指针谢谢! 介绍 Kubernetes是一个由Google开源的容器集群管理系统旨在自动化部署、扩展和管理容器化应用程序。 Kubernetes 核心组件 ● PodKubernetes 中最小的可部署单位 表示一个或多个紧密相关的容器的集合。Pod 中的容器共享网络和存储资源并且总是一起部署、调度和管理 ● NodeKubernetes 集群中的一台物理或虚拟机器用于运行 Pod。一个集群由多个节点组成。 ● 容器: 实际运行应用程序的单位 ● Service为一组 Pod 提供稳定的网络服务。通过 ServicePod 可以动态扩展而不影响客户端的访问。 ● Namespace用于对资源进行逻辑隔离可以用于区分不同的环境或团队。 ● Deployment管理 Pod 的声明性更新负责管理应用的版本、扩展和滚动更新。确保指定数量的 Pod 副本始终在运行。这意味着如果某个 Pod 出现故障或被删除Deployment 会自动创建新的 Pod 来替代它。 持滚动更新功能允许你逐步升级应用程序的版本 。 ● YAML 文件是用来定义和创建 Deployment 的配置文件而 Deployment 本身是 Kubernetes 中负责实际管理应用程序的控制器。 包括要部署的应用镜像、Pod 副本数量、资源限制、调度策略等。 ● 通过 YAML 文件创建 Deployment你使用 kubectl apply -f .yaml 命令将 YAML 文件提交给 KubernetesKubernetes 会根据 YAML 文件的定义创建并管理相应的 Deployment 对象。 ● Deployment 管理 PodKubernetes 中的 Deployment 负责管理 Pod 的生命周期包括创建、删除和更新 Pod。 节点与 Pod 的关系类似于服务器与应用程序的关系一个服务器节点可以运行多个应用程序Pod而每个应用程序Pod可以包含多个进程容器。 k8s安装 环境 我们需要准备一台 Ubuntu 20.04 服务器作为主节点控制平面并准备多台 Ubuntu 20.04 服务器作为工作节点Worker Nodes。确保服务器已经安装了 Ubuntu 20.04 操作系统并更新到了最新版本。 1.1更新系统 首先确保系统是最新的。 sudo apt update sudo apt upgrade -y 1.2 关闭 Swap Kubernetes 需要关闭 Swap 以正常工作。 sudo swapoff -a #修改/etc/fstab注释掉swap那行持久化生效 sudo vi /etc/fstab 1.3确保每个节点有唯一的主机名并且可以通过主机名解析彼此。 在宿主机分别设置主机名k8s-masterk8s-node01 sudo vim /etc/hostname hosts设置 sudovim /etc/hosts #添加内容 192.168.47.138 k8s-master 192.168.47.137 k8s-node01 1.4确保时区和时间正确 时区设置 sudo timedatectl set-timezone Asia/Shanghai #同时使系统日志时间戳也立即生效 sudo systemctl restart rsyslog 安装组件 1更改docker默认驱动为systemd 为防止初始化出现一系列的错误请检查docker和kubectl驱动是否一致否则kubectl没法启动造成报错。版本不一样docker有些为cgroupfs而kubectl默认驱动为systemd所以需要更改docker驱动。 可查看自己docker驱动命令 sudo docker info|grep Driver更改docker驱动编辑 /etc/docker/daemon.json (没有就新建一个添加如下启动项参数即可 #编辑创建文件 sudo vim /etc/docker/daemon.json #添加内容 {exec-opts: [native.cgroupdriversystemd] }重启docker sudo systemctl restart docker.service 2更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包 安装软件包以允许apt通过HTTPS使用存储库已安装软件的可以忽略 sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl执行第一条命令时候报错 执行以下 sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod ar /etc/apt/keyrings/docker.asc# Add the repository to Apt sources: echo \deb [arch\((dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \\)(. /etc/os-release echo $VERSION_CODENAME) stable | \sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt-get update发现docker报错解决了还有这报错 错误:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease 无法发起与 packages.cloud.google.com:443 (2404:6800:4012:4::200e) 的连接 - connect (101: 网络不可达) 无法连接上 packages.cloud.google.com:443 (142.250.217.110)。 - connect (111: 拒绝连接) 正在读取软件包列表… 完成 W: 无法下载 https://apt.kubernetes.io/dists/kubernetes-xenial/InRelease 无法发起与 packages.cloud.google.com:443 (2404:6800:4012:4::200e) 的连接 - connect (101: 网络不可达) 无法连接上 packages.cloud.google.com:443 (142.250.217.110)。 - connect (111: 拒绝连接) 从阿里云的 Kubernetes 镜像源安装 Kubernetes 组件。这包括设置必要的软件源、添加签名密钥、更新索引并最终安装 kubelet、kubeadm 和 kubectl以便你可以设置和管理 Kubernetes 集群。 apt-get update apt-get install -y apt-transport-https curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/Release.key |gpg –dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo deb [signed-by/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/ / |tee /etc/apt/sources.list.d/kubernetes.list apt-get update apt-get install -y kubelet kubeadm kubectl常用命令 kubectl get node 是用来查看 Kubernetes 集群中所有节点的状态信息
kubectl get pods 验证 Pod 状态:
kubectl get deployments 查看所有的deployments kubectl get deployments –all-namespaces kubectl delete pod pod-name 删除指定pod kubectl delete pods –all 删除所有pod kubectl delete pods –all -n namespace 删除命名空间的所有pod kubectl delete po pod名称 –force –grace-period0 -n 名称空间 强制删除pod速度比较快 kubectl delete pods –all –grace-period0 –forcekubectl logs d10001 查看pod日志 kubectl describe pod pod-name 查看 Kubernetes Pod 的详细信息 kubectl create deployment nginx –imagenginx 创建一个新的 Deployment让 Kubernetes 部署一个基于 nginx 镜像的应用程序这个应用会被分配到集群中的工作节点运行 kubectl get services 查看 Kubernetes 集群中所有 Service 的命令 kubectl apply -f your-pod-definition.yaml 应用 YAML 配置:
kubectl exec -it d10001 – /bin/sh 进入k8s管理的docker测试

  1. 创建一个测试应用程序 部署一个简单的 nginx 应用程序Kubernetes 会把它调度到工作节点上运行 执行以下命令创建 nginx 部署 kubectl create deployment nginx –imagenginx创建一个新的 Deployment让 Kubernetes 部署一个基于 nginx 镜像的应用程序这个应用会被分配到集群中的工作节点运行。 nginx 是 Deployment 的名称 –imagenginx 是 Docker Hub 上的 nginx 官方镜像 . 该行命令执行后 Deployment 会根据指定的镜像nginx创建一个或多个 Pod。这些 Pod 将运行 nginx 容器并绑定到集群中的节点上。 使用 kubectl create deployment 命令创建 Deployment 时 即使你没有手动编写 YAML 文件Kubernetes 仍然会根据默认参数来配置和管理资源。类似下
    apiVersion: apps/v1 # API 版本指定使用 apps/v1 API 版本来创建 Deployment 对象 kind: Deployment # 资源类型Deployment 控制器用于管理应用程序的副本 metadata:name: nginx # Deployment 的名称这里是 nginx spec:replicas: 1 # 希望运行的 Pod 副本数量这里指定 1 个副本,一个pod类似于一个应用程序selector:matchLabels:app: nginx # 标签选择器用于匹配 Pod 的标签确保 Deployment 管理正确的 Podstemplate:metadata:labels:app: nginx # Pod 的标签用于标识 Pods使其与 Deployment 匹配spec:containers:- name: nginx # 容器的名称这里是 nginximage: nginx:latest # 使用的容器镜像这里是 nginx:latestports:- containerPort: 80 # 容器监听的端口号这里是 80
  2. 检查 Pod 是否运行 部署完 nginx 之后你需要确认 Pod运行中的应用实例是否正常启动。 kubectl get pods如果一切正常你应该看到类似下面的输出显示 Pod 处于 Running 状态 这说明 nginx 应用()已经成功运行在集群的某个节点上。
  3. 暴露应用让外部访问 创建一个 Kubernetes Service 来暴露这个 nginx 应用让你能够从外部访问它。 执行以下命令创建一个 NodePort 类型的服务 kubectl expose deployment nginx –typeNodePort –port80这条命令会创建一个 NodePort 服务使得集群外部的用户可以通过 Kubernetes 节点worker节点的 IP 和一个随机分配的端口来访问 nginx。
  4. 查看服务的暴露端口 执行以下命令查看服务的详细信息 kubectl get services会看到类似下面的输出 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx NodePort 10.104.142.159 none 80:32481/TCP 2m5. 访问 nginx 服务 现在可以从命令行通过 curl 访问 nginx。假设节点的 IP 地址是 192.168.74.129可以通过如下命令访问 curl http://192.168.74.129:32481如果一切正常你会看到 nginx 默认的欢迎页面的 HTML 内容。
  5. 验证节点调度 通过以下命令查看 Pod 被调度到哪个节点上 kubectl get pods -o wide如有错误敬请指针谢谢!