k8s the hard way

1、安装必要工具cfssl、cfssljson、kubectl 

linux

wget -a --show-progress  --https-only  --timestamping   https://pkg.cfssl.org/R1.2/cfssl_linux-amd64  https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

chmod +x cfssl_linux-amd64 cfssljson_linux-amd64

mv cfssl_linux-amd64 /usr/local/bin/cfssl

mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

验证:

cfssl version

2)安装kubectl 

wget https://storage.googleapis.com/kubernetes-release/v1.12.0/bin/linux/amd64/kubectl

chmod +x kubectl

sudo mv kubectl /usr/local/bin

验证:

kubectl version --client

2、准备计算资源

3、配制创建证书

配制CA并创建TLS证书

我们将使用CloudFlare's PKI 工具 cfssl 来配制 PKI lnfrastructure ,然后使用它去创建Certificate Authority(CA),并为etcd、kube-apiserver、kubelet、kube-proxy创建TSL证书

1)创建用于生成其他TSL证书的Certificate Authority

cat > ca-config.json <<EOF

{

    "signing": {

       "default": {

       "expiry": "87600h"

    },

   "profiles": {

    "kubernetes": {

    "usages": ["signing", "key encipherment", "server auth", "client auth"],

    "expiry": "87600h"

     }

       }

     }

}

EOF

新建CA凭证签发请求文件:

cat > ca-csr.json <<EOF

{

  "CN": "kubernetes",

  "key": {

    "algo": "rsa",

    "size": 2048

  },

  "names": [

    {

      "C": "US",

      "L": "Portland",

      "O": "kubernetes",

      "OU": "CA",

      "ST": "Oregon"

    }

  ]

}

EOF

生成CA凭证和私钥:

cfssl gencert -initca ca-csr.json | cfssljson -bare ca

结果生成以下两个文件:

ca-key.pem

ca.pem

client 与 server 凭证

 创建用于kubernetes 组件的client 与server凭证,以及一个用于kubernetes admin用户的client凭证

Admin 客户端凭证

创建admin client 凭证签发请求文件:

cat > admin-csr.json <<EOF

{

  "CN": "admin",

  "key": {

    "algo": "rsa",

    "size": 2048

  },

  "names": [

    {

      "C": "US",

      "L": "Portland",

      "O": "system:masters",

      "OU": "kubernetes The Hard Way",

      "ST": "Oregon"

    }

  ]

}

EOF

创建admin client 凭证和私钥:

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.dson ||cfssljson -bare admin

生成下面两个文件

admin-key.pem admin.pem

kubelet客户端凭证(kubernetes 使用special-purpose authorization mode (被称作Node Authorizer)授权来自kubelet 的API请求。为了通过Node Authorizer的授权,Kubelet必须使用一个署名为 system:node:<nodeName> 的凭证来证明它属于system:nodes 用户组)

kube-controller-manager客户端凭证

kube-proxy客户端凭证

kube-scheduler证书

kubernetes API Server 证书(为了保证客户端与Kubernetes API 的认证,Kubernetes API Server 凭证中必需包含kubbernetes-the-hard-way 的静态IP地址。)

Service Account 证书

4、配制生成Kubenetes 配制文件

 每个kubeconfig文件都需要一个Kubetnets API Server 的IP地址。

kubelet 配制文件

kube-proxy配制文件

kube-controller-manager配制文件

kube-scheduler配制文件

Admin配制文件

5、配制生成密钥

创建加密密钥以及一个用于加密Kubernetes Secrets 的加密配制文件

6、部署etcd群集

7、部署控制节点

8、部署计算节点

9、配制kubectl

10、配制网络路由

11、部署dns扩展

12、烟雾测试

13、删除集群

----------------------------------------

1、准备部署环境

原文地址:https://www.cnblogs.com/xiexun/p/14293459.html