Deployment脚本是一种用于自动化应用程序部署过程的脚本。它包含一系列命令和配置,用于将应用程序从开发环境部署到生产环境或其他目标环境。
部署相对于Kubernetes向Node节点发送指令,创建容器的过程,Kubernetes支持yml格式的部署脚本
与部署相关常用命令:
kubectl create -f 部署yml文件
kubectl apply -f 部署yml文件
kubectl get pod [-o wide]
,-o wide表示详细信息kubectl describe pod pod名称
kubectl logs [-f] pod名称
,-f表示是否实时更新kubectl delete service
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
设置服务文件,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就是我们之前部署的集群标签名
创建部署: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表示成功
上面主要通过节点和暴露的端口访问,无法进行负载均衡,没有利用起集群这个利器,我们通过Rinted,我们直接访问master节点即可,还可以实现负载均衡,下面就来操作实现下
删除之前部署的服务
[root@master k8s]# kubectl delete service tomcat-service
service "tomcat-service" deleted
编辑服务文件,vi tomcat-service.yml
,调整内容,主要注释掉type: NodePort
和nodePort: 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/1892798442372132864.htm"
title="k8s ssl 漏洞修复" target="_blank">k8s ssl 漏洞修复</a>
<span class="text-muted">魏 无羡</span>
<a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
<div>针对Kubernetes集群中SSL/TLS协议信息泄露漏洞(CVE-2016-2183)的修复,需重点修改涉及弱加密算法的组件配置。以下是具体修复步骤及验证方法:一、漏洞修复步骤1.修复etcd服务修改配置文件:编辑/etc/kubernetes/manifests/etcd.yaml,在command段添加以下参数禁用弱加密算法:---cipher-suites=TLS_ECDHE_RSA_W</div>
</li>
<li><a href="/article/1892791634228211712.htm"
title="Prometheus概述" target="_blank">Prometheus概述</a>
<span class="text-muted">十七行代码</span>
<a class="tag" taget="_blank" href="/search/Prometheus/1.htm">Prometheus</a><a class="tag" taget="_blank" href="/search/prometheus/1.htm">prometheus</a>
<div>什么是Prometheus?Prometheus是一个开源的系统监控与警报工具包,最初由声田(SoundCloud)公司开发。自2012年创立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。如今,它是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的管理架构,Prometheus于2016年加入云原生计算基金会(CloudNativeC</div>
</li>
<li><a href="/article/1892783941341999104.htm"
title="【系列专栏】银行IT的云原生架构-云基础架构-云资源 09" target="_blank">【系列专栏】银行IT的云原生架构-云基础架构-云资源 09</a>
<span class="text-muted">呱牛do it</span>
<a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D%E7%A7%91%E6%8A%80/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/%E9%87%91%E8%9E%8D/1.htm">金融</a>
<div>银行IT的云原生架构:云基础架构(云资源)一、引言在银行IT云原生架构的构建进程中,云资源作为云基础架构的核心要素,发挥着支撑各类业务系统运行的关键作用。云资源涵盖计算资源、存储资源和网络资源等多个方面,其高效配置、灵活调度和稳定供应,直接关系到银行云原生架构的性能、可用性以及业务创新能力。深入剖析银行云资源的现状、面临的挑战以及应对策略,对银行充分挖掘云原生架构优势、实现数字化转型目标具有重要意</div>
</li>
<li><a href="/article/1892778135586402304.htm"
title="2025年——自学黑客计划(网络安全)" target="_blank">2025年——自学黑客计划(网络安全)</a>
<span class="text-muted">网安CILLE</span>
<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/%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><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/linux/1.htm">linux</a>
<div>CSDN大礼包:基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包前言什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份答案分为黑客(网络安全)入门必备、黑客(网络安全)职业指南、黑客</div>
</li>
<li><a href="/article/1892778009371406336.htm"
title="2025年——自学黑客计划(网络安全)" target="_blank">2025年——自学黑客计划(网络安全)</a>
<span class="text-muted">网安CILLE</span>
<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/%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><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/linux/1.htm">linux</a>
<div>CSDN大礼包:基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包前言什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份答案分为黑客(网络安全)入门必备、黑客(网络安全)职业指南、黑客</div>
</li>
<li><a href="/article/1892768429115502592.htm"
title="有了Docker为啥还需要k8s?" target="_blank">有了Docker为啥还需要k8s?</a>
<span class="text-muted">简单简单小白</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</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>
<div>这里写目录标题Docker的作用:Kubernetes的作用:为什么有了Docker还需要Kubernetes?单机无法满足需求:容器的自动化管理:跨多环境的统一管理:总结:Docker和Kubernetes(K8s)是两种不同的技术,它们各自解决了不同的问题,但一起使用时能发挥更大的作用。简单来说,Docker主要解决的是容器化的问题,而Kubernetes解决的是如何有效地管理和编排这些容器。</div>
</li>
<li><a href="/article/1892764267174752256.htm"
title="Linux技术学习分享-Vim 编辑器与 Shell 命令脚本【1.5】" target="_blank">Linux技术学习分享-Vim 编辑器与 Shell 命令脚本【1.5】</a>
<span class="text-muted">BinaryStarXin</span>
<a class="tag" taget="_blank" href="/search/Linux%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0%E5%88%86%E4%BA%AB%E3%80%901%E3%80%91/1.htm">Linux技术学习分享【1】</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><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/1.htm">安装配置</a><a class="tag" taget="_blank" href="/search/VM/1.htm">VM</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85Linux%E7%B3%BB%E7%BB%9F/1.htm">部署虚拟环境安装Linux系统</a><a class="tag" taget="_blank" href="/search/Vim/1.htm">Vim</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">文本编辑器</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a>
<div>3.3命令行的通配符大家可能都遇到过提笔忘字的尴尬,作为Linux运维人员,我们有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况。如果就记得一个文件的开头几个字母,想遍历查找出所有以这个关键词开头的文件,该怎么操作呢?又比如,假设想要批量查看所有硬盘文件的相关权限属性,一种方式是这样的:[root@linuxprobe~]#ls-l/dev/sdabrw-rw----.1rootdis</div>
</li>
<li><a href="/article/1892753168488525824.htm"
title="2025年优质网站建设公司必备的五大核心能力与权威榜单" target="_blank">2025年优质网站建设公司必备的五大核心能力与权威榜单</a>
<span class="text-muted">2401_89441257</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a>
<div>在数字化转型浪潮下,企业官网已成为品牌形象与商业转化的核心阵地。然而,面对市场上五花八门的建站服务商,如何选择真正专业的团队?本文结合行业趋势与全网数据,提炼优质建站公司的关键特征,并揭晓2025年五大标杆企业:蒙特网站(Mountor)、埃森哲(Accenture)、IDEO、青蛙设计(frog)、Hugedesign。优质网站建设公司的五大核心特征1.全链路技术能力从前端交互设计到后端开发运维</div>
</li>
<li><a href="/article/1892744852806889472.htm"
title="AI驱动运维管理革命:从理论到实战的全面指南" target="_blank">AI驱动运维管理革命:从理论到实战的全面指南</a>
<span class="text-muted">ivwdcwso</span>
<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%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a>
<div>引言:运维的十字路口与AI的曙光数字化时代,企业IT架构呈指数级膨胀:微服务、容器化、混合云让系统复杂度激增;7×24小时业务连续性要求将MTTR(平均修复时间)压缩至分钟级;运维团队在告警风暴中疲于奔命,人力成本却居高不下。Gartner报告指出,2025年全球70%的企业将依赖AIOps(智能运维)实现系统自治。这场变革并非替代人类,而是将运维工程师从“救火队员”升级为“系统指挥官”。本文将深</div>
</li>
<li><a href="/article/1892724418673700864.htm"
title="58同城深度学习推理平台:基于Istio的云原生网关实践解析" target="_blank">58同城深度学习推理平台:基于Istio的云原生网关实践解析</a>
<span class="text-muted">ITPUB-微风</span>
<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%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/istio/1.htm">istio</a>
<div>在当今数字化时代,深度学习技术的快速发展为各行各业带来了革命性的变化。作为国内领先的分类信息网站,58同城一直致力于通过技术创新提升服务质量和用户体验。近期,58同城AILab推出了一项重要的技术革新——基于Istio的云原生网关深度学习推理平台。本文将从技术角度深入解析这一创新实践,探讨其架构设计、应用效果以及未来发展方向。一、深度学习推理平台的重要性深度学习推理平台在58同城的业务中扮演着至关</div>
</li>
<li><a href="/article/1892724166298234880.htm"
title="网易严选DevOps实践:从传统到云原生的演进" target="_blank">网易严选DevOps实践:从传统到云原生的演进</a>
<span class="text-muted">ITPUB-微风</span>
<a class="tag" taget="_blank" href="/search/devops/1.htm">devops</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/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
<div>在互联网行业的快速变革中,网易严选面临着前所未有的挑战和机遇。为了提升产品研发运营效率,降低创新成本,网易严选积极拥抱DevOps文化,并在其实践过程中积累了宝贵的经验。本文将深入探讨网易严选在DevOps领域的实践之旅,从传统虚拟机架构到云原生架构的演进,以及在这一过程中所面临的挑战和解决方案。一、DevOps的定义与理解DevOps,作为一种重视软件开发人员(Dev)和IT运维技术人员(Ops</div>
</li>
<li><a href="/article/1892717489368920064.htm"
title="[k8s]部署MetalLB(Layer2模式)" target="_blank">[k8s]部署MetalLB(Layer2模式)</a>
<span class="text-muted">Logout:</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/k8s/1.htm">k8s</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>
<div>创建安装目录mkdir/etc/kubernetes/MetalLB修改kube-proxy配置kubectleditconfigmap-nkube-systemkube-proxymode:"ipvs"#添加ipvsstrictARP:true#false改为true创建namespacekubectlcreatenamespacemetallb-system创建ip池cat>IPAddress</div>
</li>
<li><a href="/article/1892717489926762496.htm"
title="[k8s]部署ingress-nginx" target="_blank">[k8s]部署ingress-nginx</a>
<span class="text-muted">Logout:</span>
<a class="tag" taget="_blank" href="/search/k8s/1.htm">k8s</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
<div>获取安装包https://github.com/kubernetes/ingress-nginx/blob/controller-v1.11.1/deploy/static/provider/baremetal/deploy.yaml修改端口映射方式sed-is#NodePort#LoadBalancer#g/etc/kubernetes/ingress-nginx/deploy.yaml部署in</div>
</li>
<li><a href="/article/1892690513652412416.htm"
title="Redis持久化:RDB和AOF" target="_blank">Redis持久化:RDB和AOF</a>
<span class="text-muted">镇杰。</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/redis%E6%8C%81%E4%B9%85%E5%8C%96/1.htm">redis持久化</a><a class="tag" taget="_blank" href="/search/RDB/1.htm">RDB</a><a class="tag" taget="_blank" href="/search/AOF/1.htm">AOF</a>
<div>为什么需要持久化?Redis对数据的操作都是基于内存的,当遇到了进程退出、服务器宕机等意外情况,如果没有持久化机制,那么Redis中的数据将会丢失无法恢复。有了持久化机制,Redis在下次重启时可以利用之前持久化的文件进行数据恢复。理解和掌握Redis的持久机制,对于Redis的日常开发和运维都有很大帮助,也是在大厂面试经常被问到的知识点。Redis支持的两种持久化机制:RDB:把当前数据生成快照</div>
</li>
<li><a href="/article/1892687608266420224.htm"
title="网络运维学习笔记 009网工初级(HCIA-Datacom与CCNA-EI)STP生成树协议与VRRP虚拟路由冗余协议" target="_blank">网络运维学习笔记 009网工初级(HCIA-Datacom与CCNA-EI)STP生成树协议与VRRP虚拟路由冗余协议</a>
<span class="text-muted">技术小齐</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
<div>文章目录STP(SpanningTreeProtocol,生成树协议)思科:华为:实验思科华为VRRP(VirtualRouterRedundancyProtocol,虚拟路由冗余协议)思科华为STP(SpanningTreeProtocol,生成树协议)提高可靠性(使用冗余链路)的同时避免环路产生的问题(广播风暴,MAC地址表震荡)。STP模式有三种:MSTP(默认,而且常用)、RSTP、STP</div>
</li>
<li><a href="/article/1892654227742846976.htm"
title="全面披露!华为云分布式云原生技术与实践" target="_blank">全面披露!华为云分布式云原生技术与实践</a>
<span class="text-muted">CSDN云原生</span>
<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/%E5%8D%8E%E4%B8%BA%E4%BA%91/1.htm">华为云</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a>
<div>出品|CSDN云原生随着云原生应用深入企业各个业务场景,云原生正在走向分布式,跨云跨地域统一协同治理,保证一致应用体验等新的需求日渐突出。分布式云原生都涉及哪些核心技术?有哪些典型的应用场景?值得我们去探究。HCDE(HuaweiCloudDeveloperExperts)是经华为云认证的熟悉一种或多种华为云开放能力,并对赋能全球开发者有突出贡献的个人,旨在帮助全球开发者成长,构建全球开发者生态。</div>
</li>
<li><a href="/article/1892651955096973312.htm"
title="【云原生】SpringCloud-Spring Boot Starter使用测试" target="_blank">【云原生】SpringCloud-Spring Boot Starter使用测试</a>
<span class="text-muted">egekm_sefg</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a>
<div>目录SpringBootStarter是什么?以前传统的做法使用SpringBootStarter之后starter的理念:starter的实现:?创建SpringBootStarter步骤在idea新建一个starter项目、直接执行下一步即可生成项目。?在xml中加入如下配置文件:创建proterties类来保存配置信息创建业务类:创建AutoConfiguration测试如下:SpringB</div>
</li>
<li><a href="/article/1892639845923221504.htm"
title="跨语言语义理解与生成:多语言预训练方法及一致性优化策略" target="_blank">跨语言语义理解与生成:多语言预训练方法及一致性优化策略</a>
<span class="text-muted">网罗开发</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a>
<div>网罗开发(小红书、快手、视频号同名) 大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。图书作者:《ESP32-C3物联网工程开发实战》图书作者:《SwiftUI入门,进阶与实战》超级个体:CO</div>
</li>
<li><a href="/article/1892627616020623360.htm"
title="中电金信:数字基础设施未来展望·行业定制与开源融合" target="_blank">中电金信:数字基础设施未来展望·行业定制与开源融合</a>
<span class="text-muted">中电金信</span>
<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/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a>
<div>随着数字化向数智化的演进,各行各业对新型数字基础设施的需求不断攀升。在技术层面,云原生和平台化已经成为构建行业数字基础设施的普遍选择。在这一进程中,不仅要满足行业对极致性能的特殊需求,实现运维与管理的高效性,构建具有弹性的系统,还需要应对混合架构带来的多样化技术选项,以及满足行业定制化需求和自主可控的挑战,同时还要应对应用集群开发和多样化数据产品构建的复杂性。中电金信立足于行业需求,积极构建新型数</div>
</li>
<li><a href="/article/1892614122856574976.htm"
title="PTN(分组传送网)的简单高效运维之道" target="_blank">PTN(分组传送网)的简单高效运维之道</a>
<span class="text-muted">Covc0910</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
<div>大规模的PTN网络建设之后,如何高效维护成为摆在各分公司眼前的主要问题之一。中国移动海南分公司在PTN网络的维护领域深入挖掘,通过对业务配置及调整、告警抑制及各类故障情况下业务快速恢复等不同场景的深入分析,和PTN厂商一起运维创新,独辟蹊径,在LTE时代到来之前率先走出了一条PTN高效简单运维的道路。一、PTN运维难点分析PTN作为IP化的传输设备,具有IP网络固有的运维复杂性,随着PTN网络规模</div>
</li>
<li><a href="/article/1892586257414942720.htm"
title="Docker 与 CI/CD:自动化构建和部署" target="_blank">Docker 与 CI/CD:自动化构建和部署</a>
<span class="text-muted">drebander</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/ci%2Fcd/1.htm">ci/cd</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a>
<div>在现代软件开发中,CI/CD(持续集成/持续部署)是一种高效的软件开发和运维方法。CI/CD通过自动化构建、测试和部署流程,减少了人为错误,提高了软件交付的速度和质量。Docker,作为一种容器化平台,为CI/CD提供了理想的运行环境,通过容器化实现应用的一致性和可移植性。本文将探讨如何将Docker与CI/CD集成,实现自动化构建和部署。1.Docker与CI/CD集成的优势1.1通过Docke</div>
</li>
<li><a href="/article/1892544892337451008.htm"
title="vue中原生表格的使用" target="_blank">vue中原生表格的使用</a>
<span class="text-muted">今天吃了嘛o</span>
<a class="tag" taget="_blank" href="/search/table%E5%8E%9F%E7%94%9F/1.htm">table原生</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a>
<div>因项目中需要大量的合并,而且表格左右布局,所以采用了原生table。colspan和rowspan分别代表合并多少行多少列。代码如下:线路名称{{item.lineName}}巡检区段{{item.scope}}运维管理单位{{item.operationAndMaintenanceCompany}}运检作业单位{{item.insWorkCompany}}巡检员{{item.droneWorkU</div>
</li>
<li><a href="/article/1892462136815316992.htm"
title="关于防火墙运维面试题2" target="_blank">关于防火墙运维面试题2</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/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
<div>三、防火墙配置与管理类21.如何根据企业的网络安全策略,制定一套全面的防火墙规则集?需要考虑哪些关键因素?以下是根据企业网络安全策略制定全面防火墙规则集的指导,以及需要考虑的关键因素:一、关键因素(一)网络架构与拓扑了解企业的网络结构明确企业网络是简单的星型拓扑、复杂的网状拓扑还是混合拓扑等。例如,在星型拓扑中,所有设备都连接到一个中心交换机或集线器,这种结构下防火墙规则可能相对集中和简单;而在网</div>
</li>
<li><a href="/article/1892462010453520384.htm"
title="关于防火墙运维面试题" target="_blank">关于防火墙运维面试题</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/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
<div>一、防火墙基础概念类1.请详细阐述防火墙在网络安全体系中的具体作用及核心原理。以下是防火墙在网络安全体系中的具体作用及核心原理的详细阐述:防火墙在网络安全体系中的作用访问控制限制非法访问:防火墙可以根据预设的规则,允许或拒绝特定的网络流量通过。例如,企业内部网络可能只允许来自特定IP地址范围的员工访问敏感资源,而阻止其他未经授权的外部IP地址的访问,从而保护内部网络免受未经授权的访问和潜在的攻击。</div>
</li>
<li><a href="/article/1892424024693207040.htm"
title="【k8s应用管理】kubernetes HPA+rancher" target="_blank">【k8s应用管理】kubernetes HPA+rancher</a>
<span class="text-muted">Karoku066</span>
<a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/rancher/1.htm">rancher</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%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/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
<div>文章目录KubernetesHPA部署指南概述部署metrics-server部署HPARancher管理Kubernetes集群指南实验环境安装及配置RancherKubernetesHPA部署指南概述KubernetesHPA(HorizontalPodAutoscaling)可以根据Pod的CPU利用率自动调整Deployment、ReplicationController或ReplicaS</div>
</li>
<li><a href="/article/1892421754261925888.htm"
title="2025年三个月自学手册 网络安全(黑客技术)" target="_blank">2025年三个月自学手册 网络安全(黑客技术)</a>
<span class="text-muted">网安kk</span>
<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><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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
<div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份答案分为黑客(网络安全)入门必备、黑客(网络安全)职业指南、黑客(网络安全)学习导航</div>
</li>
<li><a href="/article/1892411035852271616.htm"
title="LLM与知识图谱融合:智能运维知识库构建" target="_blank">LLM与知识图谱融合:智能运维知识库构建</a>
<span class="text-muted">AI天才研究院</span>
<a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/R1/1.htm">R1</a><a class="tag" taget="_blank" href="/search/%26amp%3B/1.htm">&</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AEAI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大数据AI人工智能大模型</a><a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%BC%81%E4%B8%9A%E7%BA%A7%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98/1.htm">AI大模型企业级应用开发实战</a><a class="tag" taget="_blank" href="/search/AI%E5%AE%9E%E6%88%98/1.htm">AI实战</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E7%A7%91%E5%AD%A6/1.htm">计算科学</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E8%AE%A1%E7%AE%97/1.htm">神经计算</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/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/%E5%A4%A7%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大型语言模型</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/AGI/1.htm">AGI</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><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/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/RPA/1.htm">RPA</a>
<div>1.背景介绍随着信息技术的飞速发展,IT运维管理面临着越来越大的挑战。海量的设备、复杂的网络环境、日益增长的数据量,使得传统的运维方式难以满足需求。为了提高运维效率和质量,智能运维应运而生。智能运维的核心是将人工智能技术应用于运维领域,通过机器学习、深度学习等算法,实现自动化、智能化的运维管理。其中,大语言模型(LLM)和知识图谱是两个重要的技术方向。LLM能够理解和生成自然语言,可以用于构建智能</div>
</li>
<li><a href="/article/1892404729082867712.htm"
title="前端504错误分析" target="_blank">前端504错误分析</a>
<span class="text-muted">ox0080</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%8C%97%E6%BC%82%2B%E6%BB%B4%E6%BB%B4%E5%87%BA%E8%A1%8C/1.htm">北漂+滴滴出行</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/VIP/1.htm">VIP</a><a class="tag" taget="_blank" href="/search/%E6%BF%80%E5%8A%B1/1.htm">激励</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>前端出现504错误(网关超时)通常是由于代理服务器未能及时从上游服务获取响应。以下是详细分析步骤和解决方案:1.确认错误来源504含义:代理服务器(如Nginx、Apache)在等待后端服务响应时超时。常见架构:前端→代理服务器→后端服务,问题通常出在代理与后端之间。2.排查步骤(1)检查后端服务状态确认服务是否运行:通过日志或监控工具(如systemctlstatus,KubernetesPod</div>
</li>
<li><a href="/article/1892382914956554240.htm"
title="运维分级发布_运维必备制度:故障分级和处罚规范" target="_blank">运维分级发布_运维必备制度:故障分级和处罚规范</a>
<span class="text-muted">weixin_39599046</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%88%86%E7%BA%A7%E5%8F%91%E5%B8%83/1.htm">运维分级发布</a>
<div>正文互联网产品提供7*24小时服务,而因人为操作、程序BUG等原因导致服务不可用是影响服务持续运行的重要原因,为了提高各业务产品的运维和运营质量,规范各业务线的服务、故障响应,拟定和发布“故障分级和处罚规范”是非常必要的。故障分级标准运营故障中,对非不可抗力所造成的故障归类为“故障”,对于故障将追究故障的分级,故障责任人,及故障处理结果。下面将就各类故障级别进行定义说明,由于故障可能在多方面体现影</div>
</li>
<li><a href="/article/1892374969279639552.htm"
title="【面试准备】运维工程师" target="_blank">【面试准备】运维工程师</a>
<span class="text-muted">C.尚水.Y</span>
<a class="tag" taget="_blank" href="/search/%E6%88%91%E7%9A%84%E9%9D%A2%E8%AF%95%E5%87%86%E5%A4%87/1.htm">我的面试准备</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/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%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a>
<div>面试目标:岗位职责分析:1、IT相关设备、环境、运行状况的采购、安装、维护、保养、检查、IT资产管理;2、防火墙、路由器、网络交换机、VPN、服务器等性能优化,配置修改;3、光纤和ADSL线路的监控、测试、报障;4、ERP账号、文件服务器等软件账号的开放与权限管理、维护;5、邮箱OA服务器、文件服务器、ERP数据库服务器的日常管理、维护;6、公司网络工程的规划、项目实施、技术支持;—对这个运维工程</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>