96SEO 2026-02-23 14:33 30
k8s集群master02192.168.80.20k8s集群node01192.168.80.11

k8s集群node02192.168.80.12etcd集群节点1192.168.80.10
etcd集群节点3192.168.80.12负载均衡nginxkeepalive01master192.168.80.14
负载均衡nginxkeepalive02backup192.168.80.151.2
net.bridge.bridge-nf-call-ip6tables
net.bridge.bridge-nf-call-iptables
net.ipv6.conf.all.disable_ipv61
etcd是CoreOS团队于2013年6月发起的开源项目它的目标是构建一个高可用的分布式键值key-value数据库。
etcd内部采用raft协议作为一致性算法etcd是go语言编写的。
2380端口和peer通信(这两个端口已经被IANA(互联网数字分配机构)官方预留给etcd)。
即etcd默认使用2379端口对外为客户端提供通讯使用端口2380来进行服务器间内部通讯。
2、etcd
https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
/usr/local/bin/cfssl-certinfochmod
/usr/local/bin/cfssl*cfssl证书签发的工具命令
服务的启动命令后面可跟各种启动参数etcdctl主要为etcd
/opt/k8s/etcd-v3.4.9-linux-amd64/
etcd02https://192.168.80.11:2380,etcd03https://192.168.80.12:2380
#进入卡住状态等待其他节点加入这里需要三台etcd服务同时启动如果只启动其中一台后服务会卡在那里直到集群中所有etcd节点都已启动可忽略这个情况#可另外打开一个窗口查看etcd进程是否正常
etcd#把etcd相关证书文件、命令文件和服务管理文件全部拷贝到另外两个etcd集群节点
/usr/lib/systemd/system/etcd.service
root192.168.80.11:/usr/lib/systemd/system/
/usr/lib/systemd/system/etcd.service
root192.168.80.12:/usr/lib/systemd/system///在
ETCD_DATA_DIR/var/lib/etcd/default.etcd
ETCD_LISTEN_PEER_URLShttps://192.168.80.11:2380
ETCD_LISTEN_CLIENT_URLShttps://192.168.80.11:2379
ETCD_INITIAL_ADVERTISE_PEER_URLShttps://192.168.80.11:2380
ETCD_ADVERTISE_CLIENT_URLShttps://192.168.80.11:2379
ETCD_INITIAL_CLUSTERetcd01https://192.168.80.10:2380,etcd02https://192.168.80.11:2380,etcd03https://192.168.80.12:2380
ETCD_INITIAL_CLUSTER_TOKENetcd-cluster
ETCD_INITIAL_CLUSTER_STATEnew#启动etcd服务
ETCD_DATA_DIR/var/lib/etcd/default.etcd
ETCD_LISTEN_PEER_URLShttps://192.168.80.12:2380
ETCD_LISTEN_CLIENT_URLShttps://192.168.80.12:2379
ETCD_INITIAL_ADVERTISE_PEER_URLShttps://192.168.80.12:2380
ETCD_ADVERTISE_CLIENT_URLShttps://192.168.80.12:2379
ETCD_INITIAL_CLUSTERetcd01https://192.168.80.10:2380,etcd02https://192.168.80.11:2380,etcd03https://192.168.80.12:2380
ETCD_INITIAL_CLUSTER_TOKENetcd-cluster
ETCD_INITIAL_CLUSTER_STATEnew#启动etcd服务
--key/opt/etcd/ssl/server-key.pem
--endpointshttps://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379
-ca-file使用此CA证书验证启用https的服务器的证书
--key/opt/etcd/ssl/server-key.pem
--endpointshttps://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
/opt/kubernetes/{bin,cfg,ssl,logs}#创建用于生成CA证书、相关组件的证书和私钥的目录
kube-proxy.pem#复制CA证书、apiserver相关证书和私钥到
kubernetes-server-linux-amd64.tar.gz
kubernetes-server-linux-amd64.tar.gz#复制master组件的关键命令文件到
启动时会调用然后就相当于在集群内创建了一个这个用户接下来就可以用
${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,system:kubelet-bootstrap
/opt/kubernetes/cfg/token.csv#二进制文件、token、证书都准备好后开启
https://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379#检查进程是否启动成功
#安全端口6443用于接收HTTPS请求用于基于Token文件或客户端证书等认证#启动
kube-controller-manager#生成kubectl连接集群的kubeconfig文件
./admin.sh#绑定默认cluster-admin管理员集群角色授权kubectl访问集群
--usersystem:anonymous#通过kubectl工具查看当前集群组件状态
/opt/kubernetes/{bin,cfg,ssl,logs}#上传
root192.168.80.11:/opt/kubernetes/bin/
root192.168.80.12:/opt/kubernetes/bin/#上传kubeconfig.sh文件到/opt/k8s/kubeconfig目录中生成kubelet初次加入集群引导kubeconfig文件和kube-proxy.kubeconfig文件
bootstrap.kubeconfig、kube-proxy.kubeconfig
root192.168.80.11:/opt/kubernetes/cfg/
root192.168.80.12:/opt/kubernetes/cfg/#RBAC授权使用户
--clusterrolesystem:node-bootstrapper
--userkubelet-bootstrap1、kubelet
--experimental-cluster-signing-duration
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE
kubernetes.io/kube-apiserver-client-kubelet
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE#Approved,Issued
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE
kubernetes.io/kube-apiserver-client-kubelet
Approved,Issued#查看节点由于网络插件还没有部署节点会没有准备就绪
-r)/kernel/net/netfilter/ipvs|grep
内的容器是不会跨宿主机的共享同一个网络命令空间相当于它们在同一台机器上一样可以用
叠加网络在二层或者三层基础网络上叠加的一种虚拟网络技术模式该网络中的主机通过虚拟链路隧道连接起来类似于VPN。
将源数据包封装到UDP中并使用基础网络的IP/MAC作为外层报文头进行封装然后在以太网上传输到达目的地后由隧道端点解封装并将数据发送给目标地址。
模式是在用户态做转发会多一次报文隧道封装因此性能上会比在内核态做转发的
是一种overlay虚拟隧道通信技术通过三层网络搭建虚拟的二层网络跟
1、udp模式是在用户态实现的数据会先经过tun网卡到应用程序应用程序再做隧道封装再进一次内核协议栈而vxlan是在内核当中实现的只经过一次协议栈在协议栈内就把vxlan包组装好
2、udp模式的tun网卡是三层转发使用tun是在物理网络之上构建三层网络属于ip
udp的方式所以实现起来会涉及mac地址学习arp广播等二层知识udp模式主要关注路由
1、vxlan在内核当中实现当数据包使用vxlan设备发送数据时会打上vlxan的头部信息在发送出去对端解包flannel.1网卡把原始报文发送到目的服务器。
cni-plugins-linux-amd64-v0.8.6.tgz
cni-plugins-linux-amd64-v0.8.6.tgz
需要在每个节点上把发向容器的数据包进行封装后再用隧道将封装后的数据包发送到运行着目标Pod的node节点上。
目标node节点再负责去掉封装将去除封装的数据包发送到目标Pod上。
数据通信性能则大受影响。
Calico不使用隧道或NAT来实现转发而是把Host当作Internet中的路由器使用BGP同步路由并使用iptables来做安全访问策略完成跨Host转发来。
CNI插件主要负责与kubernetes对接供kubelet调用使用。
2、Felix负责维护宿主机上的路由规则、FIB转发信息库等。
实际上是将集群里所有的节点都当做边界路由器来处理他们一起组成了一个全互联的网络彼此之间通过
小结目前比较常用的时flannel和calicoflannel的功能比较简单不具备复杂的网络策略配置能力calico是比较出色的网络管理插件但具备复杂网络配置能力的同时往往意味着本身的配置比较复杂所以相对而言比较小而简单的集群使用flannel考虑到日后扩容未来网络可能需要加入更多设备配置更多网络策略则使用calico更好。
#修改里面定义Pod网络CALICO_IPV4POOL_CIDR与前面kube-controller-manager配置文件指定的cluster-cidr网段一样-
calico-kube-controllers-659bd7879c-4h8vk
node-csr-BbqEh6LvhD4R6YdDUeEPthkb6T_CJDcpVsmdvnh81y0
kubernetes.io/kube-apiserver-client-kubelet
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE
kubernetes.io/kube-apiserver-client-kubelet
node-csr-BbqEh6LvhD4R6YdDUeEPthkb6T_CJDcpVsmdvnh81y0kubectl
node-csr-BbqEh6LvhD4R6YdDUeEPthkb6T_CJDcpVsmdvnh81y0
kubernetes.io/kube-apiserver-client-kubelet
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE
kubernetes.io/kube-apiserver-client-kubelet
-r)/kernel/net/netfilter/ipvs|grep
kube-dns.kube-system.svc.cluster.localName:
kubernetes.default.svc.cluster.local1.8.2
节点上拷贝证书文件、各master组件的配置文件和服务管理文件到
/usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service
root192.168.80.20:/usr/lib/systemd/system///修改配置文件kube-apiserver中的IP
/opt/kubernetes/cfg/kube-apiserver
KUBE_APISERVER_OPTS--logtostderrtrue
--etcd-servershttps://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379
--advertise-address192.168.80.20
kube-controller-manager.service
kube-controller-manager.service
kube-scheduler.service//查看node节点状态
#-owide输出额外信息对于Pod将输出Pod所在的Node名
//此时在master02节点查到的node节点状态仅是从etcd查询到的信息而此时node节点实际上并未与master02节点建立通信连接因此需要使用一个VIP把node节点与master节点都关联起来1.8.3
balancer集群双机热备负载均衡nginx实现负载均衡keepalived实现双机热备
//配置nginx的官方在线yum源配置本地nginx的yum源
baseurlhttp://nginx.org/packages/centos/7/$basearch/
-y//修改nginx配置文件配置四层反向代理负载均衡指定k8s群集2台master的节点ip和6443端口
$upstream_bytes_sent;access_log
/etc/keepalived/keepalived.conf
{acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}#
Alexandre.Cassenfirewall.locsmtp_server
/etc/nginx/check_nginx.sh//启动keepalived服务一定要先启动了nginx服务再启动keepalived服务
#查看VIP是否生成//修改node节点上的bootstrap.kubeconfig,kubelet.kubeconfig配置文件为VIP
https://192.168.80.100:6443//重启kubelet和kube-proxy服务
//READY为1/1表示这个Pod中有1个容器//在对应网段的node节点上操作可以直接使用浏览器或者curl命令访问
172.17.36.2//这时在master01节点上查看nginx日志发现没有权限查看
仪表板是基于Web的Kubernetes用户界面。
可以使用仪表板将容器化应用程序部署到Kubernetes集群对容器化应用程序进行故障排除并管理集群本身及其伴随资源。
您可以使用仪表板来概述群集上运行的应用程序以及创建或修改单个Kubernetes资源例如部署作业守护进程等。
例如可以使用部署向导扩展部署启动滚动更新重新启动Pod或部署新应用程序。
仪表板还提供有关群集中Kubernetes资源状态以及可能发生的任何错误的信息。
#默认Dashboard只能集群内部访问修改Service为NodePort类型暴露到外部
account并绑定默认cluster-admin管理员集群角色
--serviceaccountkube-system:dashboard-admin
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback