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

开网站做女装好还是童装好怎么做网站可手机看

开网站做女装好还是童装好,怎么做网站可手机看,我也要投放广告,wordpress 获取分类列表项目背景知识 系统需求 某企业需要使用docker容器技术搭建k8s容器编排工具来管理所有的容器#xff0c;由于业务量较大所以使用集群技术实现 docker概述 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build#xff0c;Ship and Run Any App,Anywhere”由于业务量较大所以使用集群技术实现 docker概述 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“BuildShip and Run Any App,Anywhere”也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理使用户的APP可以是一个WEB应用或数据库应用等等及其运行环境能够做到“一次镜像处处运行”。 k8s概述 概念 kubernetes简称K8s是用8代替名字中间的8个字符“ubernete”而成的缩写名字起源于希腊语含义是 舵手、领航员、向导。Google于2014年将Brog系统开源为Kubernetes k8s是一个开源的用于管理云平台中多个主机上的容器化的应用Kubernetes的目标是让部署容器化的应用简单并且高效powerful,Kubernetes提供了应用部署规划更新维护的一种机制。 组成 一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成每个节点上都会安装不同的组件 master集群的控制平面负责集群的决策 ApiServer : 资源操作的唯一入口接收用户输入的命令提供认证、授权、API注册和发现等机制 Scheduler : 负责集群资源调度按照预定的调度策略将Pod调度到相应的node节点上 ControllerManager : 负责维护集群的状态比如程序部署安排、故障检测、自动扩展、滚动更新等 Etcd 负责存储集群中各种资源对象的信息 node集群的数据平面负责为容器提供运行环境 kubelet负责维护容器的生命周期同时也负责VolumeCVI和网络CNI的管理 Container runtime负责镜像管理以及Pod和容器的真正运行CRI kube-proxy负责为Service提供cluster内部的服务发现和负载均衡 分层架构 核心层Kubernetes最核心的功能对外提供API构建高层的应用对内提供插件式应用执行环境 应用层部署无状态应用、有状态应用、批处理任务、集群应用等和路由服务发现、DNS解析等 管理层系统度量如基础设施、容器和网络的度量自动化如自动扩展、动态Provision等以及策略管理RBAC、Quota、PSP、NetworkPolicy等 接口层kubectl命令行工具、客户端SDK以及集群联邦 生态系统在接口层之上的庞大容器集群管理调度的生态系统可以划分为两个范畴 Kubernetes外部日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等 Kubernetes内部CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等 集群规划 kubernetes集群大体上分为两类一主多从和多主多从。 一主多从一台Master节点和多台Node节点搭建简单但是有单机故障风险适合用于测试环境 多主多从多台Master节点和多台Node节点搭建麻烦安全性高适合用于生产环境 K8s常用名词感念 Master集群控制节点每个集群需要至少一个master节点负责集群的管控 Node工作负载节点由master分配容器到这些node工作节点上然后node节点上的 Podkubernetes的最小控制单元容器都是运行在pod中的一个pod中可以有1个或者多个容器 Controller控制器通过它来实现对pod的管理比如启动pod、停止pod、伸缩pod的数量等等 Servicepod对外服务的统一入口下面可以维护者同一类的多个pod Label标签用于对pod进行分类同一类pod会拥有相同的标签 NameSpace命名空间用来隔离pod的运行环境 k8s常用命令 集群信息查询 kubectl  version 查看集群的版本信息 kubectl  api-versions 输出一系列的 API 组及其对应的版本号 kubectl  api-resources输出服务端 API 支持的资源类型 kubectl  cluster-info 查看集群信息 kubectl  cluster-info dump 查看集群更详细的信息 资源详细信息查看 kubectl  describe  资源类型如deployments  资源名称 查看特定资源的详细信息 kubectl  -n  命名空间  describe  pod  pod-name 查看指定命名空间下指定 pod 的详细信息加-o wide参数显示详细信息 kubectl  describe  nodes显示集群节点资源 CPU、GPU、内存的使用情况以及标签nodes 后可加具体节点名 资源创建 kubectl apply  -f 文件名 更新资源创建资源推荐 kubectl create  -f 文件名 创建资源 kubectl create  -f. 创建当前目录下的所有 yaml 资源 kubectl create  -f./app1.yaml -f./app2.yaml 批量创建资资源删除 kubectl  delete  pod  pod-name 删除指定 pod kubectl  delete  service  service-name 删除指定 service kubectl  delete  资源类型  资源名称 删除指定资源 kubectl  delete  -f./pod.json 删除 pod.json 文件中定义的类型和名称的 pod kubectl  delete  pods  --all  -n  命名空间 删除指定命令空间下所有的 podpods 改为 services 即为删除所有的 services kubectl  delete  pod  pod-name  -n 命令空间  --force  --grace-period0 强制删除 pod kubectl  delete  pods  pod-name  -n  命名空间 静态 POD 直接删除非静态 POD 重启 kubectl  delete  pods,services  -l  name标签名 删除指定标签 pod 和 serivce加--include-uninitialized含尚未初始化 资源扩缩容 kubectl  scale  资源类型如 rc  资源名称如 rc-nginx-2  --replicas5扩展副本数到 5 kubectl  scale  rc  rc-nginx-2 —replicas3 副本数缩减到 3 kubectl  autoscale  deployment  my-app  --min3  --max10 自动扩缩容 my-app 的部署指定副本范围在 3~10 注--cpu-percent80上条命令结尾增加此参数代表当 CPU 使用率达到 80% 时触发以上自动扩缩容操作 资源使用情况查询 kubectl  top  node  k8s-node 显示节点k8s-node资源的使用情况 kubectl  top  node 显示集群所有节点的资源的使用情况 kubectl  top  pod  -n  logging 显示指定命名空间如logging的 pod 的资源的使用情况 资源注解更新 kubectl annotate pods pod-name  descriptionmy frontend 更新 pod设置其注解description的值为my fronten 容器操作 kubectl  -n 命名空间  exec  -it  Pod 名称  -- bash 登录容器的命令 kubectl  -n 命名空间  cp  /opt/sql  Pod 名称:/tmp/ 复制本机/opt/sql 路径下的文件到 pod 的 /tmp/路径下 kubectl  -n  命名空间  cp  Pod 名称:/tmp/app_bak  ./mysql_bak/ 复制 Pod 内app_bak路径所有文件到本地 mysql_bak 路径 回滚和历史查看 cat  pod.json  |  kubectl apply -f - 将控制台输入的 JSON 配置应用到 Pod kubectl  rollout  history  deployment  nginx-deployment 查看修订版本的历史记录 kubectl  rollout  undo  deployment  nginx-deployment  --to-revision1 如果不加 –to-revision版本号会回退到上一个版本 资源配额与限制查看 kubectl  describe  quota 查看集群的资源配额 kubectl  describe  limitrange 查看集群的资源限制 日志查看 kubectl  logs  -f  Pod 名称  -n  命名空间 查看指定 Pod 的日志 kubectl  logs  --tail10  Pod 名称 查看指定 pod 的最后 10 行日志 kubectl  logs  Pod 名称  -n  命名空间  |  grep 关键字根据关键字查看日志 节点与标签操作 kubectl  get  nodes  --show-labels 查看所有节点和 label kubectl  label  nodes  节点名  标签键标签名 给节点增加标签 kubectl  label  nodes  节点名  标签键- 给节点去掉(删除标签 kubectl  taint  nodes  节点名  标签键true:NoSchedule 给节点增加污点 kubectl  taint  nodes  节点名  标签键:NoSchedule- 给节点去掉(删除污点 kubectl  taint  nodes  --all  标签键:NoSchedule- 删除所有节点的指导标签  服务编辑 kubectl  edit  svc/docker-registry 编辑名为 docker-registry 的 service 资源列表查看 kubectl  get  pods  -A 查看所有的 pod kubectl  get  pods  -n  命名空间 查看特定命名空间下的 Pod 列表 kubectl  get  po -A|grep -Ev 1/1|2/2|3/3|4/4|Com 查看异常 pod 的列表 kubectl  get  pods  -o  wide  |  grep  需查询 pod 的关键字 查询包含特定关键字的 Pod并且输出详细信息 kubectl  get  namespaces 查看命名空间列表 kubectl  get  nodes 查看节点列表加上--show-labels查看label可以加上 -o wide 查看 IP kubectl  get  services 查看集群中服务的状态 kubectl  get  statefulset 查看 statefulset 列表中间件与底座大量使用该类型控制器 kubectl  get  daemonset 查看 daemonset 列表基础组件大量使用该类型控制器 kubectl  get  deployments 查看 deployment 列表大部分组件使用该类型控制器 kubectl  get  svc 查看服务列表可指定参数 -A 参看所有命名空间中的服务 kubectl  get  ingress -A 查看域名列表指定参数 -A 参看所有命名空间中的对外域名列表 kubectl  get  crd -A 查看自定义资源列表 kubectl  get  networkpolicies 查看集群的网络策略 kubectl  get  storageclass 查看集群的存储类 资源格式信息获取 kubectl  get  资源类型如 deployment  资源名称如 my-deployment  -o  yaml 获取指定 namespace 的 yaml 格式格式信息 kubectl  get  资源类型如 deployment  资源名称如 my-deployment  -o  json获取指定 namespace 的 json 格式信息 节点调度管理 kubectl  cordon  k8s-node 标记 k8s-node 节点不可调度 kubectl  uncordon  k8s-node 标记 k8s-node 节点可调度 kubectl  drain  k8s-node 排除 k8s-node 节点准备进行维护 kuboard 官网Kuboard_Kubernetes教程_K8S安装_管理界面 概述 Kuboard 是一款免费的 Kubernetes 管理工具提供了丰富的功能结合已有或新建的代码仓库、镜像仓库、CI/CD工具等可以便捷的搭建一个生产可用的 Kubernetes 容器云平台轻松管理和运行云原生应用。 使用 Kuboard 直接安装到现有的 Kubernetes 集群通过 Kuboard 提供的 Kubernetes RBAC 管理界面将 Kubernetes 提供的能力开放给您的开发/测试团队。 软硬件环境清单 架构使用kubeadm实现k8sdockercri-dockerd实现集群部署 使用三台虚拟机实现 任务清单 系统环境搭建 对每台机器进行Centos7.9系统的安装、 初始化系统 关闭swap、防火墙、selinux 设置主机名等 域名映射 时间同步设置 升级系统软件及内核 k8s环境准备 配置k8s镜像源 为所有节点安装Docker并配置 安装kubeadm、kubelet和kubectl 配置集群 主节点上使用kubeadm init 初始化 置网络插件 添加加剩余节点 配置可视化工具 服务测试 实验步骤 系统环境搭建 安装Centos7.9 三台主机都需安装 操作系统环境CPU2C 内存4G 硬盘20G 语言选择中文简体 软件选择基础设施服务器 分区选择自动分区 注意过程略 配置静态 三台主机的IP地址192.168.194.200                                  192.168.194.201                                 192.168.194.202 子网掩码255.255.255.0 默认网关192.168.194.2 DNS 223.5.5.5 三台主机都需重启网络服务 k8s-master rootlocalhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOnone DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_FAILURE_FATALno IPV6_ADDR_GEN_MODEstable-privacy NAMEens33 UUID50925408-dc19-4417-adbb-1d68c8ea78a0 DEVICEens33 ONBOOTyes IPADDR192.168.194.200 NETMASK255.255.255.0 GATEWAY192.168.194.2 DNS1114.114.114.114 TYPEEthernetrootlocalhost ~]# systemctl restart network k8s-node1 rootlocalhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOnone DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_FAILURE_FATALno IPV6_ADDR_GEN_MODEstable-privacy NAMEens33 UUID50925408-dc19-4417-adbb-1d68c8ea78a0 DEVICEens33 ONBOOTyes IPADDR192.168.194.201 NETMASK255.255.255.0 GATEWAY192.168.194.2 DNS1114.114.114.114 TYPEEthernetrootlocalhost ~]# systemctl restart network k8s-node2 rootlocalhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOnone DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_FAILURE_FATALno IPV6_ADDR_GEN_MODEstable-privacy NAMEens33 UUID50925408-dc19-4417-adbb-1d68c8ea78a0 DEVICEens33 ONBOOTyes IPADDR192.168.194.202 NETMASK255.255.255.0 GATEWAY192.168.194.2 DNS1114.114.114.114 TYPEEthernetrootlocalhost ~]# systemctl restart network 关闭安全软件 三台主机都需执行步骤一样其他两台主机就不详细写了 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# systemctl disable firewalld [rootlocalhost ~]# vi /etc/selinux/config SELINUXdisabled 关闭swap空间 三台主机都需执行步骤一样其他两台主机就不详细写了 [rootlocalhost ~]# swapoff -a [rootlocalhost ~]# sed -i /swap/ s/^/#/ /etc/fstab 记得重启一下 域名映射 三台主机都需执行步骤一样其他两台主机就不详细写了 cat EOF /etc/hosts 192.168.194.200 k8s-master 192.168.194.201 k8s-node1 192.168.194.202 k8s-node2 EOF 下载升级软件 三台主机都需执行步骤一样其他两台主机就不详细写了 * 这里yum源出现了问题看后面我是怎么解决的* [rootlocalhost ~]# yum install chrony vim tree net-tools wget -y [rootlocalhost ~]# yum update -y# 使用xftp上传新内核kernelkernel-ml-5.10.48 [rootlocalhost ~]# yum install kernel-ml-5.10.48-1.el7.x86_64.rpm -y# 设置grub2默认引导为0 [rootocalhost ~]# grub2-set-default 0# 重新生成grub2引导文件 [rootocalhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 设置主机名 三台主机各自执行 [rootlocalhost ~]# hostnamectl set-hostname k8s-master [rootlocalhost ~]# hostnamectl set-hostname k8s-node1 [rootlocalhost ~]# hostnamectl set-hostname k8s-node2[rootlocalhost ~]# reboot# 重启后需要验证内核是否为更新对应的版本 [rootk8s-node2 ~]# uname -r 5.10.48-1.el7.x86_64 调整内核参数 三台主机都需执行步骤一样其他两台主机就不详细写了 修改linux的内核参数添加网桥过滤和地址转发功能 vim /etc/sysctl.d/k8s.conf # 编辑/etc/sysctl.d/k8s.conf文件添加如下配置: net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 vm.swappiness0# 重新加载配置 sysctl -p /etc/sysctl.d/k8s.conf# 确认网桥转发已经是1 sysctl net.bridge.bridge-nf-call-iptables # 显示结果net.bridge.bridge-nf-call-iptables 1 配置ipvs功能在kubernetes中service有两种代理模型一种是基于iptables的一种是基于ipvs的两者比较的话ipvs的性能明显要高一些但是如果要使用它需要手动载入ipvs模块 # 1 安装ipset和ipvsadm yum install ipset ipvsadm -y#如果下载有问题记得重新建yum源删掉之前的再进行yum clean all yum makecache # 2 添加需要加载的模块写入脚本文件 cat EOF /etc/sysconfig/modules/ipvs.modules #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack EOF# 3 为脚本文件添加执行权限 chmod x /etc/sysconfig/modules/ipvs.modules# 4 执行脚本文件 /bin/bash /etc/sysconfig/modules/ipvs.modules# 5 查看对应的模块是否加载成功 lsmod | grep -e ip_vs -e nf_conntrack_ipv4 设置时间同步 # 修改配置文件 vim /etc/chrony.conf server ntp1.aliyun.com iburst# 启动chronyd服务 systemctl enable --now chronyddate k8s环境准备 安装docker 三台主机都需要安装步骤一样其他两台主机就不详细写了 配置docker源 curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install docker-ce -y 配置镜像加速器及Cgroup Driver再华为云里找到自己的镜像加速器 vim /etc/docker/daemon.json # 添加如下 {exec-opts: [native.cgroupdriversystemd],registry-mirrors: [ https://09e875b18c194781aed5c5b7b32c7255.mirror.swr.myhuaweicloud.com, https://docker.1ms.run,https://docker.1panel.live/] } # 启动并开机启动 systemctl enable --now dockerdocker info 安装cri-dockerd 三台主机都需安装步骤一样其他两台主机就不详细写了 作用Docker与Kubernetes通信的中间程序 K8s的1.24版本以后移除了docker-shim而Docker Engine默认又不支持CRI规范因而二者将无法直接完成整合为此Mirantis和Docker联合创建了cri-dockerd项目用于为Docker Engine提供一个能够支持到CRI的规范从而能够让Kubernetes基于CRI控制Docker 所以想在K8s的1.24版本及以后的版本中使用docker需要安装cri-dockerd然后K8s集群通过cri-dockerd联系到docker注意每个节点都要安装 项目地址https://github.com/Mirantis/cri-dockerd/releases wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpmrpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm# 注意若下载超时可使用xftp上传本地安装包 建议用xftp上传 配置服务并启动 # 修改启动文件 /usr/lib/systemd/system/cri-docker.servicevim /usr/lib/systemd/system/cri-docker.service # 修改ExecStart改行值 ... ExecStart/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-imageregistry.aliyuncs.com/google_containers/pause:3.9 --network-plugincni --cni-bin-dir/opt/cni/bin --cni-cache-dir/var/lib/cni/cache --cni-conf-dir/etc/cni/net.d ... # 启动cri-docker systemctl daemon-reload systemctl enable --now cri-docker systemctl status cri-docker 安装k8s 三台主机都需安装步骤一样其他两台主机就不详细写了 配置阿里源 cat /etc/yum.repos.d/kubernetes.repo EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF 安装k8s工具 kubeadm用于初始化集群并配置集群所需的组件并生成对应的安全证书和令牌 kubelet负责与 Master 节点通信并根据 Master 节点的调度决策来创建、更新和删除 Pod同时维护 Node 节点上的容器状态 kubectl用于管理k8集群的一个命令行工具 yum install kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0 -y# 设置kubelet开机启动注意不需要直启动初始化过程会启动 systemctl enable kubelet注意建议此处每台主机制作一次快照 **配置以上命令可以先配置好一台主机其他两台可以克隆**修改主机名打开nmtui修改IP先撤销后激活 集群搭建 k8s-master节点初始化 [rootk8s-master ~]# kubeadm init --kubernetes-versionv1.28.0 --pod-network-cidr10.224.0.0/16 --apiserver-advertise-address192.168.194.200 --cri-socket unix:///var/run/cri-dockerd.sock --image-repository registry.aliyuncs.com/google_containers# 显示结果初始化需要拉取镜像耗时较长请等待..... [init] Using Kubernetes version: v1.28.0 [preflight] Running pre-flight checks [preflight] Pulling images required for setting up a Kubernetes cluster [preflight] This might take a minute or two, depending on the speed of your internet connection [preflight] You can also perform this action in beforehand using kubeadm config images pull [certs] Using certificateDir folder /etc/kubernetes/pki [certs] Generating ca certificate and key [certs] Generating apiserver certificate and key [certs] apiserver serving cert is signed for DNS names [k8s-master kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.194.200] [certs] Generating apiserver-kubelet-client certificate and key [certs] Generating front-proxy-ca certificate and key [certs] Generating front-proxy-client certificate and key [certs] Generating etcd/ca certificate and key [certs] Generating etcd/server certificate and key [certs] etcd/server serving cert is signed for DNS names [k8s-master localhost] and IPs [192.168.194.200 127.0.0.1 ::1] [certs] Generating etcd/peer certificate and key [certs] etcd/peer serving cert is signed for DNS names [k8s-master localhost] and IPs [192.168.194.200 127.0.0.1 ::1] [certs] Generating etcd/healthcheck-client certificate and key [certs] Generating apiserver-etcd-client certificate and key [certs] Generating sa key and public key [kubeconfig] Using kubeconfig folder /etc/kubernetes [kubeconfig] Writing admin.conf kubeconfig file [kubeconfig] Writing kubelet.conf kubeconfig file [kubeconfig] Writing controller-manager.conf kubeconfig file [kubeconfig] Writing scheduler.conf kubeconfig file [etcd] Creating static Pod manifest for local etcd in /etc/kubernetes/manifests [control-plane] Using manifest folder /etc/kubernetes/manifests [control-plane] Creating static Pod manifest for kube-apiserver [control-plane] Creating static Pod manifest for kube-controller-manager [control-plane] Creating static Pod manifest for kube-scheduler [kubelet-start] Writing kubelet environment file with flags to file /var/lib/kubelet/kubeadm-flags.env [kubelet-start] Writing kubelet configuration to file /var/lib/kubelet/config.yaml [kubelet-start] Starting the kubelet [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory /etc/kubernetes/manifests. This can take up to 4m0s [apiclient] All control plane components are healthy after 11.008400 seconds [upload-config] Storing the configuration used in ConfigMap kubeadm-config in the kube-system Namespace [kubelet] Creating a ConfigMap kubelet-config in namespace kube-system with the configuration for the kubelets in the cluster [upload-certs] Skipping phase. Please see --upload-certs [mark-control-plane] Marking the node k8s-master as control-plane by adding the labels: [node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers] [mark-control-plane] Marking the node k8s-master as control-plane by adding the taints [node-role.kubernetes.io/control-plane:NoSchedule] [bootstrap-token] Using token: n00yuj.vt34dvytdpihts1p [bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials [bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token [bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster [bootstrap-token] Creating the cluster-info ConfigMap in the kube-public namespace [kubelet-finalize] Updating /etc/kubernetes/kubelet.conf to point to a rotatable kubelet client certificate and key [addons] Applied essential addon: CoreDNS [addons] Applied essential addon: kube-proxyYour Kubernetes control-plane has initialized successfully! #成功To start using your cluster, you need to run the following as a regular user: # 普通账户执行mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run: # root账户执行export KUBECONFIG/etc/kubernetes/admin.conf # 认证You should now deploy a pod network to the cluster. Run kubectl apply -f [podnetwork].yaml with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root: # 节点加入命令 kubeadm join 192.168.194.200:6443 --token n00yuj.vt34dvytdpihts1p \--discovery-token-ca-cert-hash sha256:3e6263b7fe647fc87858f99d3232cedc69295bc77664429781c5513667b58e7d 注意说明不用执行 k8s-master节点配置认证文件 根据初始化的提示完成认证 若当前为root账户则使用下列命令配置认证 [rootk8s-master ~]# vim /etc/profile # 在最底部增加新的环境变量 export KUBECONFIG/etc/kubernetes/admin.conf[rootk8s-master ~]# source /etc/profile node节点加入集群 根据初始化的信息提示使用下面命令加入集群 [rootk8s-node1 ~]# kubeadm join 192.168.194.200:6443 --token n00yuj.vt34dvytdpihts1p \--discovery-token-ca-cert-hash sha256:3e6263b7fe647fc87858f99d3232cedc69295bc77664429781c5513667b58e7d --cri-socket unix:///var/run/cri-dockerd.sock[rootk8s-node2 ~]# kubeadm join 192.168.194.200:6443 --token n00yuj.vt34dvytdpihts1p \--discovery-token-ca-cert-hash sha256:3e6263b7fe647fc87858f99d3232cedc69295bc77664429781c5513667b58e7d --cri-socket unix:///var/run/cri-dockerd.sock使用kubectl工具查看节点状态 [rootk8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master NotReady control-plane 43m v1.28.0 k8s-node1 NotReady none 6m57s v1.28.0 k8s-node2 NotReady none 6m48s v1.28.0 # 注由于网络插件还没有部署节点会处于NotReady状态 # 修改2个woker节点的标签名 kubectl label node k8s-node1 node-role.kubernetes.io/workerworker kubectl label node k8s-node2 node-role.kubernetes.io/workerworker 配置calico网络插件 [rootk8s-master ~]# wget https://docs.projectcalico.org/manifests/calico.yaml# 修改配置 [rootmaster ~]# vim calico.yaml ...- name: CALICO_IPV4POOL_CIDR # 去掉注释value: 10.244.0.0/16 # 去掉注释修改。# Cluster type to identify the deployment type- name: CLUSTER_TYPEvalue: k8s,bgp # 下方熙增新增2行- name: IP_AUTODETECTION_METHODvalue: interfaceens32 # 修改为k8s-master的真实网卡名- name: CALICO_IPV4POOL_IPIPvalue: Never # 修改为Never# 注意使用空格作为间隔符不要用tab键 [rootk8s-master ~]# kubectl apply -f calico.yaml # 应用配置poddisruptionbudget.policy/calico-kube-controllers created serviceaccount/calico-kube-controllers created serviceaccount/calico-node created configmap/calico-config created customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/caliconodestatuses.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipreservations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created clusterrole.rbac.authorization.k8s.io/calico-kube-controllers created clusterrole.rbac.authorization.k8s.io/calico-node created clusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers created clusterrolebinding.rbac.authorization.k8s.io/calico-node created daemonset.apps/calico-node created deployment.apps/calico-kube-controllers created查看node状态 [rootk8s-master ~]# kubectl get node NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 109m v1.28.0 k8s-node1 Ready none 72m v1.28.0 k8s-node2 Ready none 72m v1.28.0 # 注意若出现NotReady需要等待片刻在重新查看1分钟左右 [rootk8s-master ~]# kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP CONTAINER-RUNTIME k8s-master Ready control-plane 41m v1.28.0 192.168.194.200 none 64 docker://26.1.4 k8s-node1 Ready worker 27m v1.28.0 192.168.194.201 none 64 docker://26.1.4 k8s-node2 Ready worker 24m v1.28.0 192.168.194.202 none 64 docker://26.1.4[rootk8s-master ~]# kubectl get pods -n kube-system # 注意 READY列都是1 表示以启动NAME READY STATUS RESTARTS AGE calico-kube-controllers-658d97c59c-kfpt4 1/1 Running 0 5m28s calico-node-5jgz4 1/1 Running 0 5m28s calico-node-ntgq5 1/1 Running 0 5m28s calico-node-p428l 1/1 Running 0 5m28s coredns-66f779496c-qjgzk 1/1 Running 0 43m coredns-66f779496c-qnkm9 1/1 Running 0 43m etcd-k8s-master 1/1 Running 0 43m kube-apiserver-k8s-master 1/1 Running 0 43m kube-controller-manager-k8s-master 1/1 Running 2 (43m ago) 43m kube-proxy-bx5zk 1/1 Running 0 29m kube-proxy-pppg9 1/1 Running 0 26m kube-proxy-vjr4s 1/1 Running 0 43m kube-scheduler-k8s-master 1/1 Running 2 (43m ago) 43m [rootk8s-master ~]# 设置kubectl命令自动补全选做 [rootk8s-master ~]# yum install bash-completion -y [rootk8s-master ~]# source /usr/share/bash-completion/bash_completion [rootk8s-master ~]# source (kubectl completion bash) [rootk8s-master ~]# echo source (kubectl completion bash) ~/.bashrc 安装可视化平台 使用docker安装 [rootk8s-master ~]# docker run -d --restartunless-stopped --namekuboard -p 2728:80/tcp -p 10081:10081/tcp -e KUBOARD_ENDPOINThttp://192.168.194.200:2728 -e KUBOARD_AGENT_SERVER_TCP_PORT10081 -v /root/kuboard-data:/data eipwork/kuboard:v3# 注意 # -p 2728:80/tcp \ # 宿主机端口可以修改为任意未使用端口 # -e KUBOARD_ENDPOINThttp://192.168.88.200:2728 \ # 改为k8s-master的ip 浏览器访问并配置 打开浏览器输入http://192.168.194.200:2728 登录 账户admin 密码Kuboard123 添加集群 输入名称k8s-yh 不能有中文 描述测试 点击复制按钮将脚本内容粘贴到k8s-master端后复制红色字段内容在粘贴回浏览器页面的Token对话框中 Apiserver 地址https://192.168.194.200:6443 (替换为你的k8s-master的ip) 点击确定 选择访问集群所使用的身份  完成  服务部署 部署nginx服务 执行下列命令 [rootk8s-master ~]# kubectl create deployment nginx --imagenginx:latest deployment.apps/nginx created [rootk8s-master ~]# kubectl expose deployment nginx --port80 --typeNodePort service/nginx exposed 查看 [rootk8s-master ~]# kubectl get service # 注意nginx映射端口 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 15m nginx NodePort 10.103.128.155 none 80:30274/TCP 5m46s[rootk8s-master ~]# kubectl get pods -o wide # 服务部署在k8s-node2上 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-56fcf95486-p95wx 1/1 Running 0 6m4s 10.244.169.128 k8s-node2 none none 访问浏览器输入 http://192.168.194.200:30125 kuboard中查看 安装监控套件 点击安装metrics-server Metrics Server 是集群级别的资源利用率数据的聚合器。从 Kubelets收集资源指标并通过 Metrics API 在 Kubernetes apiserver 中公开它们以供 Horizontal Pod Autoscaler 和Vertical Pod Autoscaler 使用 一直点击下一步直到确定 点击应用 进行测试再刷新一下网页  [rootk8s-master ~]# kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% k8s-master 524m 13% 2151Mi 56% k8s-node1 180m 9% 877Mi 23% k8s-node2 201m 10% 974Mi 25% [rootk8s-master ~]# 安装pod监控曲线面板 以nginx的pod为例点击安装metrics-scraper按钮 选择镜像库后确定选第二个  多进行刷新 完成界面  项目完成 做项目中出现的问题以及解决方案 问题1集群K8S时端口号被占用。 解决方案找到被占用的端口号和与之对应对应的进程杀死进程重新集群。 问题2出现以下问题是yum源有问题。 解决方案按照我给出的命令进行更换yum源其中CentOs-7.repo在官网找并下载用xftp传进来。 一些常见的问题总结  网络插件 镜像无法下拉
http://www.dnsts.com.cn/news/181851.html

相关文章:

  • 网站收录时有时没有智通人才招聘网最新招聘
  • 网站源码如何安装什么专业就业前景好
  • ftp网站上传之后怎么办在哪买网站链接
  • 论坛建站教程如何做文献ppt模板下载网站
  • 临沂网站建设网站推广建立网站费用怎么做会计分录
  • 渭南网站建设公司农产品网站建设背景
  • 网站的设计公司图片外链生成工具在线
  • 如何做外国网站销售wordpress 会员登录
  • 怎样建立手机网站怎么样做推广网站
  • 企业移动端建设与网站建设赣州九一人才网最新招聘
  • 哈尔滨做网站巨耀公司怎么做网站卖产品
  • 新增网站推广长兴网站制作公司
  • 北京市建设工程招标网站网址大全123下载apk
  • 公司网站建设推荐免费 成品模板网站
  • 自己做网站推广关键词北京网站制作推广
  • 网站建设时关键词要怎么选呢wordpress 不显示中文图片
  • 长沙宁乡建设网站alexa
  • 完成网站群建设百度下载安装最新版
  • 丰台路网站建设wordpress4.8.3安装
  • 移动网站建设口碑好西安室内设计公司排名
  • 深圳网站建设微赢天下安徽建设工程信息网官
  • 定制型网站设计百度网站链接提交页面
  • 做网站南昌短视频拍摄剪辑培训班
  • 建行网站首页登录社交网站的设计
  • 如何网站做专题英文网站建设技术
  • 福州市建设厅网站重庆哪里可以做公司网站
  • 网站建设小公司生存dede做的网站怎样去换模版
  • 本地服务类网站成本什么是营销
  • WordPress 导航 自适应沈阳网站排名seo
  • 兰州做高端网站wordpress 友情连接