k8s开发基础-配置ingress+tls

部署一个deployment:
编写yaml文件–deploy.yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: hello-deploy
spec:
  replicas: 10
  selector:
    matchLabels:
      app: hello-world
  minReadySeconds: 10
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    metadata:
      labels:
        app: hello-world
    spec:
      containers:
      - name: hello-pod
        image: nigelpoulton/k8sbook:latest
        ports:
        - containerPort: 8080
————————————————
apiversion:指定api版本
kind:指定类型,这里是deployment
metadata:deployment的标签,定义了它的名字为hello-deploy
spec:spec一下都是pod相关的内容。
replicas:副本数量,就是pod数量
selector:deploy管理这个pod的选择标签。这里定义了一个标签app:hello-world
minReadySeconds:最小的准备时间。意思就是每个副本创建之间最小间隔时间,这里为10s
strategy:更新策略。type:更新类型为RollingUpdate。
RollingUpdate:这里有两个定义maxUnavailable和maxSurge。maxUnavailable是最大的不可用的副本,maxSurge是最大的超过期望的副本数的数量。
这里两个都为1,意思是我们deploy定义的副本数是10,一般来说就有10个副本同时可用,但是更新的时候,拿一个来更新操作(maxUnavailable),
就只有9个可用,同时创建一个新的更新pod(maxSurge),就会出现11个副本数。最终结果就是同时有两个pod更新,11-9=2。
如果一个1,一个0的话,应该是一次一个的更新。分别对应下面的两个值。这里我调成了一个1,一个0,所有最大不超过10副本数为0,但是不可用的可以少一个为9。

1.创建证书,web和web1分别对应一个独立的tls证书:

(weops) [root@node201 tls]# openssl genrsa -out web-ingress.key 2048
Generating RSA private key, 2048 bit long modulus
......................................+++
...............................................+++
e is 65537 (0x10001)
(weops) [root@node201 tls]# openssl req -new -key web-ingress.key -out web-ingress.csr -subj "/CN=web.gon.com"
(weops) [root@node201 tls]# openssl x509 -req -days 365 -in web-ingress.csr -signkey web-ingress.key -out web-ingress.crt
Signature ok
subject=/CN=web.gon.com
Getting Private key

(weops) [root@node201 tls]# openssl genrsa -out web1-ingress.key 2048
Generating RSA private key, 2048 bit long modulus
..............+++
..........+++
e is 65537 (0x10001)

(weops) [root@node201 tls]# openssl req -new -key web1-ingress.key -out web1-ingress.csr -subj "/CN=web1.gon.com"
(weops) [root@node201 tls]# openssl x509 -req -days 365 -in web1-ingress.csr -signkey web1-ingress.key -out web1-ingress.crt
Signature ok
subject=/CN=web1.gon.com
Getting Private key

2.创建secret

(weops) [root@node201 tls]# kubectl create secret tls web.gon.com --cert web-ingress.crt --key web-ingress.key
secret/web.gon.com created

(weops) [root@node201 tls]# kubectl create secret tls web1.gon.com --cert web1-ingress.crt --key web1-ingress.key
secret/web1.gon.com created

(weops) [root@node201 tls]# kubectl get secret
NAME                  TYPE                                  DATA   AGE
default-token-jvndx   kubernetes.io/service-account-token   3      62d
web.gon.com           kubernetes.io/tls                     2      4m58s
web1.gon.com          kubernetes.io/tls                     2      3m27s
 

3.创建ingress

红色部分为tls的配置

(weops) [root@node201 ~]# cat ingress.tls.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web
spec:
  tls:
  - hosts:
    - web.gon.com
    secretName: web.gon.com

  rules:
  - host: web.gon.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web        #指定servcie中的名称
            port:
              number: 1080   #指定servcie对应的port端口

4.测试

k8s开发基础-配置ingress+tls_第1张图片

你可能感兴趣的:(k8s开发基础,k8s-网络,kubernetes)