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 '^]'.
  • 相关阅读:
    服务器状态码
    QuerySet中添加Extra进行SQL查询
    django配置一个网站建设
    MySQL数据库查询中的特殊命令
    125. Valid Palindrome
    121. Best Time to Buy and Sell Stock
    117. Populating Next Right Pointers in Each Node II
    98. Validate Binary Search Tree
    91. Decode Ways
    90. Subsets II
  • 原文地址:https://www.cnblogs.com/puroc/p/5796179.html
Copyright © 2011-2022 走看看