• kubernetes集群系列资料11--service介绍


    一、service案例

    vim svc-deploy.yaml
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    apiVersion: apps/v1         #首选extensions/v1beta1
    kind: Deployment
    metadata:
        name: svc-deployment
        namespace: default
    spec:
        replicas: 3
        selector:
            matchLabels:
                app: svc-deployment
                release: stable
        template:                   #以下为嵌套pod的字段;
            metadata:
                labels:
                    app: svc-deployment
                    release: stable
                    env: test
            spec:
                containers:
                - name: svc-deployment
                  image: hub.atguigu.com/library/nginx:latest
                  ports:
                  - name: http
                    containerPort: 80
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    vim svc.yaml
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    apiVersion: v1         #首选extensions/v1beta1
    kind: Service
    metadata:
        name: svc-deployment
        namespace: default
    spec:
        type: ClusterIP
        selector:
            app: svc-deployment
            release: stable
        ports:
        - name: http
          port: 80
          targetPort: 80
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    kubectl apply -f svc-deploy.yaml
    kubectl apply -f svc.yaml
    kubectl get svc;kubectl get deployment;kubectl get rs;kubectl get pod   #查看创建资源;
    ipvsadm -ln;curl 10.109.120.103 #查看转发路径;测试:能访问服务;
    
    kubectl delete -f svc.yaml #删除svc资源;因此yaml文件尽量保留,以便后期维护。
    sed -i "s/app: svc-deployment/app: svc-deployment1/g" svc.yaml #修改svc模板;
    kubectl apply -f svc.yaml;kubectl get svc
    curl 10.105.124.206 #再测试,不能访问服务;其原因svc的label于pod的label不一致。
    ipvsadm -ln #查看svc转发策略:无。
    
    sed -i "s/app: svc-deployment1/app: svc-deployment/g" svc.yaml
    kubectl apply -f svc.yaml;kubectl get svc
    curl 10.105.124.206     #测试:能访问服务;
    
    vim svc-headless.yaml
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    apiVersion: v1         #首选extensions/v1beta1
    kind: Service
    metadata:
        name: svc-deployment-headless
        namespace: default
    spec:
        clusterIP: "None"
        selector:
            app: svc-deployment
            release: stable
        ports:
        - name: http
          port: 80
          targetPort: 80
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    kubectl apply -f svc-headless.yaml
    kubectl get svc;kubectl get pod -n kube-system
    yum -y install bind-utils
    dig -t A svc-deployment-headless.default.svc.cluster.local. @10.244.0.24  #对域名进行A记录解析。svc创建后,会将“svc的名称.名称空间.集群域名.@coreDNS的IP地址”写入coreDNS中。我们可通过dig命令解析该SVC域名为IP。???如何查询集群域名???
    
    
    vim svc-nodePort.yaml
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    apiVersion: v1
    kind: Service
    metadata:
        name: svc-deployment
        namespace: default
    spec:
        type: NodePort
        selector:
            app: svc-deployment
            release: stable
        ports:
        - name: http
          port: 80
          targetPort: 80
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    kubectl apply -f svc-nodePort.yaml
    kubectl get svc             #查看svc的IP及端口;
    iptables -t nat -nvL
    
    
    vim svc-externalName.yaml
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    apiVersion: v1
    kind: Service
    metadata:
        name: svc-deployment-1
        namespace: default
    spec:
        type: ExternalName
        externalName: hub.atguigu.com
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    kubectl apply -f svc-externalName.yaml
    kubectl get svc
    dig -t A svc-deployment-1.default.svc.cluster.local. @10.244.0.24
    

      

  • 相关阅读:
    高效出去List集合和数组中的重复元素
    各进制间转换总结
    java集合应用类
    禁止键盘上的刷新键F5等
    Map迭代
    java 过滤字符串方法实现
    java 跟 咖啡的关系
    插件jfreechart+shh实现树状图 柱状图 折线图
    Struts2利用iText导出word文档(包含表格)
    request.getRequestURI() 、request.getRequestURL() 、request.getContextPath()、request.getServletPath()区别
  • 原文地址:https://www.cnblogs.com/chalon/p/14897629.html
Copyright © 2020-2023  润新知