成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Heapster啟動(dòng)的進(jìn)一步研究

printempw / 3147人閱讀

摘要:若我們將這兩個(gè)參數(shù)分別設(shè)定值為和那么啟動(dòng)后,執(zhí)行命令,并詳細(xì)地查看該可以看到,該中有了兩個(gè)和,他們分別是和進(jìn)行再次加密后的數(shù)據(jù)。

kube-apiserver啟動(dòng)的時(shí)候如果加了如下的參數(shù):

--admission_control=ServiceAccount

會(huì)自動(dòng)生成一個(gè)apiserver.crt和apiserver.key文件,所在目錄是/var/run/kubernetes/,并且程序啟動(dòng)后會(huì)發(fā)現(xiàn),有一個(gè)默認(rèn)的serviceaccount,這種模式下我們創(chuàng)建的resource都會(huì)有一個(gè)默認(rèn)的serviceaccount。

kube-controller-manager啟動(dòng)時(shí)有這么兩個(gè)參數(shù):

--root-ca-file="": If set, this root certificate authority will be included in service account"s token secret. This must be a valid PEM-encoded CA bundle.

--service-account-private-key-file="": Filename containing a PEM-encoded private RSA key used to sign service account tokens.

這兩個(gè)參數(shù)指定了要用哪些文件做token和根證書。若我們將這兩個(gè)參數(shù)分別設(shè)定值為apiserver.crt和apiserver.key,那么啟動(dòng)后,執(zhí)行:

kubectl get secrets

命令,并詳細(xì)地查看該secret可以看到,該secret中有了兩個(gè)data:ca.crt和token,他們分別是apiserver.crt和apiserver.key進(jìn)行再次加密后的數(shù)據(jù)。

這樣,我們創(chuàng)建一個(gè)heapster,heapster所屬的serviceaccount的secret中的兩個(gè)data,會(huì)被copy到創(chuàng)建出來的容器中,我們可以進(jìn)入該容器找到兩個(gè)數(shù)據(jù)。

我們看到kubernetes的源碼中,apiserver的模塊有這么一個(gè)函數(shù),這個(gè)函數(shù)在啟動(dòng)apiserver的時(shí)候會(huì)被調(diào)用:

func GenerateSelfSignedCert(host, certPath, keyPath string, alternateIPs []net.IP, alternateDNS []string) error {
        priv, err := rsa.GenerateKey(rand.Reader, 2048)
        if err != nil {
            return err
        }

        template := x509.Certificate{
            SerialNumber: big.NewInt(1),
            Subject: pkix.Name{
                CommonName: fmt.Sprintf("%s@%d", host, time.Now().Unix()),
            },
            NotBefore: time.Now(),
            NotAfter:  time.Now().Add(time.Hour * 24 * 365),

            KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
            ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
            BasicConstraintsValid: true,
        }
        ...
    }

這個(gè)函數(shù)的功能是創(chuàng)建crt和key,調(diào)用這個(gè)函數(shù)的地方是kubernetescmdkube-apiserverappserver.go

if s.TLSCertFile == "" && s.TLSPrivateKeyFile == "" {
                    s.TLSCertFile = path.Join(s.CertDirectory, "apiserver.crt")
                    s.TLSPrivateKeyFile = path.Join(s.CertDirectory, "apiserver.key")
                    // TODO (cjcullen): Is PublicAddress the right address to sign a cert with?
                    alternateIPs := []net.IP{config.ServiceReadWriteIP}
                    alternateDNS := []string{"kubernetes.default.svc", "kubernetes.default", "kubernetes"}
                    // It would be nice to set a fqdn subject alt name, but only the kubelets know, the apiserver is clueless
                    // alternateDNS = append(alternateDNS, "kubernetes.default.svc.CLUSTER.DNS.NAME")
                    if err := util.GenerateSelfSignedCert(config.PublicAddress.String(), s.TLSCertFile, s.TLSPrivateKeyFile, alternateIPs, alternateDNS); err != nil {
                        glog.Errorf("Unable to generate self signed cert: %v", err)
                    } else {
                        glog.Infof("Using self-signed cert (%s, %s)", s.TLSCertFile, s.TLSPrivateKeyFile)
                    }
                }

通過上一篇可以知heapster啟動(dòng)后是要向apiserver做https請(qǐng)求的,所以crt和token必不可少。那為什么我們不直接拿這邊的crt和key去用呢?

這篇文章詳細(xì)地講了證書生成的相關(guān)知識(shí),其中的“添加了SAN的證書生成的過程”和上文源碼中調(diào)用生成證書的地方是相似的,但是生成證書的過程中,hostname部分引用了了一個(gè)[email protected]()作為/CN。見源代碼中這句:

 Subject: pkix.Name{
                    CommonName: fmt.Sprintf("%s@%d", host, time.Now().Unix()),
                },

這句將生成crt的時(shí)候的hostname設(shè)置成了host@time,比如vm-56-65@23542343562 這樣的形式,而且每次重啟了apiserver,hostname都會(huì)變,容器內(nèi)部可不知道這個(gè)hostname,所以根本沒法訪問。

heapster內(nèi)部會(huì)記錄apiserver的幾個(gè)common name,即kubernetes源碼中的:

[]string{"kubernetes.default.svc", "kubernetes.default", "kubernetes"}

我認(rèn)為這肯定是要與kubernetes自生成的crt公用而設(shè)計(jì)的。 至于為什么不行,等有時(shí)間再研究。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32431.html

相關(guān)文章

  • kubernetes下heapster部署案例

    摘要:舉個(gè)例子,我們?cè)谶@種狀態(tài)下創(chuàng)建一個(gè),然后執(zhí)行在中會(huì)發(fā)現(xiàn)有了字段,并且裝載了一個(gè)是的,這個(gè)就是我們這個(gè)下的。 注:本案例在我的部署環(huán)境下是可行的,但不保證在所有環(huán)境下都可行。我盡可能講得直白而詳細(xì),因?yàn)槲易约阂膊艅傞_始接觸,已經(jīng)做過深入研究的可以瀏覽,若有什么錯(cuò)誤,煩請(qǐng)指正,感激不盡! 我的環(huán)境: K8S1.0.0+flannel+docker1.6的分布式集群。 這里先不贅述fla...

    Ali_ 評(píng)論0 收藏0
  • kubernetes下heapster部署案例

    摘要:舉個(gè)例子,我們?cè)谶@種狀態(tài)下創(chuàng)建一個(gè),然后執(zhí)行在中會(huì)發(fā)現(xiàn)有了字段,并且裝載了一個(gè)是的,這個(gè)就是我們這個(gè)下的。 注:本案例在我的部署環(huán)境下是可行的,但不保證在所有環(huán)境下都可行。我盡可能講得直白而詳細(xì),因?yàn)槲易约阂膊艅傞_始接觸,已經(jīng)做過深入研究的可以瀏覽,若有什么錯(cuò)誤,煩請(qǐng)指正,感激不盡! 我的環(huán)境: K8S1.0.0+flannel+docker1.6的分布式集群。 這里先不贅述fla...

    Jinkey 評(píng)論0 收藏0
  • Kubernetes監(jiān)控之Heapster源碼分析

    摘要:源碼版本簡(jiǎn)介是下的一個(gè)監(jiān)控項(xiàng)目,用于進(jìn)行容器集群的監(jiān)控和性能分析?;镜墓δ芗案拍罱榻B可以回顧我之前的一篇文章監(jiān)控之介紹。在源碼分析之前我們先介紹的實(shí)現(xiàn)流程,由上圖可以看出會(huì)從各個(gè)上獲取相關(guān)的監(jiān)控信息,然后進(jìn)行匯總發(fā)送給后臺(tái)數(shù)據(jù)庫(kù)。 源碼版本 heapster version: release-1.2 簡(jiǎn)介 Heapster是Kubernetes下的一個(gè)監(jiān)控項(xiàng)目,用于進(jìn)行容器集群的監(jiān)控...

    gclove 評(píng)論0 收藏0
  • 閑談 Kubernetes 主要特性和經(jīng)驗(yàn)分享

    摘要:主要介紹的主要特性和一些經(jīng)驗(yàn)。先從整體上看一下的一些理念和基本架構(gòu),然后從網(wǎng)絡(luò)資源管理存儲(chǔ)服務(wù)發(fā)現(xiàn)負(fù)載均衡高可用安全監(jiān)控等方面向大家簡(jiǎn)單介紹的這些主要特性。集群范圍內(nèi)的監(jiān)控主要由和如構(gòu)建。 主要介紹 Kubernetes 的主要特性和一些經(jīng)驗(yàn)。先從整體上看一下Kubernetes的一些理念和基本架構(gòu), 然后從網(wǎng)絡(luò)、 資源管理、存儲(chǔ)、服務(wù)發(fā)現(xiàn)、負(fù)載均衡、高可用、rolling upgra...

    Guakin_Huang 評(píng)論0 收藏0
  • 閑談 Kubernetes 主要特性和經(jīng)驗(yàn)分享

    摘要:主要介紹的主要特性和一些經(jīng)驗(yàn)。先從整體上看一下的一些理念和基本架構(gòu),然后從網(wǎng)絡(luò)資源管理存儲(chǔ)服務(wù)發(fā)現(xiàn)負(fù)載均衡高可用安全監(jiān)控等方面向大家簡(jiǎn)單介紹的這些主要特性。集群范圍內(nèi)的監(jiān)控主要由和如構(gòu)建。 主要介紹 Kubernetes 的主要特性和一些經(jīng)驗(yàn)。先從整體上看一下Kubernetes的一些理念和基本架構(gòu), 然后從網(wǎng)絡(luò)、 資源管理、存儲(chǔ)、服務(wù)發(fā)現(xiàn)、負(fù)載均衡、高可用、rolling upgra...

    shevy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<