k8s服务端二进制部署-kubectl
本文章是 k8s二进制高可用集群部署 的分支。详细步骤请参考目录。
二进制下载地址
压缩包下载:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG
注:打开链接你会发现里面有很多包,下载一个Server包就够了,里面包含了Server和Client以及Node二进制文件。
单个下载:https://www.downloadkubernetes.com/
具体下载那个,自由发挥。
1.生成kubectl连接集群的证书
# 创建证书请求文件 cat > admin-csr.json <<EOF { "CN": "admin", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "Tianjin", "ST": "Tianjin", "O": "system:masters", "OU": "System" } ] } EOF # 生成证书 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare admin
2.生成kubeconfig文件
mkdir /root/.kube KUBE_CONFIG="/root/.kube/config" KUBE_APISERVER="https://192.168.64.130:6443" #设置集群参数 kubectl config set-cluster kubernetes \ --certificate-authority=/opt/kubernetes/ssl/ca.pem \ --embed-certs=true \ --server=${KUBE_APISERVER} \ --kubeconfig=${KUBE_CONFIG} #设置客户端认证参数 kubectl config set-credentials admin \ --client-certificate=/opt/kubernetes/ssl/admin.pem \ --client-key=/opt/kubernetes/ssl/admin-key.pem \ --embed-certs=true \ --kubeconfig=${KUBE_CONFIG} #设置上下文参数 kubectl config set-context kubernetes \ --cluster=kubernetes \ --user=admin \ --kubeconfig=${KUBE_CONFIG} #设置默认上下文 kubectl config use-context kubernetes --kubeconfig=${KUBE_CONFIG}
3.授权kubelet-bootstrap用户允许请求证书【api-service token文件中用户】
kubectl create clusterrolebinding kubelet-bootstrap \ --clusterrole=system:node-bootstrapper \ --user=kubelet-bootstrap
4.授权kubernetes证书访问kubelet api权限
kubectl create clusterrolebinding kube-apiserver:kubelet-apis --clusterrole=system:kubelet-api-admin --user kubernetes
5.查看集群组件状态
kubectl get cs kubectl cluster-info kubectl get componentstatuses kubectl get all --all-namespaces
6.
yum install -y bash-completion source /usr/share/bash-completion/bash_completion source <(kubectl completion bash) kubectl completion bash > ~/.kube/completion.bash.inc source '/root/.kube/completion.bash.inc' source $HOME/.bash_profile