Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整

文章目录

  • 前置知识
  • 一、Deployment脚本部署Tomcat集群
  • 二、外部访问Tomcat集群
  • 三、利用Rinted对外提供Service负载均衡支持
    • 1、创建服务
    • 2、端口转发工具Rinetd
    • 3、定义jsp文件查看转发到哪个节点
  • 四、部署配置挂载点
  • 五、基于NFS实现集群文件共享
    • 1、master
    • 2、node
    • 3、验证
  • 六、集群配置调整与资源限定
    • 1、增加资源限定
    • 2、调整节点
  • 总结
    • 1、ERROR: cannot verify www.boutell.co.uk's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:Issued certificate has expired.To connect to www.boutell.co.uk insecurely, use `--no-check-certificate'.
    • 2、k8s的master无法ping通ClusterIP

前置知识

Deployment脚本是一种用于自动化应用程序部署过程的脚本。它包含一系列命令和配置,用于将应用程序从开发环境部署到生产环境或其他目标环境。
部署相对于Kubernetes向Node节点发送指令,创建容器的过程,Kubernetes支持yml格式的部署脚本

与部署相关常用命令:

  • 创建部署:kubectl create -f 部署yml文件
  • 更新部署配置:kubectl apply -f 部署yml文件
  • 查看已部署pod:kubectl get pod [-o wide],-o wide表示详细信息
  • 查看Pod详细信息:kubectl describe pod pod名称
  • 查看pod输出日志:kubectl logs [-f] pod名称,-f表示是否实时更新
  • 删除部署服务:kubectl delete service

一、Deployment脚本部署Tomcat集群

master执行即可

设置部署文件,vi tomcat-deploy.yml,内容如下:

apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
  name: tomcat-deploy
spec:
  replicas: 2 
  template: 
    metadata:
      labels:
        app: tomcat-cluster
    spec:
      containers:
      - name: tomcat-cluster
        image: tomcat:latest
        ports:
        - containerPort: 8080

创建部署:kubectl create -f tomcat-deploy.yml

[root@master k8s]# kubectl create -f tomcat-deploy.yml
deployment.extensions/tomcat-deploy created

看看是否配置正确:kubectl get deployment

[root@master k8s]# kubectl get deploy
NAME            READY   UP-TO-DATE   AVAILABLE   AGE
tomcat-deploy   2/2     2            2           6m34s

二、外部访问Tomcat集群

设置服务文件,vi tomcat-service.yml,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: tomcat-service
  labels:
    app: tomcat-service
spec:
  type: NodePort
  selector:
    app: tomcat-cluster
  ports:
  - port: 8000
    targetPort: 8080
    nodePort: 32500

参数说明:spec.selector.app就是我们之前部署的集群标签名
Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整_第1张图片
创建部署:kubectl create -f tomcat-service.yml

[root@master k8s]# kubectl create -f tomcat-service.yml
service/tomcat-service created

看看是否配置正确:kubectl get service

[root@master forlan-test]# kubectl get service
NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
kubernetes       ClusterIP   10.96.0.1               443/TCP    173m
tomcat-service   ClusterIP   10.110.88.125           8000/TCP   159m

访问验证:此时,我们就可以通过node节点的ip+暴露的nodePort进行访问,http://192.168.56.201:32500 或 http://192.168.56.202:32500,打开界面,第一次比较慢,会出现404表示成功
Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整_第2张图片

三、利用Rinted对外提供Service负载均衡支持

上面主要通过节点和暴露的端口访问,无法进行负载均衡,没有利用起集群这个利器,我们通过Rinted,我们直接访问master节点即可,还可以实现负载均衡,下面就来操作实现下

1、创建服务

删除之前部署的服务

[root@master k8s]# kubectl delete service tomcat-service
service "tomcat-service" deleted

编辑服务文件,vi tomcat-service.yml,调整内容,主要注释掉type: NodePortnodePort: 32500

apiVersion: v1
kind: Service
metadata:
  name: tomcat-service
  labels:
    app: tomcat-service
spec:
#  type: NodePort
  selector:
    app: tomcat-cluster
  ports:
  - port: 8000
    targetPort: 8080
#    nodePort: 32500

重新创建服务:kubectl create -f tomcat-service.yml

[root@master k8s]# kubectl create -f tomcat-service.yml
service/tomcat-service created

看看是否配置正确:kubectl get service

[root@master forlan-test]# kubectl get service
NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
kubernetes       ClusterIP   10.96.0.1               443/TCP    173m
tomcat-service   ClusterIP   10.110.88.125           8000/TCP   159m

查看详细的服务信息:kubectl describe service tomcat-service

[root@master forlan-test]# kubectl describe service tomcat-service
Name:              tomcat-service
Namespace:         default
Labels:            app=tomcat-service
Annotations:       
Selector:          app=tomcat-cluster
Type:              ClusterIP
IP:                10.110.88.125
Port:                8000/TCP
TargetPort:        8080/TCP
Endpoints:         10.244.1.10:8080,10.244.2.9:8080
Session Affinity:  None
Events:            

验证一下,正常情况下,在master发生请求,应该返回404才对,但是这里很奇怪,在node节点发送请求,返回404,待解决

[root@node2 forlan-web]# curl 10.110.88.125:8000
<!doctype html>"en">HTTP Status 404 – Not Found<<span class="token operator">/</span>title><style <span class="token function">type</span>=<span class="token string">"text/css"</span>>body <span class="token punctuation">{</span>font-family:Tahoma<span class="token punctuation">,</span>Arial<span class="token punctuation">,</span>sans-serif<span class="token punctuation">;</span><span class="token punctuation">}</span> h1<span class="token punctuation">,</span> h2<span class="token punctuation">,</span> h3<span class="token punctuation">,</span> b <span class="token punctuation">{</span>color:white<span class="token punctuation">;</span>background-color:<span class="token comment">#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Description</b> The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.</p><hr class="line" /><h3>Apache Tomcat/10.0.14</h3></body></html>[root@node2 forlan-web]# </span>
</code></pre> 
  <h3>2、端口转发工具Rinetd</h3> 
  <blockquote> 
   <p>上面只是实现在节点内访问,想在外部访问,往下操作</p> 
  </blockquote> 
  <p>下载rinetd工具包,解压</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@master k8s]</span><span class="token comment"># wget http://www.boutell.com/rinetd/http/rinetd.tar.gz --no-check-certificate</span>
<span class="token namespace">[root@master k8s]</span><span class="token comment"># tar -xzvf rinetd.tar.gz</span>
</code></pre> 
  <p>进入rinetd目录,修改 rinetd.c 文件,将文件中的所有 65536 替换为 65535</p> 
  <pre><code class="prism language-powershell">cd rinetd
sed <span class="token operator">-</span>i <span class="token string">'s/65536/65535/g'</span> rinetd<span class="token punctuation">.</span>c
</code></pre> 
  <p>注:"s"表示替换操作,"65536"是要被替换的内容,"65535"是替换后的内容,"g"表示全局替换</p> 
  <p>创建rinetd要求的目录/usr/man,安装gcc编译器,编译并安装程序</p> 
  <pre><code class="prism language-powershell">mkdir <span class="token operator">-</span>p <span class="token operator">/</span>usr/man
yum install <span class="token operator">-</span>y gcc
make && make install
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/43019a2f1ee94ef38ad568d42da8f7d3.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/43019a2f1ee94ef38ad568d42da8f7d3.jpg" alt="Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整_第3张图片" width="650" height="122" style="border:1px solid black;"></a></p> 
  <p>进行端口映射<br> 编辑配置文件:<code>vi /etc/rinetd.conf</code>,0.0.0.0表示所有ip都转发</p> 
  <pre><code class="prism language-powershell">0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0 8000 10<span class="token punctuation">.</span>110<span class="token punctuation">.</span>88<span class="token punctuation">.</span>125 8000
</code></pre> 
  <p>让配置生效</p> 
  <pre><code class="prism language-powershell">rinetd <span class="token operator">-</span>c <span class="token operator">/</span>etc/rinetd<span class="token punctuation">.</span>conf
</code></pre> 
  <p>查看是否有监听8000端口:netstat -tulpn|grep 8000</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@master rinetd]</span><span class="token comment"># netstat -tulpn|grep 8000</span>
tcp        0      0 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:8000            0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:<span class="token operator">*</span>               LISTEN      25126/rinetd 
</code></pre> 
  <p>访问masterIp:8000验证,出现404表示成功</p> 
  <h3>3、定义jsp文件查看转发到哪个节点</h3> 
  <p>在node节点查看当前运行的容器</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@node1 /]</span><span class="token comment"># docker ps</span>
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS          PORTS     NAMES
e704f7fd1af2   tomcat                 <span class="token string">"catalina.sh run"</span>        54 minutes ago   Up 54 minutes             k8s_tomcat-cluster_tomcat-deploy-5fd4fc7ddb-d2cx8_default_b62cd02c-8a8d-11ee-bab1-5254004d77d3_0
</code></pre> 
  <p>进入容器内部:docker exec -it <container_id> /bin/bash</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@node1 /]</span><span class="token comment"># docker exec -it e704f7fd1af2 /bin/bash</span>
root@tomcat-deploy-5fd4fc7ddb-d2cx8:<span class="token operator">/</span>usr/local/tomcat<span class="token comment"># ls</span>
BUILDING<span class="token punctuation">.</span>txt  CONTRIBUTING<span class="token punctuation">.</span>md  LICENSE	NOTICE	README<span class="token punctuation">.</span>md  RELEASE-NOTES  RUNNING<span class="token punctuation">.</span>txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps<span class="token punctuation">.</span>dist  work
</code></pre> 
  <p>在webapps下新建我们的jsp文件,vi index.jsp,发现命令不支持,也安装不了相关的命令</p> 
  <pre><code class="prism language-powershell">root@tomcat-deploy-5fd4fc7ddb-d2cx8:<span class="token operator">/</span>usr/local/tomcat/webapps<span class="token comment"># vi index.jsp</span>
bash: vi: command not found
root@tomcat-deploy-5fd4fc7ddb-d2cx8:<span class="token operator">/</span>usr/local/tomcat/webapps<span class="token comment"># yum install vi</span>
bash: yum: command not found
</code></pre> 
  <p>上面的情况,目前有2种解决方案:</p> 
  <ul> 
   <li>通过Dockerfile自定义构建镜像,安装相关的指令</li> 
   <li>通过挂载宿主机目录到容器<br> 第1种方式可以参考:https://blog.csdn.net/qq_36433289/article/details/134731875<br> 下面我们来介绍下第2种方式</li> 
  </ul> 
  <h2>四、部署配置挂载点</h2> 
  <p>主要是把宿主机的/forlan-web目录挂载到容器内的/usr/local/tomcat/webapps目录,调整我们之前定义的部署文件:<code>vi tomcat-deploy.yml</code>,调整内容如下:<br> <a href="http://img.e-com-net.com/image/info8/f819eb21e638427dabe61f8d3ce7a286.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f819eb21e638427dabe61f8d3ce7a286.jpg" alt="Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整_第4张图片" width="457" height="442" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell">apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat-deploy
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: tomcat-cluster
    spec:
      volumes:
      <span class="token operator">-</span> name: web-app
        hostPath:
          path: <span class="token operator">/</span>forlan-web
      containers:
      <span class="token operator">-</span> name: tomcat-cluster
        image: tomcat:latest
        ports:
        <span class="token operator">-</span> containerPort: 8080
        volumeMounts:
        <span class="token operator">-</span> name: web-app
          mountPath: <span class="token operator">/</span>usr/local/tomcat/webapps
</code></pre> 
  <p>更新集群配置:<code>kubectl apply -f tomcat-deploy.yml</code></p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@master k8s]</span><span class="token comment"># kubectl apply -f tomcat-deploy.yml</span>
deployment<span class="token punctuation">.</span>extensions/tomcat-deploy configured
</code></pre> 
  <p>测试在宿主机/forlan-web/forlan-test下新增index.jsp文件,进入容器查看有同步即可,至此,就说明挂载成功了</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@node1 mnt]</span><span class="token comment"># vi /forlan-web/forlan-test/index.jsp</span>
<<span class="token operator">%=</span>request<span class="token punctuation">.</span>getLocalAddr<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">%</span>>
<span class="token namespace">[root@node1 mnt]</span><span class="token comment"># docker ps|grep tomcat-cluster</span>
CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS         PORTS     NAMES
b064bbacaf00   tomcat                 <span class="token string">"catalina.sh run"</span>        2 minutes ago   Up 2 minutes             k8s_tomcat-cluster_tomcat-deploy-6678dccdc9-gjd9r_default_b5c19b2c-8aa4-11ee-bab1-5254004d77d3_0
<span class="token namespace">[root@node1 mnt]</span><span class="token comment"># docker exec -it b064bbacaf00 /bin/bash</span>
root@tomcat-deploy-6678dccdc9-gjd9r:<span class="token operator">/</span>usr/local/tomcat<span class="token comment"># cd webapps</span>
root@tomcat-deploy-6678dccdc9-gjd9r:<span class="token operator">/</span>usr/local/tomcat/webapps<span class="token comment"># cat forlan-test/index.jsp</span>
<<span class="token operator">%=</span>request<span class="token punctuation">.</span>getLocalAddr<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">%</span>>
</code></pre> 
  <p>验证一下,访问masterIp:8000验证,出现10.244.2.9 或 10.244.1.10,就说明请求到了node1 或 node2</p> 
  <h2>五、基于NFS实现集群文件共享</h2> 
  <p>前面的index.jsp,是单独维护在node节点的机器,如果多个node节点存在相同文件,可以怎么处理?那就可以使用NFS来实现集群文件共享了</p> 
  <blockquote> 
   <p>Network File System - NFS<br> NFS,是由SUN公司研制的文件传输协议<br> NFS主要是采用远程过程调用RPC机制实现文件传输<br> NFS允许一台服务器在网络上共享文件和资源。/etc/exports 文件是 NFS 的主要配置文件,用于定义哪些目录或文件系统可以被哪些客户端共享</p> 
  </blockquote> 
  <h3>1、master</h3> 
  <p>安装组件</p> 
  <pre><code class="prism language-powershell">yum install <span class="token operator">-</span>y nfs-utils rpcbind
</code></pre> 
  <p>创建共享目录</p> 
  <pre><code class="prism language-powershell">cd <span class="token operator">/</span>usr/local
mkdir forlan-<span class="token keyword">data</span>
</code></pre> 
  <p>编辑暴露文件:vi /etc/exports</p> 
  <pre><code class="prism language-powershell"><span class="token operator">/</span>usr/local/forlan-<span class="token keyword">data</span> 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>56<span class="token punctuation">.</span>200/24<span class="token punctuation">(</span>rw<span class="token punctuation">,</span>sync<span class="token punctuation">)</span>
</code></pre> 
  <p>参数说明:</p> 
  <ul> 
   <li>/24表示子网掩码,它指示前24位是网络地址,剩下的8位是主机地址,这意味着这个IP地址范围内有256个可用的IP地址(因为2的8次方等于256)</li> 
   <li>192.168.56.200/24表示的确是从192.168.56.0到192.168.56.255的IP地址范围<br> (rw,sync)是访问模式</li> 
   <li>rw 表示客户端可读写共享的目录。</li> 
   <li>sync 表示数据在写入后会被同步刷新到磁盘上,以保证数据的持久性。</li> 
  </ul> 
  <p>启动服务并设置开机自动启动</p> 
  <pre><code class="prism language-powershell">systemctl <span class="token function">start</span> nfs<span class="token punctuation">.</span>service
systemctl <span class="token function">start</span> rpcbind<span class="token punctuation">.</span>service
systemctl enable nfs<span class="token punctuation">.</span>service
systemctl enable rpcbind<span class="token punctuation">.</span>service
</code></pre> 
  <p>验证是否配置成功:<code>exportfs</code>,看到配置说明成功</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@master local]</span><span class="token comment"># exportfs</span>
<span class="token operator">/</span>usr/local/forlan-<span class="token keyword">data</span>
		192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>56<span class="token punctuation">.</span>200/24
</code></pre> 
  <p>后续暴露文件有变动,执行<code>exportfs -ra</code>重新加载NFS服务</p> 
  <h3>2、node</h3> 
  <p>安装组件</p> 
  <pre><code class="prism language-powershell">yum install <span class="token operator">-</span>y nfs-utils rpcbind
</code></pre> 
  <p>验证是否暴露了:showmount -e 192.168.56.200</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@node1 /]</span><span class="token comment"># showmount -e 192.168.56.200</span>
Export list <span class="token keyword">for</span> 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>56<span class="token punctuation">.</span>200:
<span class="token operator">/</span>usr/local/forlan-<span class="token keyword">data</span> 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>56<span class="token punctuation">.</span>200/24
</code></pre> 
  <p>进行挂载:</p> 
  <pre><code class="prism language-powershell"><span class="token function">mount</span> 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>56<span class="token punctuation">.</span>200:<span class="token operator">/</span>usr/local/forlan-<span class="token keyword">data</span> <span class="token operator">/</span>forlan-web
</code></pre> 
  <h3>3、验证</h3> 
  <p>master的共享目录增加文件index.jsp,node目录看得到,说明成功,如下:</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@master forlan-data]</span><span class="token comment"># ll</span>
total 0
<span class="token namespace">[root@master forlan-data]</span><span class="token comment"># vi /usr/local/forlan-data/index.jsp</span>
<span class="token namespace">[root@master forlan-data]</span><span class="token comment"># ls</span>
index<span class="token punctuation">.</span>jsp

<span class="token namespace">[root@node1 forlan-web]</span><span class="token comment"># ls</span>
index<span class="token punctuation">.</span>jsp


<span class="token namespace">[root@node2 forlan-web]</span><span class="token comment"># ls</span>
index<span class="token punctuation">.</span>jsp
</code></pre> 
  <h2>六、集群配置调整与资源限定</h2> 
  <p>原来部署了2个,现在需要部署3个Tomcat?你起码得满足什么配置才能操作?</p> 
  <h3>1、增加资源限定</h3> 
  <ul> 
   <li>最低要求requests</li> 
   <li>最大限制limits</li> 
   <li>cpu不一定是整数,0.5也可以,指的是核数<br> <a href="http://img.e-com-net.com/image/info8/52f014afcdbc4b73b4ba9f762e281a4f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/52f014afcdbc4b73b4ba9f762e281a4f.jpg" alt="Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整_第5张图片" width="358" height="332" style="border:1px solid black;"></a></li> 
  </ul> 
  <h3>2、调整节点</h3> 
  <p>编辑部署文件:vi /k8s/tomcat-deploy.yml,更改<code>replicas: 3 </code></p> 
  <pre><code class="prism language-powershell">apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
  name: tomcat-deploy
spec:
  replicas: 3 
  template: 
    metadata:
      labels:
        app: tomcat-cluster
    spec:
      volumes: 
      <span class="token operator">-</span> name: web-app
        hostPath:
          path: <span class="token operator">/</span>mnt
      containers:
      <span class="token operator">-</span> name: tomcat-cluster
        image: tomcat:latest
        resources:
          requests:
            cpu: 1
            memory: 500Mi
          limits:
            cpu: 2
            memory: 1024Mi
        ports:
        <span class="token operator">-</span> containerPort: 8080
        volumeMounts:
        <span class="token operator">-</span> name: web-app
          mountPath: <span class="token operator">/</span>usr/local/tomcat/webapps
</code></pre> 
  <p>更新集群配置:kubectl apply -f tomcat-deploy.yml</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@master k8s]</span><span class="token comment"># kubectl apply -f tomcat-deploy.yml</span>
deployment<span class="token punctuation">.</span>extensions/tomcat-deploy configured
</code></pre> 
  <p>查看部署:kubectl get deployment,可以看到从2变为3台了</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@master k8s]</span><span class="token comment"># kubectl get deployment</span>
NAME            READY   UP-TO-DATE   AVAILABLE   AGE
tomcat-deploy   3/3     3            3           100m
</code></pre> 
  <p><code>注:k8s默认是在负载低的节点新增pod</code></p> 
  <h2>总结</h2> 
  <h3>1、ERROR: cannot verify www.boutell.co.uk’s certificate, issued by ‘/C=US/O=Let’s Encrypt/CN=R3’:Issued certificate has expired.To connect to www.boutell.co.uk insecurely, use `–no-check-certificate’.</h3> 
  <p>解决:指令后面加上wget http://www.boutell.com/rinetd/http/rinetd.tar.gz --no-check-certificate</p> 
  <h3>2、k8s的master无法ping通ClusterIP</h3> 
  <p>问题明细:</p> 
  <blockquote> 
   <p>W1124 14:24:05.207176 1 proxier.go:493] Failed to load kernel module ip_vs with modprobe. You can ignore this message when kube-proxy is running inside container without mounting /lib/modules<br> W1124 14:24:05.208150 1 proxier.go:493] Failed to load kernel module ip_vs_rr with modprobe. You can ignore this message when kube-proxy is running inside container without mounting /lib/modules<br> W1124 14:24:05.208974 1 proxier.go:493] Failed to load kernel module ip_vs_wrr with modprobe. You can ignore this message when kube-proxy is running inside container without mounting /lib/modules<br> W1124 14:24:05.209778 1 proxier.go:493] Failed to load kernel module ip_vs_sh with modprobe. You can ignore this message when kube-proxy is running inside container without mounting /lib/modules<br> W1124 14:24:05.214337 1 server_others.go:267] Flag proxy-mode=“” unknown, assuming iptables proxy</p> 
  </blockquote> 
  <p>解决:</p> 
  <ul> 
   <li>添加IPV4模块</li> 
  </ul> 
  <pre><code class="prism language-powershell"><span class="token function">cat</span> > <span class="token operator">/</span>etc/sysconfig/modules/ipvs<span class="token punctuation">.</span>modules <<EOF
modprobe <span class="token operator">--</span> ip_vs
modprobe <span class="token operator">--</span> ip_vs_rr
modprobe <span class="token operator">--</span> ip_vs_wrr
modprobe <span class="token operator">--</span> ip_vs_sh
modprobe <span class="token operator">--</span> nf_conntrack_ipv4
EOF
chmod 755 <span class="token operator">/</span>etc/sysconfig/modules/ipvs<span class="token punctuation">.</span>modules && bash <span class="token operator">/</span>etc/sysconfig/modules/ipvs<span class="token punctuation">.</span>modules && lsmod <span class="token punctuation">|</span> grep <span class="token operator">-</span>e ip_vs <span class="token operator">-</span>e nf_conntrack_ipv4
</code></pre> 
  <ul> 
   <li>修改kupe-proxy的模式</li> 
  </ul> 
  <pre><code class="prism language-powershell">mode:<span class="token string">"ipvs"</span>
</code></pre> 
  <ul> 
   <li>重启kupe-proxy</li> 
  </ul> 
  <pre><code class="prism language-powershell">kubectl get pod <span class="token operator">-</span>n kube-system <span class="token punctuation">|</span> grep kube-proxy <span class="token punctuation">|</span>awk <span class="token string">'{system("kubectl delete pod "$1" -n kube-system")}'</span>
</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1732172916738568192"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(运维,kubernetes,云原生)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1939809833725259776.htm"
                           title="银河麒麟服务器迁移运维管理平台(接口文档)" target="_blank">银河麒麟服务器迁移运维管理平台(接口文档)</a>
                        <span class="text-muted">RZer</span>
<a class="tag" taget="_blank" href="/search/%E9%BA%92%E9%BA%9F%E8%BD%AF%E4%BB%B6/1.htm">麒麟软件</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Kylinsoft/1.htm">Kylinsoft</a>
                        <div>银河麒麟高级服务器操作系统V10系统管理员手册文章目录CVE下发接口获取CVE接口获取主机接口获取批次接口获取父日志接口获取子日志接口CVE下发接口功能描述:CVE下发接口调用接口URL:/cve/issue接口类型:POST请求头:API-KEY:your_API_key(内容为APIKey值,需要通过登陆平台,在个人信息处获取)参数:参数名类型含义targetType字符串传入类型(二选一):</div>
                    </li>
                    <li><a href="/article/1939808444634689536.htm"
                           title="Linux系统管理:服务器运维与安全防护" target="_blank">Linux系统管理:服务器运维与安全防护</a>
                        <span class="text-muted">教IT的小王A</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>Linux系统管理:服务器运维与安全防护Linux系统管理:服务器运维与安全防护一、Linux系统管理基础系统架构与组成是一种自由和开放源代码的类UNIX操作系统,它是基于POSIX和UNIX的多用户、多任务操作系统。Linux的核心是Linux内核,其基本组成部分包括Shell、文件系统、系统库等。常用Linux命令文件与目录管理在Linux系统中,文件和目录的管理是非常重要的,例如用户常用的l</div>
                    </li>
                    <li><a href="/article/1939807308682948608.htm"
                           title="Linux 系统管理:高效运维与性能优化" target="_blank">Linux 系统管理:高效运维与性能优化</a>
                        <span class="text-muted">代码老y</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a>
                        <div>一、Linux系统管理基础(一)用户与权限管理用户和权限管理是Linux系统管理的基础。通过合理配置用户和权限,可以确保系统的安全性和稳定性。用户管理使用useradd、usermod和userdel命令管理用户账户。使用passwd命令设置用户密码。使用groups和gpasswd命令管理用户组。权限管理使用chmod命令设置文件和目录的权限。使用chown和chgrp命令更改文件和目录的所有者</div>
                    </li>
                    <li><a href="/article/1939771510361223168.htm"
                           title="16.6 《3分钟扩容20实例!LanguageMentor容器化部署实战:高并发下的负载均衡与自动扩展方案》" target="_blank">16.6 《3分钟扩容20实例!LanguageMentor容器化部署实战:高并发下的负载均衡与自动扩展方案》</a>
                        <span class="text-muted">少林码僧</span>
<a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/llama/1.htm">llama</a>
                        <div>LanguageMentorAgent容器化部署与发布:高并发场景下的负载均衡与自动扩展关键词:KubernetesHPA,AWSAutoScaling,会话亲和性,监控指标,滚动更新1.高并发场景下的架构挑战LanguageMentor作为对话式Agent需要处理多用户同时在线会话,容器化部署需解决两个核心问题:</div>
                    </li>
                    <li><a href="/article/1939752475317825536.htm"
                           title="信创适配实践:ARM64 架构 KylinOS 系统下 Docker 部署 Nginx 及跨架构数据迁移全攻略" target="_blank">信创适配实践:ARM64 架构 KylinOS 系统下 Docker 部署 Nginx 及跨架构数据迁移全攻略</a>
                        <span class="text-muted">H03004</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                        <div>目录一、信创背景与实践价值二、环境筹备:ARM64+KylinOS基础配置(一)系统预检:锁定架构与版本(二)Docker安装:适配KylinOS的踩坑指南1.依赖预处理(解决KylinOS源差异)2.配置ARM64专属镜像源3.安装与加速优化4.验证安装三、Nginx容器全流程:从镜像到运维(一)镜像选择:ARM64适配的核心逻辑(二)容器启动:参数解析与权限踩坑1.启动命令(含持久化挂载)2.</div>
                    </li>
                    <li><a href="/article/1939720838412562432.htm"
                           title="如何在宝塔面板中配置SSL证书?" target="_blank">如何在宝塔面板中配置SSL证书?</a>
                        <span class="text-muted">奔跑吧邓邓子</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E6%95%88%E8%BF%90%E7%BB%B4/1.htm">高效运维</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a>
                        <div>提示:“奔跑吧邓邓子”的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如IBMSystem3650M5)、云服务平台(如腾讯云、华为云)、服务器软件(如Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker等)、开发工具(如Git、HBuilder)以及网络安全(如挖矿病毒排查、SSL证书配置)等多个方面。无论</div>
                    </li>
                    <li><a href="/article/1939711126925275136.htm"
                           title="【Go】入门Go应该怎么学" target="_blank">【Go】入门Go应该怎么学</a>
                        <span class="text-muted">CodeWithMe</span>
<a class="tag" taget="_blank" href="/search/Go/1.htm">Go</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>Go语言学习路线图一、为什么学Go?简洁、直观,容易上手,语法像C又比C简洁天然支持并发(goroutine+channel)编译速度快、跨平台强、部署简单(一个二进制)在云原生(K8s)、微服务、工具链开发领域非常受欢迎拥有丰富的标准库与成熟的社区二、学习阶段与资源第一阶段:Go基础语法&核心概念内容:变量、常量、类型流程控制(if、for、switch)数组、切片、map、字符串函数、返回值、</div>
                    </li>
                    <li><a href="/article/1939710618525298688.htm"
                           title="一文读懂Kubernetes:架构、优势与应用" target="_blank">一文读懂Kubernetes:架构、优势与应用</a>
                        <span class="text-muted">t0_54program</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E4%B8%8E%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">大数据与人工智能</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E5%BC%80%E5%8F%91/1.htm">个人开发</a>
                        <div>在当今的云原生计算领域,容器和Kubernetes的应用极为广泛。尽管Kubernetes是一项相对较新的技术,但众多全球企业已在生产环境中用它来管理关键业务应用程序。它之所以广受欢迎,得益于其一系列强大的功能,如增强的安全性、更出色的微服务管理能力、更高的可观测性,以及更高效的扩展和资源利用。什么是Kubernetes?Kubernetes,常简称为k8s,是谷歌实验室于2014年开发的开源容器</div>
                    </li>
                    <li><a href="/article/1939657067946110976.htm"
                           title="Redis可视化管理工具选型指南:7款主流软件深度对比测评" target="_blank">Redis可视化管理工具选型指南:7款主流软件深度对比测评</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                        <div>Redis作为高性能的内存数据库,在现代应用开发中扮演着重要角色。为了更好地管理和监控Redis实例,选择一款合适的可视化工具至关重要。本文将为您推荐7款优秀的Redis可视化管理软件,帮助您提升开发和运维效率。RedisInsightRedisInsight是Redis官方推出的免费可视化工具,提供了全面的数据库管理功能。该工具支持多种数据结构的可视化展示,包括字符串、哈希、列表、集合和有序集合</div>
                    </li>
                    <li><a href="/article/1939640397588393984.htm"
                           title="一文读懂Kubernetes之 K8s 概述" target="_blank">一文读懂Kubernetes之 K8s 概述</a>
                        <span class="text-muted">野熊佩骑</span>
<a class="tag" taget="_blank" href="/search/Linux%E7%B3%BB%E7%BB%9F%E5%BA%94%E7%94%A8%E8%BF%90%E7%BB%B4/1.htm">Linux系统应用运维</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/kubelet/1.htm">kubelet</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a>
                        <div>目录一、Kubernetes集群组件(一)、控制平面组件(ControlPlaneComponents)1、kube-apiserver2、etcd3、kube-scheduler4、kube-controller-manager5、cloud-controller-manager(可选的)(二)、节点组件1、kubelet2、kube-proxy(可选的)3、容器运行时(Containerrun</div>
                    </li>
                    <li><a href="/article/1939587824915378176.htm"
                           title="Linux运维需要学多久?学习方式有哪些?" target="_blank">Linux运维需要学多久?学习方式有哪些?</a>
                        <span class="text-muted">老男孩IT教育</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>Linux运维工程师是一个融合多学科的综合性技术岗位,除了掌握相关技术之外,还需要具备沟通、销售、管理等非技术能力,因此也给运维工程师提供了非常广阔的发展空间。那么Linux运维工程师要学多久?以下是详细的内容介绍。Linux运维工程师要学多久?Linux运维工程师学习周期需结合学习方式来决定,不同的学习方式,周期是不同的。现在学习Linux运维技术分为两种情况。一种是自学,如果选择自学的话,学习</div>
                    </li>
                    <li><a href="/article/1939586690196762624.htm"
                           title="第二十五节:Linux 运维职业规划与学习路径指南" target="_blank">第二十五节:Linux 运维职业规划与学习路径指南</a>
                        <span class="text-muted">厚衣服_3</span>
<a class="tag" taget="_blank" href="/search/Linux%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C%E8%AF%A6%E8%A7%A3/1.htm">Linux基本操作详解</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>第二十五节:Linux运维职业规划与学习路径指南随着云计算、容器化、自动化运维的快速发展,Linux运维工程师已经成为技术岗位中的重要角色之一。要想在运维领域长期发展,不仅要掌握扎实的基础技能,更要有清晰的职业规划和学习路径。一、Linux运维职业方向概览职业方向技术关键词基础运维工程师Linux、Shell、网络、服务部署、安全配置自动化运维/DevOpsAnsible、Docker、Jenki</div>
                    </li>
                    <li><a href="/article/1939585553183862784.htm"
                           title="Linux运维学习路线" target="_blank">Linux运维学习路线</a>
                        <span class="text-muted">沉默的八哥</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>以下是一个Linux运维详细学习路线:一、Linux基础入门(第1-2个月)操作系统安装与基本概念学习Linux系统的安装,包括常见发行版(如Ubuntu、CentOS、Debian等)的选择。了解安装过程中的分区设置(如根分区、交换分区)、文件系统类型(如ext4、xfs)的选择及其对系统性能的影响。熟悉Linux的基本概念,如内核、shell、文件系统层次结构(FHS)标准。掌握文件系统的目录</div>
                    </li>
                    <li><a href="/article/1939583914217631744.htm"
                           title="AR技术:开启工业维修新纪元,赋能效率与精准" target="_blank">AR技术:开启工业维修新纪元,赋能效率与精准</a>
                        <span class="text-muted">Teamhelper_AR</span>
<a class="tag" taget="_blank" href="/search/ar/1.htm">ar</a>
                        <div>在当今数字化浪潮的推动下,增强现实(AR)技术正以前所未有的速度改变着工业维修领域的面貌。从能源勘探到工业制造,从新能源运维到医疗手术,AR技术的应用不仅极大地提高了工作效率,还为专业人员提供了前所未有的精准支持。本文将深入探讨AR技术如何解决工业维修中的难题,并展望其在未来的发展趋势。引言:AR技术,工业维修的新引擎2025年,增强现实(AR)技术已从科幻概念蜕变为驱动产业升级的核心引擎。全球A</div>
                    </li>
                    <li><a href="/article/1939567524337217536.htm"
                           title="借助 Wisdom SSH,实现 Linux 用户组与权限的精细化智能管控" target="_blank">借助 Wisdom SSH,实现 Linux 用户组与权限的精细化智能管控</a>
                        <span class="text-muted">qinyia</span>
<a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%BC%80%E5%8F%91/1.htm">运维开发</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>WisdomSSH(官网ssh.wisdomheart.cn)凭借AI助手,为Linux用户组与权限管理带来智能便捷体验。用户组智能管理按需创建:如输入“为projectX项目建组,含开发、测试、运维人员”,AI助手创“projectX_group”组,生成groupaddprojectX_group命令。权限调整:输入“调projectX_group对代码目录读写,测试报告目录读权限”,AI助手</div>
                    </li>
                    <li><a href="/article/1939538653663522816.htm"
                           title="云上游戏服务器架构全解析" target="_blank">云上游戏服务器架构全解析</a>
                        <span class="text-muted">你一身傲骨怎能输</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>文章摘要本文提出了一套现代化、可落地的云上游戏服务器架构方案,针对FPS、MOBA、MMO等游戏类型的高并发、低延迟需求。该架构采用微服务设计,包含全球接入层、API网关、匹配/大厅服务、对局服务器、业务微服务等组件,通过Kubernetes实现弹性伸缩,支持百万级玩家同时在线。关键技术包括:多地域部署降低延迟、WebSocket/UDP实时通信、帧同步/状态同步机制、Saga分布式事务处理以及完</div>
                    </li>
                    <li><a href="/article/1939538274762682368.htm"
                           title="零信任架构——重构企业安全边界的新范式" target="_blank">零信任架构——重构企业安全边界的新范式</a>
                        <span class="text-muted">月_o9</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>零信任架构——重构企业安全边界的新范式(字数:998)传统边界的崩塌与信任危机防火墙与VPN构筑的“城堡护城河”模型在云原生与远程办公时代彻底瓦解。当数据散布于公有云、边缘设备与SaaS平台,当供应链攻击可穿透层层防护,“内部可信”的假设已成为最大安全漏洞。零信任(ZeroTrust)的核心哲学正是:永不信任,持续验证(NeverTrust,AlwaysVerify)。它并非单一技术,而是以身份为</div>
                    </li>
                    <li><a href="/article/1939475507242397696.htm"
                           title="EnterpriseDB/Barman 地理冗余配置指南:构建级联备份架构" target="_blank">EnterpriseDB/Barman 地理冗余配置指南:构建级联备份架构</a>
                        <span class="text-muted">管翔渊Lacey</span>

                        <div>EnterpriseDB/Barman地理冗余配置指南:构建级联备份架构barmanBarman-BackupandRecoveryManagerforPostgreSQL项目地址:https://gitcode.com/gh_mirrors/ba/barman地理冗余概述在现代数据库运维中,确保数据的高可用性和灾难恢复能力至关重要。EnterpriseDB/Barman提供的地理冗余功能允许管理</div>
                    </li>
                    <li><a href="/article/1939457112677609472.htm"
                           title="解锁云原生微服务架构:搭建与部署实战全攻略" target="_blank">解锁云原生微服务架构:搭建与部署实战全攻略</a>
                        <span class="text-muted">奔跑吧邓邓子</span>
<a class="tag" taget="_blank" href="/search/%E5%BF%85%E5%A4%87%E6%A0%B8%E5%BF%83%E6%8A%80%E8%83%BD/1.htm">必备核心技能</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E6%90%AD%E5%BB%BA%E4%B8%8E%E9%83%A8%E7%BD%B2/1.htm">搭建与部署</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98/1.htm">实战</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%94%BB%E7%95%A5/1.htm">全攻略</a>
                        <div>目录一、引言二、微服务拆分2.1拆分的必要性2.2拆分方法2.3注意事项三、服务注册与发现3.1概念与原理3.2常用组件介绍3.3实践案例四、负载均衡4.1作用与原理4.2实现方式4.3负载均衡算法4.4案例与代码实现4.4.1项目依赖配置4.4.2配置Ribbon4.4.3代码实现负载均衡调用五、容器化部署5.1容器化技术基础5.2容器化部署流程5.2.1编写Dockerfile5.2.2构建D</div>
                    </li>
                    <li><a href="/article/1939446772225077248.htm"
                           title="Spring Boot和Spring Cloud微服务架构实战指南" target="_blank">Spring Boot和Spring Cloud微服务架构实战指南</a>
                        <span class="text-muted">Javen Fang</span>

                        <div>本文还有配套的精品资源,点击获取简介:本文介绍微服务架构的基本概念及其与SpringBoot和SpringCloud的关系。SpringBoot简化了Spring应用的初始搭建和开发流程,而SpringCloud提供了一系列微服务解决方案,如服务发现、配置中心等。通过实例说明如何搭建和配置微服务,并包含脚本配置的使用,如Docker和Kubernetes来管理微服务部署。文档和具体项目文件如"se</div>
                    </li>
                    <li><a href="/article/1939434795205455872.htm"
                           title="【甲方安全视角】安全防御体系建设" target="_blank">【甲方安全视角】安全防御体系建设</a>
                        <span class="text-muted">秋说</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E5%BB%BA%E8%AE%BE/1.htm">安全建设</a>
                        <div>文章目录前言一、云安全防护能力第一阶段:搭建安全防护设施第二阶段:安全防护设施的精细化运营第三阶段:安全运营周报输出二、IT安全防护能力(一)办公网安全设施建设(二)办公网安全运营三、基础安全防护能力(一)物理安全(二)运维安全(三)安全应急响应四、总结前言安全防御体系是指各类防御能力的集合,体现了业界广泛认同的“纵深防御”理念。需要特别指出的是,防护模式若过于单一,并不构成真正意义上的纵深防御。</div>
                    </li>
                    <li><a href="/article/1939429496172113920.htm"
                           title="统一认证、限流、Mock 一网打尽!用 APISIX/Kong 让低代码平台更清爽" target="_blank">统一认证、限流、Mock 一网打尽!用 APISIX/Kong 让低代码平台更清爽</a>
                        <span class="text-muted">网罗开发</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98%E6%BA%90%E7%A0%81/1.htm">实战源码</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/kong/1.htm">kong</a><a class="tag" taget="_blank" href="/search/%E4%BD%8E%E4%BB%A3%E7%A0%81/1.htm">低代码</a>
                        <div>网罗开发(小红书、快手、视频号同名)  大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。图书作者:《ESP32-C3物联网工程开发实战》图书作者:《SwiftUI入门,进阶与实战》超级个体:CO</div>
                    </li>
                    <li><a href="/article/1939404920029507584.htm"
                           title="GitHub Actions 实现 AWS ECS 服务的多集群安全重启方案" target="_blank">GitHub Actions 实现 AWS ECS 服务的多集群安全重启方案</a>
                        <span class="text-muted">ivwdcwso</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E4%B8%8E%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">运维与云原生</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/aws/1.htm">aws</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/DevOps/1.htm">DevOps</a><a class="tag" taget="_blank" href="/search/CI%2FCD/1.htm">CI/CD</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/actions/1.htm">actions</a>
                        <div>引言在现代云原生架构中,容器化服务已成为主流。AmazonECS(ElasticContainerService)作为AWS的核心容器服务,管理着大量生产环境中的关键应用。服务重启是日常运维中的常见操作,无论是部署更新、修复问题还是刷新状态,都需要一种安全高效的机制。本文将介绍如何利用GitHubActions和AWSOIDC实现一个安全、灵活的多集群ECS服务重启方案。这个方案不仅简化了运维流程</div>
                    </li>
                    <li><a href="/article/1939394716378394624.htm"
                           title="K8S必问面试题之:K8S架构中每个组件的作用" target="_blank">K8S必问面试题之:K8S架构中每个组件的作用</a>
                        <span class="text-muted">运维爱背锅</span>
<a class="tag" taget="_blank" href="/search/K8S%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">K8S面试题</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/K8S%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">K8S面试题</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>微信关注运维爱背锅,用通俗易懂的方式教你运维K8S面试题:K8S架构中每个组件的作用大家好!今天我们来聊聊Kubernetes(简称K8S)中各个组件的作用,这是一道必问的面试题——各个组件就像一支分工明确的足球队,有人守门、有人射门,还有人负责喊战术。下面咱们就用“人话”拆解一下这些组件的职责。1.etcd:集群的“八卦的小本本”作用:分布式K-V(键值)存储数据库,专门记录集群的所有“秘密”,</div>
                    </li>
                    <li><a href="/article/1939375435649445888.htm"
                           title="CentOS 入门必备基础知识与操作指南" target="_blank">CentOS 入门必备基础知识与操作指南</a>
                        <span class="text-muted">码上有潜</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>标题:CentOS入门必备基础知识与操作指南简介CentOS是基于RedHatEnterpriseLinux(RHEL)的社区版本,适合企业级服务器的稳定性和安全性要求。本文将带领你了解CentOS的基础知识、安装过程、常用命令以及一些常见的运维操作。1.什么是CentOS?定义:CentOS是一个开放源代码的企业级操作系统,免费提供,但与RHEL完全兼容。优势:稳定、安全、适合长时间运行的服务器</div>
                    </li>
                    <li><a href="/article/1939373166258352128.htm"
                           title="istio简介" target="_blank">istio简介</a>
                        <span class="text-muted">weixin_50801368</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>servicemeshservicemesh的中文译为“服务网格”,是一个用于处理服务和服务之间通信的基础设施层,它负责为构建复杂的云原生应用传递可靠的网络请求,并为服务通信实现了微服务所需的基本组件功能,例如服务发现、负载均衡、监控、流量管理,访问控制等。在实践中,服务网格通常实现为一组和应用程序部署在一起的轻量级的网络代理,但对应用程序来说是透明的绿色方块为应用服务,蓝色方块为sidecarp</div>
                    </li>
                    <li><a href="/article/1939372914046464000.htm"
                           title="容器化与微服务" target="_blank">容器化与微服务</a>
                        <span class="text-muted">何遇mirror</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a>
                        <div>目录编辑第一节:容器化与微服务第二节:Docker与Kubernetes的介绍第三节:容器与传统虚拟化的对比第四节:微服务架构与虚拟化实际案例分析第一节:容器化与微服务容器化与微服务概述容器化是一种轻量级的虚拟化技术,它允许开发者将应用程序及其依赖项打包成一个可移植的容器。微服务架构则是一种将大型应用程序分解为小的、独立的服务的方法,这些服务可以独立部署、扩展和维护。容器化的优势轻量级:容器使用共</div>
                    </li>
                    <li><a href="/article/1939365983810547712.htm"
                           title="内测分发平台是否支持应用的微服务化部署" target="_blank">内测分发平台是否支持应用的微服务化部署</a>
                        <span class="text-muted">咕噜企业签名分发-大圣</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>内测分发平台是否支持应用的微服务化部署,这个问题实际上触及到了现代软件开发和运维的深层次需求。其支持程度不仅仅是一个简单的“是”或“否”的答案,而是涉及到平台的设计理念、技术架构以及实际应用场景的综合考量。首先,一些走在技术前沿的内测分发平台,它们在设计之初就充分考虑了微服务架构的复杂性和多样性。这些平台不仅原生支持微服务架构,还提供了丰富多样的工具和接口,以帮助开发者高效地管理和部署微服务。例如</div>
                    </li>
                    <li><a href="/article/1939329930538053632.htm"
                           title="云原生灰度方案对比:服务网格灰度(Istio ) 与 K8s Ingress 灰度(Nginx Ingress )" target="_blank">云原生灰度方案对比:服务网格灰度(Istio ) 与 K8s Ingress 灰度(Nginx Ingress )</a>
                        <span class="text-muted">大手你不懂</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1-%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">微服务-云原生</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Java%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">Java项目实战</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/istio/1.htm">istio</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a>
                        <div>服务网格灰度与KubernetesIngress灰度是云原生环境下两种主流的灰度发布方案,它们在架构定位、实现方式和适用场景上存在显著差异。以下从多个维度对比分析,并给出选型建议:一、核心区别对比维度服务网格灰度(以Istio为例)K8sIngress灰度(以NginxIngress为例)架构层级网络层(L7),工作在服务间通信层面边缘网关层,工作在集群入口处流量控制范围服务间的全链路流量集群外部</div>
                    </li>
                    <li><a href="/article/1939327032089440256.htm"
                           title="Ansible部署MySQL实操" target="_blank">Ansible部署MySQL实操</a>
                        <span class="text-muted">码农运维知识</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/ansible/1.htm">ansible</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                        <div>一、Ansible概述Ansible是一款开源的自动化运维工具,由MichaelDeHaan于2012年创建,2015年被红帽(RedHat)收购(收购金额超1亿美元)。它基于Python开发,通过SSH协议实现远程节点管理,无需在被控端安装任何客户端代理(Agentless)。这种设计使其成为轻量级、易部署的自动化解决方案,特别适合批量系统配置、应用程序部署和任务编排等场景。核心特点无代理架构:</div>
                    </li>
                                <li><a href="/article/47.htm"
                                       title="jdk tomcat 环境变量配置" target="_blank">jdk tomcat 环境变量配置</a>
                                    <span class="text-muted">Array_06</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
                                    <div>Win7 下如何配置java环境变量 
 
1。准备jdk包,win7系统,tomcat安装包(均上网下载即可) 
2。进行对jdk的安装,尽量为默认路径(但要记住啊!!以防以后配置用。。。) 
3。分别配置高级环境变量。 
   电脑-->右击属性-->高级环境变量-->环境变量。 
 
 
分别配置 : 
 
path   
 &nbs</div>
                                </li>
                                <li><a href="/article/174.htm"
                                       title="Spring调SDK包报java.lang.NoSuchFieldError错误" target="_blank">Spring调SDK包报java.lang.NoSuchFieldError错误</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>        在工作中调另一个系统的SDK包,出现如下java.lang.NoSuchFieldError错误。 
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.l</div>
                                </li>
                                <li><a href="/article/301.htm"
                                       title="LeetCode[位运算] - #136 数组中的单一数" target="_blank">LeetCode[位运算] - #136 数组中的单一数</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a>
                                    <div>原题链接:#136 Single Number 
要求: 
给定一个整型数组,其中除了一个元素之外,每个元素都出现两次。找出这个元素 
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间 
难度:中等 
分析: 
题目限定了线性的时间复杂度,同时不使用额外的空间,即要求只遍历数组一遍得出结果。由于异或运算 n XOR n = 0, n XOR 0 = n,故将数组中的每个元素进</div>
                                </li>
                                <li><a href="/article/428.htm"
                                       title="qq登陆界面开发" target="_blank">qq登陆界面开发</a>
                                    <span class="text-muted">15700786134</span>
<a class="tag" taget="_blank" href="/search/qq/1.htm">qq</a>
                                    <div>今天我们来开发一个qq登陆界面,首先写一个界面程序,一个界面首先是一个Frame对象,即是一个窗体。然后在这个窗体上放置其他组件。代码如下: 
public class First {         public void initul(){        jf=ne</div>
                                </li>
                                <li><a href="/article/555.htm"
                                       title="Linux的程序包管理器RPM" target="_blank">Linux的程序包管理器RPM</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>在早期我们使用源代码的方式来安装软件时,都需要先把源程序代码编译成可执行的二进制安装程序,然后进行安装。这就意味着每次安装软件都需要经过预处理-->编译-->汇编-->链接-->生成安装文件--> 安装,这个复杂而艰辛的过程。为简化安装步骤,便于广大用户的安装部署程序,程序提供商就在特定的系统上面编译好相关程序的安装文件并进行打包,提供给大家下载,我们只需要根据自己的</div>
                                </li>
                                <li><a href="/article/682.htm"
                                       title="socket通信遇到EOFException" target="_blank">socket通信遇到EOFException</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/EOFException/1.htm">EOFException</a>
                                    <div>java.io.EOFException 
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281) 
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:</div>
                                </li>
                                <li><a href="/article/809.htm"
                                       title="基于spring的web项目定时操作" target="_blank">基于spring的web项目定时操作</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a>
                                    <div>废话不多说,直接上代码,很简单 配置一下项目启动就行 
1,web.xml 
 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="h</div>
                                </li>
                                <li><a href="/article/936.htm"
                                       title="树形结构的数据库表Schema设计" target="_blank">树形结构的数据库表Schema设计</a>
                                    <span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/schema/1.htm">schema</a>
                                    <div>原文地址: 
http://blog.csdn.net/MONKEY_D_MENG/article/details/6647488 
 
 
    程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,</div>
                                </li>
                                <li><a href="/article/1063.htm"
                                       title="maven将jar包和源码一起打包到本地仓库" target="_blank">maven将jar包和源码一起打包到本地仓库</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>http://stackoverflow.com/questions/4031987/how-to-upload-sources-to-local-maven-repository 
 
 
 
<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupI</div>
                                </li>
                                <li><a href="/article/1190.htm"
                                       title="java IO操作 与 File 获取文件或文件夹的大小,可读,等属性!!!" target="_blank">java IO操作 与 File 获取文件或文件夹的大小,可读,等属性!!!</a>
                                    <span class="text-muted">百合不是茶</span>

                                    <div>类 File 
File是指文件和目录路径名的抽象表示形式。 
1,何为文件: 
标准文件(txt doc mp3...) 
目录文件(文件夹) 
虚拟内存文件 
  
2,File类中有可以创建文件的 createNewFile()方法,在创建新文件的时候需要try{} catch(){}因为可能会抛出异常;也有可以判断文件是否是一个标准文件的方法isFile();这些防抖都</div>
                                </li>
                                <li><a href="/article/1317.htm"
                                       title="Spring注入有继承关系的类(2)" target="_blank">Spring注入有继承关系的类(2)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>被注入类的父类有相应的属性,Spring可以直接注入相应的属性,如下所例:1.AClass类 
package com.bijian.spring.test4;

public class AClass {

    private String a;
    private String b;
   
    public String getA() {
        retu</div>
                                </li>
                                <li><a href="/article/1444.htm"
                                       title="30岁转型期你能否成为成功人士" target="_blank">30岁转型期你能否成为成功人士</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E6%88%90%E9%95%BF/1.htm">成长</a><a class="tag" taget="_blank" href="/search/%E5%8A%B1%E5%BF%97/1.htm">励志</a>
                                    <div>        很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人</div>
                                </li>
                                <li><a href="/article/1571.htm"
                                       title="【Velocity四】Velocity与Java互操作" target="_blank">【Velocity四】Velocity与Java互操作</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a>
                                    <div>Velocity出现的目的用于简化基于MVC的web应用开发,用于替代JSP标签技术,那么Velocity如何访问Java代码.本篇继续以Velocity三http://bit1129.iteye.com/blog/2106142中的例子为基础, 
     POJO 
   
package com.tom.servlets;

public</div>
                                </li>
                                <li><a href="/article/1698.htm"
                                       title="【Hive十一】Hive数据倾斜优化" target="_blank">【Hive十一】Hive数据倾斜优化</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a>
                                    <div>什么是Hive数据倾斜问题 
  
 
 操作:join,group by,count distinct 
 现象:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成;查看未完成的子任务,可以看到本地读写数据量积累非常大,通常超过10GB可以认定为发生数据倾斜。 
 原因:key分布不均匀 
 倾斜度衡量:平均记录数超过50w且</div>
                                </li>
                                <li><a href="/article/1825.htm"
                                       title="在nginx中集成lua脚本:添加自定义Http头,封IP等" target="_blank">在nginx中集成lua脚本:添加自定义Http头,封IP等</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/nginx+lua+csrf/1.htm">nginx lua csrf</a>
                                    <div>Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com 
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。 
location /{</div>
                                </li>
                                <li><a href="/article/1952.htm"
                                       title="java-3.求子数组的最大和" target="_blank">java-3.求子数组的最大和</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>package beautyOfCoding;


public class MaxSubArraySum {

	/**
	 * 3.求子数组的最大和
题目描述:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
例如输入的数组为1, -2, 3, 10, -4,</div>
                                </li>
                                <li><a href="/article/2079.htm"
                                       title="Netty源码学习-FileRegion" target="_blank">Netty源码学习-FileRegion</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                                    <div>今天看org.jboss.netty.example.http.file.HttpStaticFileServerHandler.java 
可以直接往channel里面写入一个FileRegion对象,而不需要相应的encoder: 
 


		//pipeline(没有诸如“FileRegionEncoder”的handler):
		public ChannelPipeline ge</div>
                                </li>
                                <li><a href="/article/2206.htm"
                                       title="使用ZeroClipboard解决跨浏览器复制到剪贴板的问题" target="_blank">使用ZeroClipboard解决跨浏览器复制到剪贴板的问题</a>
                                    <span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/%E8%B7%A8%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">跨浏览器</a><a class="tag" taget="_blank" href="/search/%E5%A4%8D%E5%88%B6%E5%88%B0%E7%B2%98%E8%B4%B4%E6%9D%BF/1.htm">复制到粘贴板</a><a class="tag" taget="_blank" href="/search/Zero+Clipboard/1.htm">Zero Clipboard</a>
                                    <div>Zero Clipboard的实现原理 
Zero Clipboard 利用透明的Flash让其漂浮在复制按钮之上,这样其实点击的不是按钮而是 Flash ,这样将需要的内容传入Flash,再通过Flash的复制功能把传入的内容复制到剪贴板。 
Zero Clipboard的安装方法 
首先需要下载 Zero Clipboard的压缩包,解压后把文件夹中两个文件:ZeroClipboard.js </div>
                                </li>
                                <li><a href="/article/2333.htm"
                                       title="单例模式" target="_blank">单例模式</a>
                                    <span class="text-muted">cuishikuan</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a>
                                    <div>第一种(懒汉,线程不安全): 
public class Singleton {   2     private static Singleton instance;   3     pri</div>
                                </li>
                                <li><a href="/article/2460.htm"
                                       title="spring+websocket的使用" target="_blank">spring+websocket的使用</a>
                                    <span class="text-muted">dalan_123</span>

                                    <div>一、spring配置文件 
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.or</div>
                                </li>
                                <li><a href="/article/2587.htm"
                                       title="细节问题:ZEROFILL的用法范围。" target="_blank">细节问题:ZEROFILL的用法范围。</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>   1、zerofill把月份中的一位数字比如1,2,3等加前导0 
 
      
mysql> CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,    -> day</div>
                                </li>
                                <li><a href="/article/2714.htm"
                                       title="Android开发10——Activity的跳转与传值" target="_blank">Android开发10——Activity的跳转与传值</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/Android%E5%BC%80%E5%8F%91/1.htm">Android开发</a>
                                    <div>Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。 
  
一、Activity跳转 
方法一Intent intent = new Intent(A.this, B.class); startActivity(intent) 
  
方法二Intent intent = new Intent();intent.setCla</div>
                                </li>
                                <li><a href="/article/2841.htm"
                                       title="jdbc 得到表结构、主键" target="_blank">jdbc 得到表结构、主键</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/jdbc+%E5%BE%97%E5%88%B0%E8%A1%A8%E7%BB%93%E6%9E%84%E3%80%81%E4%B8%BB%E9%94%AE/1.htm">jdbc 得到表结构、主键</a>
                                    <div>转自博客:http://blog.csdn.net/ocean1010/article/details/7266042 
假设有个con DatabaseMetaData dbmd = con.getMetaData(); rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); rs.getSt</div>
                                </li>
                                <li><a href="/article/2968.htm"
                                       title="Android 应用程序开关GPS" target="_blank">Android 应用程序开关GPS</a>
                                    <span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>要在应用程序中操作GPS开关需要权限: 
 

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
 
但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办? 
1、方法一:将项目放到Android源码中编译; 
2、方法二:网上有人说cl</div>
                                </li>
                                <li><a href="/article/3095.htm"
                                       title="Windows上调试MapReduce" target="_blank">Windows上调试MapReduce</a>
                                    <span class="text-muted">zhiquanliu</span>
<a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a>
                                    <div>1.下载hadoop2x-eclipse-plugin https://github.com/winghc/hadoop2x-eclipse-plugin.git 把 hadoop2.6.0-eclipse-plugin.jar 放到eclipse plugin 目录中。 2.下载 hadoop2.6_x64_.zip http://dl.iteye.com/topics/download/d2b</div>
                                </li>
                                <li><a href="/article/3222.htm"
                                       title="如何看待一些知名博客推广软文的行为?" target="_blank">如何看待一些知名博客推广软文的行为?</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2/1.htm">博客</a>
                                    <div>本文来自我在知乎上的一个回答:http://www.zhihu.com/question/23431810/answer/24588621 
互联网上的两种典型心态: 
 
  当初求种像条狗,如今撸完嫌人丑  
  当初搜贴像条犬,如今读完嫌人软  
 
你为啥感觉不舒服呢? 
难道非得要作者把自己的劳动成果免费给你用,你才舒服? 
就如同 Google 关闭了 Gooled Reader,那是</div>
                                </li>
                                <li><a href="/article/3349.htm"
                                       title="sql优化总结" target="_blank">sql优化总结</a>
                                    <span class="text-muted">macroli</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a>
                                    <div>为了是自己对sql优化有更好的原则性,在这里做一下总结,个人原则如有不对请多多指教。谢谢! 
  
要知道一个简单的sql语句执行效率,就要有查看方式,一遍更好的进行优化。 
  
一、简单的统计语句执行时间 
declare @d datetime ---定义一个datetime的变量set @d=getdate() ---获取查询语句开始前的时间select user_id</div>
                                </li>
                                <li><a href="/article/3476.htm"
                                       title="Linux Oracle中常遇到的一些问题及命令总结" target="_blank">Linux Oracle中常遇到的一些问题及命令总结</a>
                                    <span class="text-muted">超声波</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>1.linux更改主机名 
  
(1)#hostname oracledb    临时修改主机名 
(2) vi /etc/sysconfig/network   修改hostname 
(3) vi /etc/hosts        修改IP对应的主机名 
  
2.linux重启oracle实例及监听的各种方法 
(注意操作的顺序应该是先监听,后数据库实例) 
&nbs</div>
                                </li>
                                <li><a href="/article/3603.htm"
                                       title="hive函数大全及使用示例" target="_blank">hive函数大全及使用示例</a>
                                    <span class="text-muted">superlxw1234</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/hive%E5%87%BD%E6%95%B0/1.htm">hive函数</a>
                                    <div>  
具体说明及示例参 见附件文档。  
  
  
文档目录: 
  
目录 
一、关系运算: 4 
1. 等值比较: = 4 
2. 不等值比较: <> 4 
3. 小于比较: < 4 
4. 小于等于比较: <= 4 
5. 大于比较: > 5 
6. 大于等于比较: >= 5 
7. 空值判断: IS NULL 5</div>
                                </li>
                                <li><a href="/article/3730.htm"
                                       title="Spring 4.2新特性-使用@Order调整配置类加载顺序" target="_blank">Spring 4.2新特性-使用@Order调整配置类加载顺序</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring+4/1.htm">spring 4</a>
                                    <div>4.1 @Order 
 
 Spring 4.2 利用@Order控制配置类的加载顺序 
  
4.2 演示 
 
 两个演示bean 
 
package com.wisely.spring4_2.order;

public class Demo1Service {

}

 
package com.wisely.spring4_2.order;

public class</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>