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

四川代理网站建设的公司济南建站价格

四川代理网站建设的公司,济南建站价格,网页设计的尺寸,微信公众号怎么制作模板云计算与大数据——部署Kubernetes集群完成nginx部署(超级详细#xff01;) 部署 Kubernetes 集群的基本思路如下#xff1a; 准备环境#xff1a; 选择适合的操作系统#xff1a;根据需求选择适合的 Linux 发行版作为操作系统#xff0c;并确保在所有节点上进行相同的选…云计算与大数据——部署Kubernetes集群完成nginx部署(超级详细) 部署 Kubernetes 集群的基本思路如下 准备环境 选择适合的操作系统根据需求选择适合的 Linux 发行版作为操作系统并确保在所有节点上进行相同的选择。安装 Docker在所有节点上安装 Docker它将用于容器化应用程序和组件。安装 Kubernetes 工具安装 kubectl、kubeadm 和 kubelet 工具这些工具将用于集群的管理和配置。 设置主节点 (Master Node) 选择一个节点作为主节点通常是从节点中选择一台作为主节点可以是任意一台具备足够资源的机器。初始化主节点使用 kubeadm init 命令初始化主节点并获取生成的加入令牌 (join token)。设置网络插件选择并安装适当的网络插件例如 Flannel、Calico 或 Weave以便节点之间能够进行网络通信。 添加从节点 (Worker Nodes) 在每个从节点上运行加入命令使用之前生成的加入令牌在每个从节点上运行 kubeadm join 命令将其加入到集群中。确认节点加入在主节点上运行 kubectl get nodes 命令确保所有节点都成功加入集群。 部署网络插件 根据选定的网络插件按照其特定的部署和配置方式进行操作。这将确保各节点之间可以进行网络通信并提供 Kubernetes 集群的网络功能。 部署其他组件和应用程序 部署其他所需的核心组件如 kube-proxy 和 kube-dns/coredns。部署您的应用程序或服务可以使用 Kubernetes 的 Deployment、Service 或其他资源类型来管理它们。 验证集群状态 运行 kubectl get nodes 和其他 kubectl 命令以确保集群中的节点和组件正常工作。测试应用程序在集群中部署的应用程序上运行测试确保它们能够正常运行并与其他组件交互。 以上是部署 Kubernetes 集群的基本思路。具体的步骤和细节可能会因环境和需求而有所不同但这个简要说明可以帮助您了解部署过程的大致流程。 接下来我们进行实操部署kubernetes集群和完成nginx服务。 开始部署Kubernetes集群 以下以root登录运行命令 一、在所有节点安装和配置docker 1.安装docker所需的工具 yum install -y yum-utils device-mapper-persistent-data lvm22.配置阿里云的docker源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装docker-ce、docker-ce-cli、containerd.io yum install -y docker-ce docker-ce-cli containerd.io4.启动docker systemctl enable docker #设置开机自启 systemctl start docker #启动docker5. 设置镜像加速器 #设置镜像加速器新建daemon.json文件参考文献1 cat EOF /etc/docker/daemon.json {registry-mirrors: [https://b9pmyelo.mirror.aliyuncs.com] }6.生成并修改containerd 的默认配置文件/etc/containerd/config.toml参考文献2 containerd config default /etc/containerd/config.toml将sandbox_image “registry.k8s.io/pause:3.6” 修改为sandbox_image “k8simage/pause:3.6” 重启 containerd 服务 systemctl daemon-reload systemctl restart containerd.service 注此步骤可以解决failed to pull image \“registry.k8s.io/pause:3.6\” Failed to create sandbox for pod 拉取 registry.k8s.io/pause:3.6 镜像等问题具体错误问题可以通过运行以下命令查看日志journalctl -xeu kubelet 7.关闭防火墙 systemctl disable firewalld systemctl stop firewalld8.关闭selinux #临时禁用selinux setenforce 0#或永久关闭修改/etc/sysconfig/selinux文件设置 sed -i s/SELINUXpermissive/SELINUXdisabled/ /etc/sysconfig/selinuxsed -i ‘s/SELINUXenforcing/SELINUXdisabled/g’ /etc/selinux/config 9.禁用交换分区 swapoff -a#或永久禁用注释掉/etc/fstab文件swap那一行 sed -i ‘s/.*swap.*/#/’ /etc/fstab10.修改内核参数 将桥接的IPv4流量传递到iptables的链有一些ipv4的流量不能走iptables链因为linux内核的一个过滤器每个流量都会经过他然后再匹配是否可进入当前应用进程去处理所以会导致流量丢失配置k8s.conf文件k8s.conf文件原来不存在需要自己创建的 catEOF /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables1 net.bridge.bridge-nf-call-iptables1 net.ipv4.ip_forward1 vm.swappiness0 EOFsysctl --system #重新加载系统全部参数或者使用sysctl -p亦可 文献1https://yebd1h.smartapps.cn/pages/blog/index?blogId123605246_swebfr1_swebFromHostbdlite 二、在全部节点个别单独说明的除外上安装配置Kubernetes 1.配置Kubernetes阿里云源 cat EOF /etc/yum.repos.d/kubernetes.repo [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 EOF2.安装kubeadm、kubectl、kubeletkubeadm和kubectl都是工具kubelet才是系统服务参考文献1 yum install -y kubelet-1.14.2 yum install -y kubeadm-1.14.23.启动kubelet服务 systemctl enable kubelet systemctl start kubelet4. 生成当前版本的初始化配置文件到 /etc/kubernetes 目录下 kubeadm config print init-defaults /etc/kubernetes/init-default.yaml1指定kube-apiserver广播给其他组件的IP地址 这个参数需要设置为主节点的IP地址以确保其他节点可以访问到kube-apiserver 即advertiseAddress: 1.2.3.4 - advertiseAddress: [宿主机ip(内网)] 此项根据自己主节点的IP地址具体设定本机设置的是 advertiseAddress:192.168.95.202指定安装镜像的仓库源 建议使用国内镜像如阿里云 imageRepository: registry.aliyuncs.com/google_containers 注我们开始会遇到以下初始化问题 failed to pull image registry.k8s.io/kube-apiserver:v1.26.3此设置结合kubeadm init命令的以下参数可以解决该问题 --image-repositoryregistry.aliyuncs.com/google_containers即初始化时kubeadm init --image-repositoryregistry.aliyuncs.com/google_containers 初始化在后面 3编辑/etc/hosts添加一行 192.168.95.20 k8s.cnblogs.com #需根据自己主机的IP地址进行修改总体上第4步可以解决[kubelet-check] Initial timeout of 40s passed.这个复杂问题。 参考文献2 https://blog.csdn.net/weixin_52156647/article/details/129765134 4统一Kubernetes和docker的Cgroup Driver为systemd 修改/etc/docker/daemon.json 文件添加如下参数 vim /etc/docker/daemon.json #为了保持所有节点docker配置一致所以其它节点的docker也改了 { registry-mirrors: [https://b9pmyelo.mirror.aliyuncs.com], exec-opts: [native.cgroupdriversystemd] }重新加载 Docker systemctl daemon-reload systemctl restart docker5.在主节点上初始化Kubernetes 初始化之前先运行 systemctl restart dockerkubelet命令补全 echo source (kubectl completion bash) ~/.bash_profilesource .bash_profile拉取镜像 列出Kubernetes集群启动所需的镜像列表。这些镜像包括控制平面组件如kube-apiserver、kube-controller-manager和kube-scheduler以及其他一些必要的组件如etcd、CoreDNS等 并修改tag与所需版本保持一致。 kubeadm config images list设置镜像源和脚本程序 vim image.sh#!/bin/bash urlregistry.cn-hangzhou.aliyuncs.com/google_containers versionv1.14.2 images(kubeadm config images list --kubernetes-version$version|awk -F / {print $2}) for imagename in ${images[]} ; dodocker pull $url/$imagenamedocker tag $url/$imagename k8s.gcr.io/$imagenamedocker rmi -f $url/$imagename done运行脚本 chmod ux image.sh ./image.sh docker imagesdocker images查看docker仓库中的镜像发现所有的镜像都是以registry.aliyuncs.com/google_containers/开头有的与kubeadm config images list中要求的镜像名称不一样。我们要修改镜像名称即对镜像重新打个tag docker images显示结果 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.14.10 k8s.gcr.io/kube-apiserver:v1.14.10docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.14.10 k8s.gcr.io/kube-controller-manager:v1.14.10docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.14.10 k8s.gcr.io/kube-scheduler:v1.14.10docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.14.10 k8s.gcr.io/kube-proxy:v1.14.10docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1修改完tag后再次查看发现镜像名和版本号与kubeadm config images list命令列出的Kubernetes集群启动所需的镜像列表保持一致了。 另一种方法我们也可以一个一个拉取镜像 kubeadm config images listdocker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.40.10 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.40.10 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.40.10 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.40.10 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1再次查看docker镜像 docker images进行重置k8s集群 kubeadm reset以解除端口占用删除之前初始化时生成的配置文件等。 然后开始正式执行集群初始化 kubeadm init --apiserver-advertise-address 192.168.95.20 --pod-network-cidr10.244.0.0/16执行信息出现Your Kubernetes control-plane has initialized successfully!成功完成集群初始化。 6. 配置节点 以下3条命令使用普通用户 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config7.注意从节点加入时的命令和秘钥 kubeadm join 192.168.95.20:6443 --token 7em598.2cwgsvdgga5fohae \--discovery-token-ca-cert-hash sha256:9fca7635ebe04c5fe7eccb8c30974ff0e4f7cb08785d1132956be9a800ded442妥善保存此秘钥。 8.查看节点运行情况NotReady状态 kubectl get nodes三、安装配置从节点Kubernetes 1.根据以上第一、二的相关步骤安装从节点软件及进行配置。 host1基本配置 docker version Kubectl version kubeadm version kubelet version2.从节点加入集群使用root用户 kubeadm join 192.168.95.20:6443 --token 7em598.2cwgsvdgga5fohae \ --discovery-token-ca-cert-hash sha256:9fca7635ebe04c5fe7eccb8c30974ff0e4f7cb08785d1132956be9a800ded442注此步骤一般会遇到以下问题 [ERROR CRI]: container runtime is not running:这是因为用安转包安装的containerd,会默认禁用它作为容器运行时 解决 1使用systemctl status containerd 查看状态 Active: active (running) 表示容器运行时正常运行 2查看 /etc/containerd/config.toml文件这个是容器运行时的配置文件 3 vim /etc/containerd/config.toml如果看到了这行disabled_plugins : [cri] 将这行用#注释或者将cri删除 #disabled_plugins : [“cri”]或者 disabled_plugins : [] 4重启容器运行时 systemctl restart containerd参考文献3https://blog.csdn.net/weixin_52156647/article/details/129758753 四、在主节点上查看加入的从节点并解决随后的问题 kubectl get nodes1.此时STATUS显示NotReady 解决 1所有集群的节点进行重装kubernetes-cni yum reinstall -y kubernetes-cni2在主节点上安装网络 kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml其中要将185.199.108.133 raw.githubusercontent.com加入etc/hosts 参考文献五https://www.cnblogs.com/sinferwu/p/12726833.html 3. 运行kubectl get nodes时出现的问题 1couldn’t get current server API group list: 解决 不能用root运行该命令。 2kubernetes-admin问题 K8S输入 kubectl get nodes显示The connection to the server localhost:8080 was refused - did you specify the right host or port? 出现这个问题的原因是 kubectl 命令需要使用 kubernetes-admin 来运行。可能是系统环境不干净导致例如重装 k8s 前未完全清空配置等。 解决方法 1将主节点初始化后生成的/etc/kubernetes/admin.conf文件复制到从节点相应目录。 scp /etc/kubernetes/admin.conf host1:/etc/kubernetes/2在所有节点上设置环境变量并更新 echo export KUBECONFIG/etc/kubernetes/admin.conf ~/.bash_profile source ~/.bash_profile在https://www.ipaddress.com/查询raw.githubusercontent.com的真实IP。 再次运行 kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml安装flannel成功 再次通过kubectl get nodes命令获取集群节点列表时候发现host1集群状态一直处于NotReady状态通过查看日志发现报错 journalctl -f -u kubelet由日志信息可知报错原因是不能从/var/llib/kubelet/config.yaml下载到kubelet的配置。 错误原因估计是我之前没有做 kubeadm init就运行了systemctl start kubelet。 我们可以尝试将token更新重新生成token代码如下 kubeadm token create --print-join-command在主节点g更新token 复制输出的内容在hsot1中运行 成功解决问题 集群都是Ready状态 参考文献六https://www.cnblogs.com/eastwood001/p/16318644.html 五、测试Kubernetes 1.在主节点上运行 kubectl create deployment nginx --imagenginx #创建一个httpd服务测试kubectl expose deployment nginx --port80 --typeNodePort #端口就写80,如果你写其他的可能防火墙拦截了kubectl get svc,pod #对外暴露端口2.使用主节点IP地址加保留的端口访问Nginx主页 比如 192.168.95.20:21729显示连接失败 使用命令 kubectl describe pod nginx-77b4fdf86c-krqtk显示结果 open /run/flannel/subnet.env: no such file or directory 发现我缺少相关cni网络配置文件。 我们要仔细检查查看各个节点包括主节点是否有/run/flannel/subnet.env内容应该是类似如下 FLANNEL_NETWORK10.244.0.0/16 FLANNEL_SUBNET10.244.0.1/24 FLANNEL_MTU1450 FLANNEL_IPMASQtrue通过检查报错日志发现我缺少相关cni网络配置文件。 创建cni网络相关配置文件 mkdir -p /etc/cni/net.d/cat EOF /etc/cni/net.d/10-flannel.conf {name:cbr0,type:flannel,delegate: {isDefaultGateway: true}} EOF这里我们使用 cat 命令和重定向操作符 ()将 {“name”:“cbr0”,“type”:“flannel”,“delegate”: {“isDefaultGateway”: true}} 内容写入到 /etc/cni/net.d/10-flannel.conf 文件中。 mkdir /usr/share/oci-umount/oci-umount.d -p mkdir /run/flannel/cat EOF /run/flannel/subnet.env FLANNEL_NETWORK10.199.0.0/16 FLANNEL_SUBNET10.199.1.0/24 FLANNEL_MTU1450 FLANNEL_IPMASQtrue EOF这里在 EOF 和 EOF 之间有多行文本每行都包含一个环境变量的定义。具体来说 FLANNEL_NETWORK10.199.0.0/16 定义了名为 FLANNEL_NETWORK 的环境变量并将其设置为 10.199.0.0/16。 FLANNEL_SUBNET10.199.1.0/24 定义了名为 FLANNEL_SUBNET 的环境变量并将其设置为 10.199.1.0/24。 FLANNEL_MTU1450 定义了名为 FLANNEL_MTU 的环境变量并将其设置为 1450。 FLANNEL_IPMASQtrue 定义了名为 FLANNEL_IPMASQ 的环境变量并将其设置为 true。 若哪个节点没有该文件那就拷贝一份再次进行部署应该就不会报这个错了。 我们在host1节点检查一下 cat /run/flannel/subnet.env cat /etc/cni/net.d/10-flannel.conf通过命令查看到从节点已经有了相关cni网络相关配置文件。 如果缺少这些重要配置文件也会在集群日志中报错 cni config uninitialized 5月 06 12:44:06 master kubelet[48391]: W0506 12:44:06.599700 48391 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d 5月 06 12:44:07 master kubelet[48391]: E0506 12:44:07.068343 48391 kubelet.go:2170] Container runtime network not ready: NetworkReadyfalse reason:NetworkPluginNotReady message:docker: network plugin is not ready上面配置都没问题的话 最后也是成功显示nginx Kubectl get nodes这里的kubectl get nodes 命令将返回一个表格其中包含了集群中所有节点的相关信息如节点名称、状态、角色master/worker等。 浏览器网址输入 192.168.95.25:30722或者输入CLUSTER-IP 10.100.184.180这样我们就成功部署Kubernetes集群,完成nginx部署了 这些都是亲测过的按照上面正常操作都可以成功部署祝各位一切顺利。 最后暑假祝各位一切顺利学的扎实通透玩得开心。
http://www.hkea.cn/news/14341221/

相关文章:

  • 郑州哪家网站建设好wordpress友情链接激活
  • 响应式网站底部怎么做赌城网站怎么做
  • 网站开发那种语言建设企业网站可信度
  • 高坪网站建设怎样去查网站备案号
  • 做百度网站那家好seo推广论坛
  • 沈阳营销网站制作企业长沙最坑装修公司
  • 南宁网站建设设计制作创意设计网站大全
  • wordpress 前台登录插件临沂seo
  • 叙述网站的设计制作流程律师网站 扁平化
  • wordpress整站手机端公司网站备案去哪里备案
  • 网站运营需要多少钱制作小程序难吗
  • 安徽白云集团网站建设做网站交接什么时需要交接
  • o2o网站系统河南做网站公司汉狮
  • 快速做网站软件网站正在建设中提示页面
  • 某班级网站建设方案建设手机银行app下载
  • 经典的网站设计工具开发一个小程序大约需要多少钱
  • 官方网站 优帮云上海百度推广公司排名
  • 网站单页推广创建网站服务器地址
  • 网站首页大小网站开发 分类编码
  • 阿里云镜像wordpress西安网站优化招聘网
  • 网站上做商城可用同一域名建设商务网站目的
  • 表白网站建设cms做网站不用后端
  • 做小说网站做国外域名还是国内的好处郑州app定制开发公司
  • 网站建设树状图私有云可以做网站
  • 门户网站建设审批程序资料共享的网站开发
  • wordpress整站备份插件专升本报名入口官网2023报名时间
  • 网站建设服务规划与措施wordpress 文章点赞插件
  • 网站营销是什么网站推广排名哪家公司好
  • 做手机网站做网站什么什么
  • wordpress 网站搭建北京市网站开发