摘要:创建按文档操作在的中将固定一下。的内容创建的和的。此时,在本地机器绑定为两个的,就可以在本地机器的浏览器中访问网页了。
创建ingress-nginx
按文档操作
</>复制代码
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
kubectl apply -f mandatory.yaml
</>复制代码
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml
### 在service的spec中将nodePort固定一下。
kubectl apply -f service-nodeport.yaml
deploy-demo.yaml 的内容
</>复制代码
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: default
spec:
selector:
app: myapp
release: canary
ports:
- name: http
targetPort: 80
port: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: myapp
release: canary
template:
metadata:
labels:
app: myapp
release: canary
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v2
ports:
- name: http
containerPort: 80
创建myapp的service和myapp-deploy的Deployment。
kubectl apply -f deploy-demo.yaml
结果
</>复制代码
[root@master ingress-nginx]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
default-http-backend-6586bc58b6-4f6qm 1/1 Running 0 30m
nginx-ingress-controller-7675fd6cdb-njvdb 1/1 Running 0 30m
[root@master ingress-nginx]# kubectl get pods
NAME READY STATUS RESTARTS AGE
myapp-deploy-67f6f6b4dc-67f7f 1/1 Running 0 7m
myapp-deploy-67f6f6b4dc-hdbht 1/1 Running 0 7m
myapp-deploy-67f6f6b4dc-ktfh6 1/1 Running 0 7m
[root@master ingress-nginx]# kubectl get svc --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 443/TCP 8d
default myapp ClusterIP 10.103.69.18 80/TCP 7m
ingress-nginx default-http-backend ClusterIP 10.97.71.74 80/TCP 33m
ingress-nginx ingress-nginx NodePort 10.110.227.164 80:30080/TCP,443:30443/TCP 31m
kube-system kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP 8d
此时,访问nodeIP:nodePort已经可以看到输出,如图
创建Ingress对象
ingress-myapp.yaml 的内容如下
</>复制代码
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-myapp
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: myapp.test.com
http:
paths:
- path:
backend:
serviceName: myapp
servicePort: 80
创建Ingress
</>复制代码
[root@master ingress-nginx]# kubectl apply -f ingress-myapp.yaml
ingress.extensions/ingress-myapp created
[root@master ingress-nginx]# kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE
ingress-myapp myapp.test.com 80 4s
创建成功后,Ingress会将信息注入到ingress-controller里面去,即:会自动转换为nginx的配置文件
</>复制代码
[root@master ingress-nginx]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
default-http-backend-6586bc58b6-4f6qm 1/1 Running 0 1h
nginx-ingress-controller-7675fd6cdb-njvdb 1/1 Running 0 1h
[root@master ingress-nginx]# kubectl exec -n ingress-nginx -it nginx-ingress-controller-7675fd6cdb-njvdb -- /bin/sh
$ cat nginx.conf|grep -C2 myapp
## end server _
## start server myapp.test.com
server {
server_name myapp.test.com ;
listen 80;
--
set $namespace "default";
set $ingress_name "ingress-myapp";
set $service_name "myapp";
set $service_port "80";
set $location_path "/";
--
port_in_redirect off;
set $proxy_upstream_name "default-myapp-80";
client_max_body_size "1m";
--
}
## end server myapp.test.com
# default server, used for NGINX healthcheck and access to nginx stats
$
可以看到pod内的nginx.conf文件确实被注入了myapp相关的信息。
此时,在本地机器绑定myapp.test.com为两个node的ip,就可以在本地机器的浏览器中访问 http://myapp.test.com:30080/ 网页了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/32695.html
摘要:出来的是的欢迎页面使网站支持协议制作证书和私钥创建证书和私钥这个证书不能直接被的使用,需要转成后,才能被注入到中,被使用。访问发现可以访问。 将后端服务修改为tomcat 编辑 ingress-tomcat.yaml, 文件内容如下: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-tomca...
摘要:一个小服务器加本地一个闲置从机撑进去这么多东西很显然爆了,于是把拆出来,用上了公共的云服务容器镜像服务。使用对集群外暴露服务这里使用的是在中部署有官方部署手册,基本按着走一遍就能部署上去了。 基于kubernetes+docker+jenkins的DevOps实践 之前自己的项目开发就搭了个cicd的环境,那时候是在本就小的可怜的服务器上搭了一套 jenkins + docker...
摘要:一个小服务器加本地一个闲置从机撑进去这么多东西很显然爆了,于是把拆出来,用上了公共的云服务容器镜像服务。使用对集群外暴露服务这里使用的是在中部署有官方部署手册,基本按着走一遍就能部署上去了。 基于kubernetes+docker+jenkins的DevOps实践 之前自己的项目开发就搭了个cicd的环境,那时候是在本就小的可怜的服务器上搭了一套 jenkins + docker...
摘要:部署只是一种规则,控制器组件会将这一规则应用于实际负载均衡器中。原因是功能仅允许将端口用于路由,负载均衡器和则可作为全局启动。负载均衡的限制提供了功能丰富的负载均衡器支持详细介绍在此。截至目前,我们暂时无法使用工具将负载均衡器配置从转换为。 如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于服务器繁忙!的情况。这一...
阅读 1074·2021-11-22 13:53
阅读 1623·2021-11-17 09:33
阅读 2424·2021-10-14 09:43
阅读 2899·2021-09-01 11:41
阅读 2304·2021-09-01 10:44
阅读 2968·2021-08-31 09:39
阅读 1472·2019-08-30 15:44
阅读 1884·2019-08-30 13:02