Coreos集群中安装Kubernetes的步骤(1)

Coreos因为其精简性,有一些工具并不存在。所以如果按照传统的安装方式并不一定能成功安装Kubernetes。 但好在Coreos官方提供了Kubernetes的安装步骤,点击这里看原版. 我这里精简了一下官方步骤,同样可以安装成功。

配置证书

证书分为三类:

  • Master证书
  • Worker证书
  • Admin证书
Master证书
  • 创建ca证书

以下操作在Master节点中运行, 创建ca目录用于保存所有的证书:

openssl genrsa -out ca-key.pem 2048  
openssl req -x509 -new -nodes -key ca-key.pem -days 10000 -out ca.pem -subj "/CN=kube-ca"  

执行成功之后,你就会在ca目录中看到生成的ca.pem和ca-key.pem文件,这两个文件将用于后面所有的操作。

  • 创建API server证书

创建openssl.cnf文件,在文件中输入以下内容:

[req]
req_extensions = v3_req  
distinguished_name = req_distinguished_name  
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE  
keyUsage = nonRepudiation, digitalSignature, keyEncipherment  
subjectAltName = @alt_names  
[alt_names]
DNS.1 = kubernetes  
DNS.2 = kubernetes.default  
DNS.3 = kubernetes.default.svc  
DNS.4 = kubernetes.default.svc.cluster.local  
IP.1 = ${K8S_SERVICE_IP}  
IP.2 = ${MASTER_HOST}  

替换K8SSERVICEIP和MASTER_HOST两个变量。 其中:

  • K8SSERVICEIP 是Kubernetes Pods私网IP, 默认为10.3.0.1
  • MASTER_HOST 是Master节点公开IP。此IP将用于其他Node节点访问使用,所以确认此IP可以被其它节点访问.

执行以下命令,生成证书:

openssl genrsa -out apiserver-key.pem 2048

openssl req -new -key apiserver-key.pem -out apiserver.csr -subj "/CN=kube-apiserver" -config openssl.cnf

openssl x509 -req -in apiserver.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out apiserver.pem -days 365 -extensions v3_req -extfile openssl.cnf  

成功之后,你将看到ca目录将会有 apiserver-key.pem, apiserver.csr和apiserver.pem三个文件.

Worker证书

以下操作在Worker节点执行。

  • 拷贝Master生成的ca.pem和ca-key.pem

创建worker-openssl.cnf文件,在文件中输入以下内容:

[req]
req_extensions = v3_req  
distinguished_name = req_distinguished_name  
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE  
keyUsage = nonRepudiation, digitalSignature, keyEncipherment  
subjectAltName = @alt_names  
[alt_names]
IP.1 = $ENV::WORKER_IP  
  • 设定环境变量

  • WORKER_FQDN worker节点标示. 例如:kuber-worker-xxxx。

  • WORKER_IP worker节点IP。

  • 生成证书

openssl genrsa -out ${WORKER_FQDN}-worker-key.pem 2048

WORKER_IP=${WORKER_IP} openssl req -new -key ${WORKER_FQDN}-worker-key.pem -out ${WORKER_FQDN}-worker.csr -subj "/CN=${WORKER_FQDN}" -config worker-openssl.cnf

WORKER_IP=${WORKER_IP} openssl x509 -req -in ${WORKER_FQDN}-worker.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out ${WORKER_FQDN}-worker.pem -days 365 -extensions v3_req -extfile worker-openssl.cnf  

执行成功之后,你将会看到生成的xxxx-key.pem,xxxx.pem和xxxx.csr三个文件。

Admin证书

以下操作最好在Master节点执行.

openssl genrsa -out admin-key.pem 2048

openssl req -new -key admin-key.pem -out admin.csr -subj "/CN=kube-admin"

openssl x509 -req -in admin.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out admin.pem -days 365  

执行成功之后,将会产生admin-key.pem admin.csr和admin.pem三个文件。

至此所有证书生成完毕,下一步开始部署Master节点。