• ​LAB06:创建SVC


    LAB-06:创建SVC

    LAB 需求

    重新配置一个已经存在的 deployment front-end,在名字为 nginx 的容器里面添加一个端口配置,名字为 http,暴露端口号为 80。
    然后创建一个 service,名字为 front-end-svc,暴露该 deployment 的 http 端口,并且 service 的类型为 NodePort。

    LAB 预配

    # 预配置创建一个 deployment 名称为 front-end
    user1@k8s-master:~/cka/6$ cat front-end.yaml 
    apiVersion: apps/v1
    kind: Deployment 
    metadata:
      name: front-end 
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx-front-end 
      template:
        metadata:
          labels:
            app: nginx-front-end 
        spec:
          containers:
          - name: nginx 
            image: nginx:1.18.0
            imagePullPolicy: IfNotPresent

    # 部署 front-end
    user1@k8s-master:~/cka/6$ kubectl apply -f front-end.yaml 
    deployment.apps/front-end created

    LAB 答案

    # 切换 content
    $ kubectl config use-context k8s

    # edit front-end ,在 containers 中添加如下内容 
    $ kubectl edit deployment front-end
    ......
    ports:
    - name: http
      protocol: TCP
      containerPort: 80

    # 创建 svc,暴露 80 端口
    $ kubectl expose deployment front-end --port=80 --target-port=80 --protocol=TCP --type=NodePort --name=front-end-svc 

    LAB 验证

    # 修改后的 yaml 文件如下
    user1@k8s-master:~$ kubectl get deployments.apps front-end -o yaml
    apiVersion: apps/v1
    kind: Deployment
    ......
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: nginx-front-end
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: nginx-front-end
        spec:
          containers:
          - image: nginx:1.18.0
            imagePullPolicy: IfNotPresent
            name: nginx
            ports:
            - containerPort: 80
              name: http
              protocol: TCP

    # 查看 svc
    user1@k8s-master:~$ kubectl get svc front-end-svc 
    NAME            TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
    front-end-svc   NodePort   10.99.251.169   <none>        80:32417/TCP   3h55m

    # 测试访问,使用 CLUSTER-IP
    user1@k8s-master:~$ curl 10.99.251.169
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>

    # 测试访问,使用 node 的地址
    user1@k8s-master:~$ curl 192.168.1.210:32417
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>

    参考资料

    • https://kubernetes.io/docs/concepts/services-networking/service/

    • https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#expose

  • 相关阅读:
    myeclipse web 包名保留字与servlet冲突
    java.lang.IllegalStateException
    request 和response 中的setCharacterEncoding区别
    java.lang.ClassNotFoundException: com.servlet.HandlesearchclassesServlet
    sql server 2008 com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机
    理解java reference
    Java 内存区域和GC机制
    Tomcat配置HTTPS方式
    百度分享不支持https的解决方案
    Spring对Hibernate事务管理
  • 原文地址:https://www.cnblogs.com/quqibinggan/p/16373967.html
Copyright © 2020-2023  润新知