资讯专栏INFORMATION COLUMN

ingress controller学习记录(2)

tulayang / 1808人阅读

摘要:出来的是的欢迎页面使网站支持协议制作证书和私钥创建证书和私钥这个证书不能直接被的使用,需要转成后,才能被注入到中,被使用。访问发现可以访问。

将后端服务修改为tomcat

编辑 ingress-tomcat.yaml, 文件内容如下:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-tomcat
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: tomcat.test.com
    http:
      paths:
      - path:
        backend:
          serviceName: tomcat
          servicePort: 8080

tomcat-deploy.yaml 内容如下:

apiVersion: v1
kind: Service
metadata:
  name: tomcat
  namespace: default
spec:
  selector:
    app: tomcat
    release: canary
  ports:
  - name: http
    targetPort: 8080
    port: 8080
  - name: ajp
    targetPort: 8009
    port: 8009
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-deploy
  namespace: default
spec:
  replicas: 3
  selector: 
    matchLabels:
      app: tomcat
      release: canary
  template:
    metadata:
      labels:
        app: tomcat
        release: canary
    spec:
      containers:
      - name: tomcat
        image: tomcat:8.5.32-jre8-alpine
        ports: 
        - name: http
          containerPort: 8080
        - name: ajp
          containerPort: 8009
创建ingress

按如下命令创建ingress-tomcat

[root@master ingress-nginx]# kubectl apply -f tomcat-deploy.yaml 
service/tomcat created
deployment.apps/tomcat-deploy created
[root@master ingress-nginx]# kubectl apply -f ingress-tomcat.yaml 
ingress.extensions/ingress-tomcat created
[root@master ingress-nginx]# kubectl get ingress
NAME             HOSTS             ADDRESS   PORTS     AGE
ingress-tomcat   tomcat.test.com             80        6s

此时,修改本地hosts解析后,就可以访问tomcat.test.com:30080地址了。出来的是tomcat的欢迎页面

使网站支持https协议 制作证书和私钥

创建证书和私钥

[root@master ingress-nginx]# openssl genrsa -out tls.key 2048 
Generating RSA private key, 2048 bit long modulus
......................................+++
......+++
e is 65537 (0x10001)
[root@master ingress-nginx]# openssl req -new -x509 -key tls.key -out tls.crt -subj /C=CN/ST=Hangzhou/L=Hangzhou/O=kubernetes/CN=tomcat.test.com
[root@master ingress-nginx]# ls tls*
tls.crt  tls.key

这个证书不能直接被ingress的nginx使用,需要转成secret后,才能被注入到nginx中,被ingress使用。

创建secret
[root@master ingress-nginx]# kubectl create secret tls tomcat-ingress-secret --cert tls.crt --key=tls.key
secret/tomcat-ingress-secret created
[root@master ingress-nginx]# kubectl get secret
NAME                    TYPE                                  DATA      AGE
default-token-qcfxf     kubernetes.io/service-account-token   3         8d
tomcat-ingress-secret   kubernetes.io/tls                     2         7s
[root@master ingress-nginx]# kubectl describe secret tomcat-ingress-secret
Name:         tomcat-ingress-secret
Namespace:    default
Labels:       
Annotations:  

Type:  kubernetes.io/tls

Data
====
tls.crt:  1306 bytes
tls.key:  1679 bytes

编辑 ingress-tomcat-tls.yaml 文件,内容如下:

在yaml文件中添加了secret的相关信息:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-tomcat-tls
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  tls:
  - hosts:
    - tomcat.test.com
    secretName: tomcat-ingress-secret
  rules:
  - host: tomcat.test.com
    http:
      paths:
      - path:
        backend:
          serviceName: tomcat
          servicePort: 8080
创建ingress
[root@master ingress-nginx]# kubectl apply -f ingress-tomcat-tls.yaml 
ingress.extensions/ingress-tomcat-tls created
[root@master ingress-nginx]# kubectl get ingress
NAME                 HOSTS             ADDRESS   PORTS     AGE
ingress-tomcat       tomcat.test.com             80        17m
ingress-tomcat-tls   tomcat.test.com             80, 443   8s

然后去查看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   1          8h
nginx-ingress-controller-7675fd6cdb-njvdb   1/1       Running   1          8h
[root@master ingress-nginx]# kubectl exec -n ingress-nginx nginx-ingress-controller-7675fd6cdb-njvdb -it -- /bin/sh
$ cat nginx.conf|grep secret
        ssl_certificate                         /etc/ingress-controller/ssl/default-tomcat-ingress-secret.pem;
        ssl_certificate_key                     /etc/ingress-controller/ssl/default-tomcat-ingress-secret.pem;
        ssl_trusted_certificate                 /etc/ingress-controller/ssl/default-tomcat-ingress-secret-full-chain.pem;
$ 

发现,secret的相关信息,已经被注入到了ingress-controller的nginx配置之中。

访问https://tomcat.test.com:80443 发现可以访问。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32694.html

相关文章

  • ingress controller学习记录

    摘要:创建按文档操作在的中将固定一下。的内容创建的和的。此时,在本地机器绑定为两个的,就可以在本地机器的浏览器中访问网页了。 创建ingress-nginx 按文档操作 wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml kubectl apply -f ma...

    MadPecker 评论0 收藏0
  • 基于kubernetes+docker+jenkins的DevOps实践

    摘要:一个小服务器加本地一个闲置从机撑进去这么多东西很显然爆了,于是把拆出来,用上了公共的云服务容器镜像服务。使用对集群外暴露服务这里使用的是在中部署有官方部署手册,基本按着走一遍就能部署上去了。 基于kubernetes+docker+jenkins的DevOps实践 之前自己的项目开发就搭了个cicd的环境,那时候是在本就小的可怜的服务器上搭了一套 jenkins + docker...

    zhichangterry 评论0 收藏0
  • 基于kubernetes+docker+jenkins的DevOps实践

    摘要:一个小服务器加本地一个闲置从机撑进去这么多东西很显然爆了,于是把拆出来,用上了公共的云服务容器镜像服务。使用对集群外暴露服务这里使用的是在中部署有官方部署手册,基本按着走一遍就能部署上去了。 基于kubernetes+docker+jenkins的DevOps实践 之前自己的项目开发就搭了个cicd的环境,那时候是在本就小的可怜的服务器上搭了一套 jenkins + docker...

    paulli3 评论0 收藏0
  • Kubernetes上的负载均衡详解

    摘要:部署只是一种规则,控制器组件会将这一规则应用于实际负载均衡器中。原因是功能仅允许将端口用于路由,负载均衡器和则可作为全局启动。负载均衡的限制提供了功能丰富的负载均衡器支持详细介绍在此。截至目前,我们暂时无法使用工具将负载均衡器配置从转换为。 如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于服务器繁忙!的情况。这一...

    CoderBear 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<