mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-12-24 11:51:13 +08:00
unix dns service
This commit is contained in:
@@ -3,11 +3,13 @@ package dns
|
||||
import (
|
||||
"context"
|
||||
"github.com/pkg/errors"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"io/fs"
|
||||
"io/ioutil"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/fields"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
@@ -17,14 +19,17 @@ func Dns(clientset *kubernetes.Clientset) error {
|
||||
if dnsIP, err = GetDNSIp(clientset); err != nil {
|
||||
return err
|
||||
}
|
||||
filename := filepath.Join("etc", "resolver", "local")
|
||||
if err = os.MkdirAll(filepath.Join("/", "etc", "resolver"), fs.ModePerm); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
filename := filepath.Join("/", "etc", "resolver", "local")
|
||||
fileContent := "nameserver " + dnsIP
|
||||
return ioutil.WriteFile(filename, []byte(fileContent), fs.ModePerm)
|
||||
}
|
||||
|
||||
func GetDNSIp(clientset *kubernetes.Clientset) (string, error) {
|
||||
serviceList, err := clientset.CoreV1().Services(v1.NamespaceSystem).List(context.Background(), v1.ListOptions{
|
||||
LabelSelector: fields.OneTermEqualSelector("k8s-app", "kube-dns").String(),
|
||||
FieldSelector: fields.OneTermEqualSelector("metadata.name", "kube-dns").String(),
|
||||
})
|
||||
if err != nil {
|
||||
return "", err
|
||||
|
||||
1
go.mod
1
go.mod
@@ -9,6 +9,7 @@ require (
|
||||
github.com/google/uuid v1.1.2
|
||||
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6
|
||||
github.com/onsi/ginkgo v1.14.0 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/shadowsocks/go-shadowsocks2 v0.1.5 // indirect
|
||||
github.com/sirupsen/logrus v1.8.1
|
||||
github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 // indirect
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/client-go/util/homedir"
|
||||
"kubevpn/dns"
|
||||
"kubevpn/exe"
|
||||
"kubevpn/remote"
|
||||
"net"
|
||||
@@ -94,6 +95,12 @@ func main() {
|
||||
<-readyChan
|
||||
log.Info("port forward ready")
|
||||
|
||||
if err := dns.Dns(clientset); err != nil {
|
||||
log.Fatal(err)
|
||||
} else {
|
||||
log.Info("dns service ok")
|
||||
}
|
||||
|
||||
if err := start(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user