参考:http://blog.csdn.net/qq1010885678/article/details/48832067nginx
一个简单的nginx服务器api
先决条件:你须要拥有的是一个部署完毕并能够正常运行的k8s集群。服务器
1.拉 nginx 镜像,上传到私服session
方案一:使用界面 k8s dashboard 建立app
1.建立rc :tcp
建立完后:ide
两个同时建立.测试
由于建立rc的时候 选择了内部服务。ui
如图:spa
咱们尝试在 minion节点上 访问
nginx
方式一: Cluster IP+port 注意配置的是 targetPort 即容器内的端口是80
能够访问!
方式二:经过 pod的 Cluster IP+containerPort
实践证实 :均可以!
注意:2个都叫 Cluster IP ,可是实际上 后面的是 容器的ip,签名的应该 是 另外的一个ip
2个ip的区别 将来须要继续弄清楚。
另外:这三个IP都不是 minion的节点的 IP,192.168.179.135
节点的IP 80 或81端口都不行的。
据此:尝试建立 一个外部服务
测试:
以上三个IP均可以。
重点: minion节点的IP+ 32108 端口竟然能够访问
方案二:经过yaml文件建立 rc和svc 即rc和service 本方法没验证,可是yaml是从 界面里拷出来的。理论上能够的
1.建立rc
Replication Controller {5}
kind : ReplicationController
apiVersion : v1
metadata {8}
name : nginx-hui
namespace : default
selfLink : /api/v1/namespaces/default/replicationcontrollers/nginx-hui
uid : 80f386f8-c206-11e7-859d-000c29e983de
resourceVersion : 55282
generation : 1
creationTimestamp : 2017-11-05T08:51:24Z
labels {1}
app : nginx-hui
spec {3}
replicas : 2
selector {1}
app : nginx-hui
template {2}
metadata {3}
name : nginx-hui
creationTimestamp : null
labels {1}
app : nginx-hui
spec {5}
containers [1]
0 {6}
name : nginx-hui
image : 192.168.179.133:80/nginx
resources {0}
(empty object)
terminationMessagePath : /dev/termination-log
imagePullPolicy : Always
securityContext {1}
privileged : false
restartPolicy : Always
terminationGracePeriodSeconds : 30
dnsPolicy : ClusterFirst
securityContext {0}
(empty object)
status {5}
replicas : 2
fullyLabeledReplicas : 2
readyReplicas : 2
availableReplicas : 2
observedGeneration : 1
2.建立svc
Service {5}
kind : Service
apiVersion : v1
metadata {7}
name : nginx-hui
namespace : default
selfLink : /api/v1/namespaces/default/services/nginx-hui
uid : 80fe1ae1-c206-11e7-859d-000c29e983de
resourceVersion : 55241
creationTimestamp : 2017-11-05T08:51:24Z
labels {1}
app : nginx-hui
spec {5}
ports [1]
0 {4}
name : tcp-81-80-8yb4e
protocol : TCP
port : 81
targetPort : 80
selector {1}
app : nginx-hui
clusterIP : 10.254.239.9
type : ClusterIP
sessionAffinity : None
status {1}
loadBalancer {0}
(empty object)
实际是在 服务器上 master上 建立2个yaml文件
rc.yaml 和svc.yaml
而后用
kubectl create -f xx.yaml
分别建立 rc和service
方案三:下面是采用命令方式建立:(未成功)
2. 在Master节点上使用kubectl命令来启动一个运行着nginx服务器的容器:
kubectl run my-nginx --image=192.168.179.133:80/nginx --replicas=2 --port=80
注:
3.经过端口将应用链接到Internet上
如下命令将上一步骤中的nginx容器链接到公网中:
kubectl expose rc my-nginx --port=80 --type=LoadBalancer
注:rc即Replication Controller,上一步骤中的命令其实会自动建立一个名为my-nginx的rc来确保pod的数量维持在2个。
实际测试中 没有这个rc 叫my-nginx
也能够界面: