页面“Serive暴露”与“Shell执行linux命令”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
(导入1个版本)
 
docker>Evan
 
第1行: 第1行:
  
暴露服务的方式有3种,使用slb、ingress和使用nodeport
+
* 第一种  注意 = 前后最好没有空格哦 不然如下面的trouble
 +
data=`command`
 +
  
frontend(前端)和 backend(后端)
 
  
==负载均衡(Server Load Balancer)==
+
* 第二种
===方法一===
+
data=$(command)
<pre>通过命令行工具创建一个 Nginx 应用。
 
root@master # kubectl run nginx --image=registry.aliyuncs.com/acs/netdia:latest
 
root@master # kubectl get po
 
NAME                                  READY    STATUS    RESTARTS  AGE
 
nginx-2721357637-dvwq3                1/1      Running  1          6s
 
为 Nginx 应用创建阿里云负载均衡服务,指定 type=LoadBalancer 来向外网用户暴露 Nginx 服务。
 
root@master # kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer
 
root@master # kubectl get svc
 
NAME                  CLUSTER-IP      EXTERNAL-IP      PORT(S)                       AGE
 
nginx                172.19.XX.XX  101.37.XX.XX    80:31891/TCP                  4s
 
在浏览器中访问 http://101.37.XX.XX,来访问您的 Nginx 服务。</pre>
 
===二===
 
<pre>
 
方法二
 
  
将下面的 yml code 保存到 nginx-svc.yml文件中。
+
=trouble=
apiVersion: v1
+
<pre>cat mycheckbak
kind: Service
+
#!/bin/bash
metadata:
+
code =`/data/mon/monitor_http.py http://read.zhaituan.com/xtwlztdj_read_interface`
  labels:
+
if [ $code -eq 200 ]
    run: nignx
+
then
  name: nginx-01
+
:
  namespace: default
+
else
spec:
+
DATE=$(date +%Y%m%d%H%M)
  ports:
+
echo $DATE >>/data/logs/mycheck.log
  - port: 80
+
echo "read no 200" >>/data/logs/mycheck.log
    protocol: TCP
+
fi
    targetPort: 80
 
  selector:
 
    run: nginx
 
  type: LoadBalancer
 
执行kubectl apply -f nginx-svc.yml命令。
 
root@master # kubectl apply -f nginx-svc.yml
 
root@master # kubectl get service
 
NAME          TYPE          CLUSTER-IP      EXTERNAL-IP      PORT(S)       AGE9d
 
ngi-01nx      LoadBalancer  172.19.XX.XX    101.37.XX.XX    80:32325/TCP  3h
 
在浏览器中访问 http://101.37.XX.XX,来访问您的 Nginx 服务。
 
</pre>
 
  
===通过 Kubernetes Dashboard 操作===
+
 
 +
 
 +
# bash -x mycheckbak
 +
++ /data/mon/monitor_http.py http://read.zhaituan.com/xtwlztdj_read_interface
 +
+ code =200
 +
#= 前后最好没有空格哦 原因
 +
mycheckbak: line 2: code: command not found
 +
+ '[' -eq 200 ']'
 +
mycheckbak: line 3: [: -eq: unary operator expected
 +
++ date +%Y%m%d%H%M
 +
+ DATE=201810131158
 +
+ echo 201810131158
 +
+ echo 'read no 200'</pre>
  
 
=see also=
 
=see also=
[https://help.aliyun.com/document_detail/86531.html?spm=5176.2020520165.120.d86531.2d357029XalTRt aliyun 通过负载均衡(Server Load Balancer)访问服务]
+
[https://blog.csdn.net/zxc024000/article/details/77911770 shell执行linux命令]
  
[https://help.aliyun.com/document_detail/86512.html 创建服务]
+
[[category:shell]]  [[category:ops]]

2018年10月22日 (一) 06:45的版本

  • 第一种 注意 = 前后最好没有空格哦 不然如下面的trouble
data=`command`


  • 第二种
data=$(command)

trouble

cat mycheckbak 
#!/bin/bash
code =`/data/mon/monitor_http.py http://read.zhaituan.com/xtwlztdj_read_interface`
if [ $code -eq 200 ]
then
:
else
DATE=$(date +%Y%m%d%H%M)
echo $DATE >>/data/logs/mycheck.log
echo "read no 200" >>/data/logs/mycheck.log
fi



# bash -x mycheckbak 
++ /data/mon/monitor_http.py http://read.zhaituan.com/xtwlztdj_read_interface
+ code =200
#= 前后最好没有空格哦 原因 
mycheckbak: line 2: code: command not found
+ '[' -eq 200 ']'
mycheckbak: line 3: [: -eq: unary operator expected
++ date +%Y%m%d%H%M
+ DATE=201810131158
+ echo 201810131158
+ echo 'read no 200'

see also

shell执行linux命令