zoukankan      html  css  js  c++  java
  • k8s部署dns

    硬件环境:

    两台虚拟机,

    10.10.20.203 部署docker、etcd、flannel、kube-apiserver、kube-controller-manager、kube-scheduler

    10.10.20.206 部署docker、flannel、kubelet、kube-proxy

    软件环境:

    kubernetes:1.3.3

    DNS-etcd:index.tenxcloud.com/google_containers/etcd:2.2.5

    kube2sky:index.tenxcloud.com/google_containers/kube2sky:1.15

    skyDNS:index.tenxcloud.com/google_containers/skydns:2015-10-13-8c72f8c

    1、创建dns-rc.yaml

    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: dns-rc-test
      labels:
        k8s-app: dns
        version: v8
        kubernetes.io/cluster-service: "true"
    spec:
      replicas: 1
      selector:
        k8s-app: dns
        version: v8
        kubernetes.io/cluster-service: "true"
      template:
        metadata:
          labels:
            k8s-app: dns
            version: v8
            kubernetes.io/cluster-service: "true"
        spec:
          containers:
          - name: etcd
            image: 10.10.20.202/library/etcd:2.2.5
            command:
            - /usr/local/bin/etcd
            - -data-dir
            - /var/etcd/data
            - -listen-client-urls
            - http://127.0.0.1:2379,http://127.0.0.1:4001
            - -advertise-client-urls
            - http://127.0.0.1:2379,http://127.0.0.1:4001
            - -initial-cluster-token
            - skydns-etcd
            volumeMounts:
            - name : etcd-storage
              mountPath: /var/etcd/data
          - name: kube2sky
            image: 10.10.20.202/library/kube2sky:1.15
            args:
            - --kube-master_url=http://10.10.20.203:8080  #改换实际的master地址
            - --domain=cluster.local
          - name: skydns
            image: 10.10.20.202/library/skydns:2015-10-13
            args:
            - -machines=http://127.0.0.1:4001
            - -addr=0.0.0.0:53
            - -domain=cluster.local
            ports:
            - containerPort: 53
              name: dns-udp
              protocol: UDP
            - containerPort: 53
              name: dns-tcp
              protocol: TCP
          volumes:
          - name: etcd-storage
            emptyDir: {}
          dnsPolicy: Default

    2、创建dns-service.yaml

    apiVersion: v1
    kind: Service
    metadata:
      name: dns-svc-test
      labels:
        k8s-app: dns
        kubernetes.io/cluster-service: "true"
        kubernetes.io/name: "DNStest"
    spec:
      selector:
        k8s-app: dns
      clusterIP: 10.254.159.10   #在service-cluster-ip-range范围取一个值
      ports:
      - name: dns-udp
        port: 53
        protocol: UDP
      - name: dns-tcp
        port: 53
        protocol: TCP

    3、部署dns

    kubectl create -f /root/k8s/dns/dns-rc.yaml
    kubectl create -f /root/k8s/dns/dns-service.yaml

    4、在kubelet的启动脚本中增加cluster-dns=10.254.159.10和cluster-domain=cluster.local,如下,并重启kubelet。

    kubelet 
    --logtostderr=true --v=0 
    --address=0.0.0.0 
    --api-servers=http://10.10.20.203:8080 
    --pod-infra-container-image=index.tenxcloud.com/google_containers/pause-amd64:3.0 
    --cluster-dns=10.254.159.10 
    --cluster-domain=cluster.local 
    >> /var/log/kubelet.log 2>&1 &

    5、进入一个pod中执行域名解析和telnet指令,验证域名是否可用

    [root@k8s-master bin]# kubectl get service
    NAME                 CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
    dns-svc-test         10.254.159.10    <none>        53/UDP,53/TCP   4d
    emp-authc-service    10.254.64.191    <nodes>       11111/TCP       40m
    emp-portal-service   10.254.20.196    <nodes>       8080/TCP        39m
    kubernetes           10.254.0.1       <none>        443/TCP         10d
    postgresql-service   10.254.161.247   <nodes>       5432/TCP        2h
    redis-service        10.254.160.1     <nodes>       6379/TCP        1h
    zookeeper-service    10.254.229.137   <nodes>       2181/TCP        2h
    [root@k8s-master bin]# kubectl exec centos-master-fy8r4 -i -t -- bash -il
    [root@centos-master-fy8r4 /]# nslookup postgresql-service
    Server:        10.254.159.10
    Address:    10.254.159.10#53
    
    Name:    postgresql-service.default.svc.cluster.local
    Address: 10.254.161.247
    
    [root@centos-master-fy8r4 /]# telnet postgresql-service 5432
    Trying 10.254.161.247...
    Connected to postgresql-service.
    Escape character is '^]'.
  • 相关阅读:
    Flask路由系统
    Flask配置方式
    Flask应用启动流程
    Flask简介及使用
    python调用支付宝支付接口
    python调用腾讯云短信接口
    Celery简介以及Django中使用celery
    django中使用redis
    Redis之缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
    git操作
  • 原文地址:https://www.cnblogs.com/puroc/p/5796179.html
Copyright © 2011-2022 走看看