這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
編譯k8s
代碼時,會在k8s
根目錄下產生一個_output
檔案夾,同時這個檔案夾下還包含local
檔案夾:
~/kubernetes/_output/local$ lsbin go
go
檔案夾下就是一個標準的Go
語言workspace
:
:~/kubernetes/_output/local/go$ ls -alttotal 20drwxrwxr-x 4 nan nan 4096 Dec 9 22:09 ..drwxrwxr-x 2 nan nan 4096 Dec 9 22:09 bindrwxrwxr-x 4 nan nan 4096 Dec 9 22:08 pkgdrwxrwxr-x 5 nan nan 4096 Dec 9 22:07 .drwxrwxr-x 3 nan nan 4096 Dec 9 22:04 src
進入src
檔案夾:
~/kubernetes/_output/local/go/src$ ls -alttotal 12drwxrwxr-x 5 nan nan 4096 Dec 9 22:07 ..drwxrwxr-x 2 nan nan 4096 Dec 9 22:06 k8s.iodrwxrwxr-x 3 nan nan 4096 Dec 9 22:04 .nan@ubuntu:~/kubernetes/_output/local/go/src$ cd k8s.io/nan@ubuntu:~/kubernetes/_output/local/go/src/k8s.io$ ls -alttotal 8drwxrwxr-x 2 nan nan 4096 Dec 9 22:06 .lrwxrwxrwx 1 nan nan 20 Dec 9 22:06 kubernetes -> /home/nan/kubernetesdrwxrwxr-x 3 nan nan 4096 Dec 9 22:04 ..
可以看到,src/k8s.io/kubernetes
就是一個指向外層工作目錄的軟連結。
至此,可以理解代碼裡下面import
語句為什麼能工作了:
import ( "k8s.io/kubernetes/contrib/mesos/pkg/controllermanager" "k8s.io/kubernetes/contrib/mesos/pkg/hyperkube")