温州网站建设科技有限公司免费创建社区平台
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:16
当前位置: 首页 > news >正文
温州网站建设科技有限公司,免费创建社区平台,网站如何识别移动端,怎样建网站?文章目录一、概述二、前期准备1#xff09;节点信息2#xff09;修改主机名和配置hosts3#xff09;配置ssh互信4#xff09;时间同步5#xff09;关闭防火墙6#xff09;关闭 swap7#xff09;禁用SELinux8#xff09;允许 iptables 检查桥接流量三、开始部署1#x…
文章目录一、概述二、前期准备1节点信息2修改主机名和配置hosts3配置ssh互信4时间同步5关闭防火墙6关闭 swap7禁用SELinux8允许 iptables 检查桥接流量三、开始部署1离线安装 docker1、下载2、解压的docker文件夹全部移动至/usr/bin目录3、配置 docker 启动文件4、启动 docker 服务5、配置镜像下载加速器和 cgroupdriver2离线安装 kubeadm, kubelet, kubectl1、下载2、配置 kubeadm 启动文件3、导入镜像4、启动 kubelet3集群初始化1、安装 keepalived 生成 VIP 实现高可用2、创建初始化配置文件3、k8s 集群初始化4、安装 cni 插件flannel4添加 master 节点5添加 node 节点6配置 IPVS1、加载ip_vs相关内核模块2、离线安装 ipvsadm 工具3、编辑kube-proxy配置文件mode修改成ipvs4、重启kube-proxy7安装 ingress-nginx8安装 nfs provisioner1、安装helm2、添加helm仓库源3、安装 nfs3、nfs provisioner9安装 Dashboard1、安装2、创建登录用户3、创建并获取登录token4、登录 web10安装镜像仓库 Harbor1、创建证书2、创建证书秘钥3、添加 Chart 库4、开始部署 harbor5、查看5、web 访问一、概述
Kubernetes是一种高度可扩展的容器编排平台可用于部署、管理和自动化容器化应用程序的运行。在某些情况下离线部署Kubernetes可能是必需的例如在没有互联网连接的安全环境中或在网络连接不可靠的情况下。以下是离线部署Kubernetes的一般步骤 获取Kubernetes二进制文件从Kubernetes官网下载Kubernetes二进制文件并解压缩到本地。 准备离线镜像在离线环境中必须将所需的容器镜像下载到本地并存储在本地仓库中。可以使用Docker镜像导出/导入命令或Docker Registry Mirror工具将镜像从在线环境中导出并导入到离线环境中。 配置Kubernetes节点在每个节点上安装必要的依赖项例如Docker引擎、kubelet、kubeadm等。可以使用Docker离线安装程序将Docker引擎安装到离线节点中。 初始化Kubernetes集群使用kubeadm init命令初始化集群并将必要的配置文件和证书复制到节点上。在离线环境中必须将kubelet和kubeadm所需的配置文件手动复制到每个节点上。 加入节点使用kubeadm join命令将新节点加入到集群中。在离线环境中必须手动复制kubelet和kubeadm配置文件并在每个节点上使用kubeadm join命令将节点加入集群。 部署应用程序使用kubectl命令在集群中部署应用程序并将所需的容器镜像从本地仓库中拉取。
在离线环境中部署Kubernetes需要一些额外的工作但是这是可能的并且是部署Kubernetes的重要方法之一。 k8s 在线部署可以参考我以下几篇文章 Kubernetesk8s安装以及搭建k8s-Dashboard详解 Kubernetesk8s最新版最完整版环境部署master高可用实现k8sV1.24.1dashboardharbor 【云原生】k8s 一键部署ansible
二、前期准备
1节点信息
节点信息
主机名IP角色操作系统k8s 版本local-168-182-110192.168.182.110master、keepalivedVIP192.168.182.211、nfs-servercentos71.23.6local-168-182-111192.168.182.111master、keepalived、nfs-clientcentos71.23.6local-168-182-112192.168.182.112master、nfs-clientcentos71.23.6local-168-182-113192.168.182.113node、nfs-clientcentos71.23.6
k8s 版本https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG
2修改主机名和配置hosts
修改主机名
在192.168.182.110执行
hostnamectl set-hostname local-168-182-110# 在192.168.182.111执行 hostnamectl set-hostname local-168-182-110# 在192.168.182.112执行 hostnamectl set-hostname local-168-182-110# 在192.168.182.113执行 hostnamectl set-hostname local-168-182-110配置hosts cat /etc/hostsEOF 192.168.182.110 local-168-182-110 192.168.182.111 local-168-182-111 192.168.182.112 local-168-182-112 192.168.182.113 local-168-182-113
VIP
cluster-endpoint 192.168.182.211 EOF3配置ssh互信
直接一直回车就行
ssh-keygenssh-copy-id -i ~/.ssh/id_rsa.pub rootlocal-168-182-110 ssh-copy-id -i ~/.ssh/id_rsa.pub rootlocal-168-182-111 ssh-copy-id -i ~/.ssh/id_rsa.pub rootlocal-168-182-112 ssh-copy-id -i ~/.ssh/id_rsa.pub rootlocal-168-182-1134时间同步 yum install chrony -y systemctl start chronyd systemctl enable chronyd chronyc sources5关闭防火墙 systemctl stop firewalld systemctl disable firewalld6关闭 swap
临时关闭关闭swap主要是为了性能考虑
swapoff -a
可以通过这个命令查看swap是否关闭了
free
永久关闭
sed -ri s/.swap./#/ /etc/fstab7禁用SELinux
临时关闭
setenforce 0
永久禁用
sed -i s/^SELINUXenforcing$/SELINUXdisabled/ /etc/selinux/config8允许 iptables 检查桥接流量 若要显式加载此模块请运行 sudo modprobe br_netfilter通过运行 lsmod | grep br_netfilter 来验证 br_netfilter 模块是否已加载 sudo modprobe br_netfilter lsmod | grep br_netfilter为了让 Linux 节点的 iptables 能够正确查看桥接流量请确认 sysctl 配置中的 net.bridge.bridge-nf-call-iptables 设置为 1。 例如 cat EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOFsudo modprobe overlay sudo modprobe br_netfilter# 设置所需的 sysctl 参数参数在重新启动后保持不变 cat EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 net.ipv4.ip_forward 1 EOF# 应用 sysctl 参数而不重新启动 sudo sysctl –system三、开始部署 下载地址https://download.docker.com/linux/static/stable/x86_64/ 镜像、安装包、kube-flannel.yml、deploy.yaml等资源可关注我的公众号【大数据与云原生技术分享】回复【k8s】即可获取。 1离线安装 docker 1、下载
下载
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.20.tgz
解压
tar -zxvf docker-20.10.20.tgz2、解压的docker文件夹全部移动至/usr/bin目录 cp -p docker/* /usr/bin3、配置 docker 启动文件 在/usr/lib/systemd/system/目录下创建docker.service文件 cat /usr/lib/systemd/system/docker.service EOF [Unit] DescriptionDocker Application Container Engine Documentationhttp://docs.docker.com Afternetwork.target docker.socket [Service] Typenotify EnvironmentFile-/run/flannel/docker WorkingDirectory/usr/local/bin ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock --selinux-enabledfalse --log-opt max-size1g ExecReload/bin/kill -s HUP $MAINPID
Having non-zero Limit*s causes performance problems due to accounting overhead
in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity
Uncomment TasksMax if your systemd version supports it.
Only systemd 226 and above support this version.
#TasksMaxinfinity TimeoutStartSec0
set delegate yes so that systemd does not reset the cgroups of docker containers
Delegateyes
kill only the docker process, not all processes in the cgroup
KillModeprocess Restarton-failure [Install] WantedBymulti-user.target EOF4、启动 docker 服务 systemctl daemon-reload# 设置为开机自启并现在立刻启动服务 –now立刻启动服务 systemctl enable –now docker# 查看容器状态 systemctl status docker5、配置镜像下载加速器和 cgroupdriver cat /etc/docker/daemon.jsonEOF {registry-mirrors: [http://hub-mirror.c.163.com],exec-opts: [native.cgroupdriversystemd] } EOFsystemctl restart docker2离线安装 kubeadm, kubelet, kubectl 1、下载 下载地址https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG wget https://dl.k8s.io/v1.23.6/kubernetes-server-linux-amd64.tar.gztar -xf kubernetes-server-linux-amd64.tar.gz cd kubernetes/server/bin cp -ar kubelet kubeadm kubectl /usr/bin/2、配置 kubeadm 启动文件 cat /usr/lib/systemd/system/kubelet.service EOF [Unit] Descriptionkubelet: The Kubernetes Node Agent Documentationhttps://kubernetes.io/docs/ [Service] ExecStart/usr/bin/kubelet Restartalways StartLimitInterval0 RestartSec10 [Install] WantedBymulti-user.target EOF #注意ExecStart内容换行 mkdir -p /usr/lib/systemd/system/kubelet.service.d/ cat /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf EOF [Service] EnvironmentKUBELET_KUBECONFIG_ARGS–bootstrap-kubeconfig/etc/kubernetes/bootstrap-kubelet.conf –kubeconfig/etc/kubernetes/kubelet.conf EnvironmentKUBELET_CONFIG_ARGS–config/var/lib/kubelet/config.yaml EnvironmentFile-/var/lib/kubelet/kubeadm-flags.env EnvironmentFile-/etc/sysconfig/kubelet ExecStart ExecStart/usr/bin/kubelet \(KUBELET_KUBECONFIG_ARGS \)KUBELET_CONFIG_ARGS \(KUBELET_KUBEADM_ARGS \)KUBELET_EXTRA_ARGS EOF3、导入镜像 下载资源包解压进入images目录执行以下命令就可以导入镜像了 sh image_load.sh4、启动 kubelet
设置为开机自启并现在立刻启动服务 –now立刻启动服务
systemctl enable –now kubelet3集群初始化 1、安装 keepalived 生成 VIP 实现高可用 【1】下载 下载地址https://www.keepalived.org/download.html wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz –no-check-certificatetar -zxvf keepalived-2.2.7.tar.gz# 安装openssl编译keepalived需要 yum -y install openssl openssl-devel# 编译 keepalived yum install gcc -ycd keepalived-2.2.7 ./configure –prefix/usr/local/keepalived –sysconf/etc make make install# 配置环境变量 cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived【2】master 配置 cat /etc/keepalived/keepalived.confEOF ! Configuration File for keepalived global_defs {#每个keepalived取个不同名称router_id 56 } vrrp_instance VI_1 {# MASTER为主实例,BACKUP 为从实例state MASTER# 网卡名称interface ens33# 主备这里要配置为同样的 virtual_router_id 68# 优先级,主要高于备. 一般主配置为100 备配置为80priority 100advert_int 1# 主动抢占,主备都开启的话,服务器抢占过去后,要等这个服务器keepalived停掉才会漂移到另一台nopreemptauthentication {# 主备必须配置成同样的auth_type PASS# 主备必须配置成同样的auth_pass 1111}virtual_ipaddress {# vip,主备必须配置一样192.168.182.211} } EOF【3】backend 配置 cat /etc/keepalived/keepalived.confEOF ! Configuration File for keepalived global_defs {#每个keepalived取个不同名称router_id 56 } vrrp_instance VI_1 {# MASTER为主实例,BACKUP 为从实例state BACKUP# 网卡名称interface ens33# 主备这里要配置为同样的 virtual_router_id 68# 优先级,主要高于备. 一般主配置为100 备配置为80priority 80advert_int 1# 主动抢占,主备都开启的话,服务器抢占过去后,要等这个服务器keepalived停掉才会漂移到另一台nopreemptauthentication {# 主备必须配置成同样的auth_type PASS# 主备必须配置成同样的auth_pass 1111}virtual_ipaddress {# vip,主备必须配置一样192.168.182.211} } EOF【4】配置服务启动 cat /usr/lib/systemd/system/keepalived.service EOF [Unit] DescriptionLVS and VRRP High Availability Monitor Afternetwork-online.target syslog.target Wantsnetwork-online.target Documentationman:keepalived(8) Documentationman:keepalived.conf(5) Documentationman:genhash(1) Documentationhttps://keepalived.org[Service] Typeforking PIDFile/run/keepalived.pid KillModeprocess EnvironmentFile-/usr/local/keepalived/sysconfig/keepalived ExecStart/usr/local/keepalived/sbin/keepalived \(KEEPALIVED_OPTIONS ExecReload/bin/kill -HUP \)MAINPID[Install] WantedBymulti-user.targetEOF【5】启动 keepalived systemctl daemon-reload systemctl enable –now keepalived2、创建初始化配置文件 注意这里使用VIP kubeadm config print init-defaults kubeadm-config.yaml3、k8s 集群初始化 这里追加tee命令将初始化日志输出到kubeadm-init.log中以备用可选。 kubeadm init –configkubeadm-config.yaml –experimental-upload-certs | tee kubeadm-init.log或者直接初始化 kubeadm init --apiserver-advertise-address192.168.182.211 --image-repository registry.aliyuncs.com/google_containers --control-plane-endpointcluster-endpoint --kubernetes-version v1.23.6 --service-cidr10.1.0.0/16 --pod-network-cidr10.244.0.0/16 --v54、安装 cni 插件flannel
wget https://raw.githubusercontent.com/flannel-io/flannel/v0.20.2/Documentation/kube-flannel.yml
kubeclt apply -f kube-flannel.yml4添加 master 节点
在需要添加的master节点上执行CERT_KEYssh cluster-endpoint kubeadm init phase upload-certs –upload-certs|tail -1join_strssh cluster-endpoint kubeadm token create –print-join-commandecho \(join_str --control-plane --certificate-key \)CERT_KEY –v5# 拿到上面打印的命令在需要添加的节点上执行# –control-plane 标志通知 kubeadm join 创建一个新的控制平面。加入master必须加这个标记
–certificate-key … 将导致从集群中的 kubeadm-certs Secret 下载控制平面证书并使用给定的密钥进行解密。这里的值就是上面这个命令kubeadm init phase upload-certs –upload-certs打印出的key。mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf \(HOME/.kube/config sudo chown \)(id -u):\((id -g) \)HOME/.kube/config# 去掉master污点
kubectl taint nodes hostname node-role.kubernetes.io/master:NoSchedule- 2/dev/null
kubectl taint nodes hostname node.kubernetes.io/not-ready:NoSchedule- 2/dev/null5添加 node 节点 CERT_KEYssh cluster-endpoint kubeadm init phase upload-certs –upload-certs|tail -1join_strssh cluster-endpoint kubeadm token create –print-join-commandecho \(join_str --certificate-key \)CERT_KEY –v56配置 IPVS
1、加载ip_vs相关内核模块 modprobe – ip_vs modprobe – ip_vs_sh modprobe – ip_vs_rr modprobe – ip_vs_wrr
验证开启了ipvs
lsmod |grep ip_vs2、离线安装 ipvsadm 工具 在线安装就非常简单了 yum install ipvsadm -y下载地址http://www.linuxvirtualserver.org/software/ipvs.html wget https://kernel.org/pub/linux/utils/kernel/ipvsadm/ipvsadm-1.31.tar.gz –no-check-certificate tar -xzvf ipvsadm-1.31.tar.gz cd ipvsadm-1.31# 先安装依赖包 yum install -y libnl libnl-devel gcc
编译安装
make make install# 查看版本号 ipvsadm -version3、编辑kube-proxy配置文件mode修改成ipvs kubectl edit configmap -n kube-system kube-proxy4、重启kube-proxy
先查看
kubectl get pod -n kube-system | grep kube-proxy
再delete让它自拉起
kubectl get pod -n kube-system | grep kube-proxy |awk {system(kubectl delete pod $1 -n kube-system)}
再查看
kubectl get pod -n kube-system | grep kube-proxy7安装 ingress-nginx
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.0/deploy/static/provider/cloud/deploy.yaml -O /tmp/deploy.yamlkubectl apply -f /tmp/deploy.yaml8安装 nfs provisioner
1、安装helm helm安装包在提供的资源包里也是有的可以不用再去外网下载的。
下载包
wget https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gz -O /tmp/helm-v3.7.1-linux-amd64.tar.gz
解压压缩包
tar -xf /tmp/helm-v3.7.1-linux-amd64.tar.gz -C /root/
制作软连接
ln -s /root/linux-amd64/helm /usr/local/bin/helm2、添加helm仓库源
添加helm仓库源
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/3、安装 nfs 【服务端】
安装nfs
yum -y install nfs-utils rpcbind# 服务端 mkdir -p /opt/nfsdata
授权共享目录
chmod 666 /opt/nfsdata cat /etc/exportsEOF /opt/nfsdata *(rw,no_root_squash,no_all_squash,sync) EOF
配置生效
exportfs -rsystemctl enable –now rpcbind systemctl enable –now nfs-server【客户端】 yum -y install rpcbind systemctl enable –now rpcbind3、nfs provisioner
helm安装nfs provisioner安装包在提供的资源里也有可以不用再去外网下载
helm install nfs-subdir-external-provisioner ./nfs-subdir-external-provisioner-4.0.17.tgz --namespacenfs-provisioner --create-namespace --set image.repositorywilldockerhub/nfs-subdir-external-provisioner --set image.tagv4.0.2 --set replicaCount2 --set storageClass.namenfs-client --set storageClass.defaultClasstrue --set nfs.servercluster-endpoint --set nfs.path/opt/nfsdata# 查看 kubectl get pods,deploy,sc -n nfs-provisioner9安装 Dashboard 1、安装 GitHub地址https://github.com/kubernetes/dashboard kubectl apply -f dashboard.yaml
查看
kubectl get pods,svc -n kubernetes-dashboard2、创建登录用户 cat ServiceAccount.yamlEOF apiVersion: v1 kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: admin-user roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin subjects:
kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard EOF kubectl apply -f ServiceAccount.yaml3、创建并获取登录token kubectl -n kubernetes-dashboard create token admin-user4、登录 web 登录地址https://ip:31443/如果提示如下建议换成火狐浏览器试试。如果有证书情况下是不会有种问题的。 火狐浏览器访问web
10安装镜像仓库 Harbor 1、创建证书 mkdir stl cd stl生成 CA 证书私钥
openssl genrsa -out ca.key 4096
生成 CA 证书
openssl req -x509 -new -nodes -sha512 -days 3650 -subj /CCN/STGuangdong/LShenzhen/Oharbor/OUharbor/CNmyharbor.com -key ca.key -out ca.crt
创建域名证书生成私钥
openssl genrsa -out myharbor.com.key 4096
生成证书签名请求 CSR
openssl req -sha512 -new -subj /CCN/STGuangdong/LShenzhen/Oharbor/OUharbor/CNmyharbor.com -key myharbor.com.key -out myharbor.com.csr
生成 x509 v3 扩展
cat v3.ext -EOF authorityKeyIdentifierkeyid,issuer basicConstraintsCA:FALSE keyUsage digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage serverAuth subjectAltName alt_names[alt_names] DNS.1myharbor.com DNS.2*.myharbor.com DNS.3hostname EOF #创建 Harbor 访问证书 openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in myharbor.com.csr -out myharbor.com.crt2、创建证书秘钥 kubectl create secret tls myharbor.com –key myharbor.com.key –cert myharbor.com.crt -n harbor kubectl get secret myharbor.com -n harbor3、添加 Chart 库 helm repo add harbor https://helm.goharbor.io4、开始部署 harbor
下载安装包
helm pull harbor/harbor
harbor-1.11.1.tgz 安装包在提供的资源包里是有的可以不用再去外网下载的。
helm install myharbor ./harbor-1.11.1.tgz --namespaceharbor –create-namespace --set expose.ingress.hosts.coremyharbor.com --set expose.ingress.hosts.notarynotary.myharbor.com --set-string expose.ingress.annotations.nginx.org/client-max-body-size1024m --set expose.tls.secretNamemyharbor.com --set persistence.persistentVolumeClaim.registry.storageClassnfs-client --set persistence.persistentVolumeClaim.jobservice.storageClassnfs-client --set persistence.persistentVolumeClaim.database.storageClassnfs-client --set persistence.persistentVolumeClaim.redis.storageClassnfs-client --set persistence.persistentVolumeClaim.trivy.storageClassnfs-client --set persistence.persistentVolumeClaim.chartmuseum.storageClassnfs-client --set persistence.enabledtrue --set externalURLhttps://myharbor.com --set harborAdminPasswordHarbor123455、查看 kubectl get pods,ingress -n harbor5、web 访问 配置hosts如果是真实的域名就可以不用配置hosts了 192.168.182.110 myharbor.com访问地址https://myharbor.com/ 账号/密码admin/Harbor12345注意这里的密码是上面安装时自定义的 【云原生】k8s 离线部署详解过程就到这里有不明白或者部署过程中有问题的小伙伴欢迎给我留言哦后续会持续更新相关技术文章的离线部署包资源关注我的公众号【大数据与云原生技术分享】回复【k8s】即可获取~
- 上一篇: 温州网站建设公司深圳网站建设企
- 下一篇: 温州网站建设免费扑克网站
相关文章
-
温州网站建设公司深圳网站建设企
温州网站建设公司深圳网站建设企
- 技术栈
- 2026年04月20日
-
温州网站建设公司排名wordpress 图片采集
温州网站建设公司排名wordpress 图片采集
- 技术栈
- 2026年04月20日
-
温州网站建设策划在线网站做气泡图
温州网站建设策划在线网站做气泡图
- 技术栈
- 2026年04月20日
-
温州网站建设免费扑克网站
温州网站建设免费扑克网站
- 技术栈
- 2026年04月20日
-
温州网站建设模板下载免费甘肃做网站哪家专业
温州网站建设模板下载免费甘肃做网站哪家专业
- 技术栈
- 2026年04月20日
-
温州网站建设温州网站制作电话推销网站建设
温州网站建设温州网站制作电话推销网站建设
- 技术栈
- 2026年04月20日
