005.Kubernetes二进制部署kubectl

一 部署 kubectl

1.1 安装kubectl

  1 [[email protected] ~]# cd /opt/k8s/work
  2 [[email protected] work]# wget https://dl.k8s.io/v1.14.2/kubernetes-client-linux-amd64.tar.gz
  3 [[email protected] work]# tar -zxvf kubernetes-client-linux-amd64.tar.gz

1.2 分发kubectl

  1 [[email protected] ~]# cd /opt/k8s/work
  2 [[email protected] work]# source /opt/k8s/bin/environment.sh
  3 [[email protected] work]# for master_ip in ${MASTER_IPS[@]}
  4   do
  5     echo ">>> ${master_ip}"
  6     scp kubernetes/client/bin/kubectl [email protected]${master_ip}:/opt/k8s/bin/
  7     ssh [email protected]${master_ip} "chmod +x /opt/k8s/bin/*"
  8   done

1.3 创建admin证书和密钥

  1 [[email protected] ~]# cd /opt/k8s/work
  2 [[email protected] work]# cat > admin-csr.json <<EOF
  3 {
  4     "CN": "admin",
  5     "hosts": [],
  6     "key": {
  7         "algo": "rsa",
  8         "size": 2048
  9     },
 10     "names": [
 11         {
 12             "C": "CN",
 13             "ST": "Shanghai",
 14             "L": "Shanghai",
 15             "O": "system:masters",
 16             "OU": "System"
 17         }
 18     ]
 19 }
 20 EOF
 21 #创建admin的CA证书请求文件

解释:

O 为 system:masters:kube-apiserver 收到该证书后将请求的 Group 设置为 system:masters;

预定义的 ClusterRoleBinding cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,即该 Role 授予所有 API的权限;

该证书只会被 kubectl 当做 client 证书使用,所以 hosts 字段为空。

  1 [[email protected] ~]# cd /opt/k8s/work
  2 [[email protected] work]# cfssl gencert -ca=/opt/k8s/work/ca.pem \
  3 -ca-key=/opt/k8s/work/ca-key.pem -config=/opt/k8s/work/ca-config.json   4 -profile=kubernetes admin-csr.json | cfssljson -bare admin	#生成CA密钥(ca-key.pem)和证书(ca.pem)

1.4 创建kubeconfig文件

kubectl 默认从 ~/.kube/config 文件读取 kube-apiserver 地址和认证信息。只需在master节点部署一次,其生成的 kubeconfig 文件是通用的,可以拷贝到需要执行 kubectl 命令的机器,重命名为/.kube/config即可。

注意:如果没有特殊指明,本文档的所有操作均在 k8smaster 节点上执行,然后远程分发文件和执行命令。

  1 [[email protected] ~]# cd /opt/k8s/work
  2 [[email protected] work]# source /opt/k8s/bin/environment.sh
  3 [[email protected] work]# kubectl config set-cluster kubernetes   4    --certificate-authority=/opt/k8s/work/ca.pem   5    --embed-certs=true   6    --server=${KUBE_APISERVER}   7    --kubeconfig=kubectl.kubeconfig		# 设置集群参数
  8 [[email protected] work]# kubectl config set-credentials admin   9    --client-certificate=/opt/k8s/work/admin.pem  10    --client-key=/opt/k8s/work/admin-key.pem  11    --embed-certs=true  12    --kubeconfig=kubectl.kubeconfig		# 设置客户端认证参数
 13 [[email protected] work]# kubectl config set-context kubernetes  14    --cluster=kubernetes  15    --user=admin  16    --kubeconfig=kubectl.kubeconfig		# 设置上下文参数
 17 [[email protected] work]# kubectl config use-context kubernetes --kubeconfig=kubectl.kubeconfig			# 设置默认上下文

解释:




--certificate-authority:验证 kube-apiserver 证书的根证书;




--client-certificate、--client-key:刚生成的 admin 证书和私钥,连接 kube-apiserver 时使用;




--embed-certs=true:将 ca.pem 和 admin.pem 证书内容嵌入到生成的 kubectl.kubeconfig 文件中(默认写入的是证书文件路径,后续需要拷贝 kubeconfig 和该证书文件至到其它机器。)。

1.5 分发kubeconfig

  1 [[email protected] ~]# cd /opt/k8s/work
  2 [[email protected] work]# source /opt/k8s/bin/environment.sh
  3 [[email protected] work]# for master_ip in ${MASTER_IPS[@]}
  4   do
  5     echo ">>> ${master_ip}"
  6     ssh [email protected]${master_ip} "mkdir -p ~/.kube"
  7     scp kubectl.kubeconfig [email protected]${master_ip}:~/.kube/config
  8   done

原文地址:https://www.cnblogs.com/itzgr/p/11865195.html

时间: 2024-07-31 07:30:29

005.Kubernetes二进制部署kubectl的相关文章

k8s实践19:kubernetes二进制部署集群v1.12升级v1.15

1.升级前的版本 [[email protected] ~]# kubectl version Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.4", GitCommit:"5ca598b4ba5abb89bb773071ce452e33fb66339d", GitTreeState:"clean", BuildDa

Kubernetes二进制部署之单节点部署

K8s单节点二进制部署 K8s二进制部署搭建步骤: 1:自签ETCD证书 2:ETCD部署 3:Node安装docker 4:Flannel部署(先写入子网到etcd) ---------master---------- 5:自签APIServer证书 6:部署APIServer组件(token,csv) 7:部署controller-manager(指定apiserver证书)和scheduler组件 ----------node---------- 8:生成kubeconfig(bootst

kubernetes 二进制部署ansible playbook 一键生成

脚本仓库地址 https://github.com/qist/k8s #支持 Ubuntu 18及以上的系统,CentOS7及CentOS8 系统 # k8s 版本 14,15,16,17 号版本 ansible 安装 #Ubuntu 系列安装 apt -y install ansible #CentOS 8 安装 dnf -y install ansible # CentOS 7 安装 yum -y install ansible # 修改ansible 配置 ## 说明id_rsa_stor

Kubernetes二进制部署——多master节点集群部署(2)

前言: 接上一篇单节点部署(1)部署多节点 部署环境 负载均衡Nginx1:192.168.13.128/24Nginx2:192.168.13.129/24Master节点master1:192.168.13.131/24 kube-apiserver kube-controller-manager kube-scheduler etcdmaster2:192.168.13.130/24 kube-apiserver kube-controller-manager kube-scheduler

Kubernetes二进制部署——UI界面的部署(4)

前言: 接上一篇负载均衡部署(3)部署UI界面 yaml下载:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard 部署环境 负载均衡Nginx1:192.168.13.128/24Nginx2:192.168.13.129/24Master节点master1:192.168.13.131/24 kube-apiserver kube-controller-manager kube-schedu

kubernetes二进制部署coredns(12)

CoreDNS是一个Go语言实现的链式插件DNS服务端,是CNCF成员,是一个高性能.易扩展的DNS服务端.可以很方便的部署在k8s集群中,用来代替kube-dns 具体的区别可以参考官方文档或者:https://zhuanlan.zhihu.com/p/80141656?from_voters_page=true 原理:kubedns: kubedns 基于 SkyDNS 库,通过 apiserver 监听 Service 和 Endpoints 的变更事件同时也同步到本地 Cache,实现了

kubernetes实践之一:kubernetes二进制包安装

kubernetes二进制部署 1.环境规划 软件 版本 Linux操作系统 CentOS Linux release 7.6.1810 (Core) Kubernetes 1.9 Docker 18.09.3 etcd 3.3.10 角色 IP 组件 推荐配置 k8s_master etcd01 192.168.1.153 kube-apiserver kube-controller-manager kube-scheduler etcd CPU 2核+ 2G内存+ k8s_node01 et

[转贴]CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群

CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群 http://blog.51cto.com/10880347/2326146 一.概述 kubernetes 1.13 已发布,这是 2018 年年内第四次也是最后一次发布新版本.Kubernetes 1.13 是迄今为止发布间隔最短的版本之一(与上一版本间隔十周),主要关注 Kubernetes 的稳定性与可扩展性,其中存储与集群生命周期相关的三项主要功能已逐步实现普遍可用性. Kubernetes 1.13 的核心

二进制部署 Kubernetes 集群

二进制部署 Kubernetes 集群 提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境. kubeadm Kubeadm也是一个工具,提供kubeadm init和kubeadm join指令,用于快速部署Kubernetes集群. 二进制包 从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群. 小结:生产环境中部署Kub