2020-12-11

每个节点均下载该文件包,解压,进入解压文件目录下
文件包:
链接:https://pan.baidu.com/s/1JKpRl3ck9r5JKCoHrAqIcQ
提取码:lq0u

集群结构:1 master节点 2 work节点 均为 centos7 虚拟机 搭建 1.17.3 k8s集群

1.环境准备(每个节点)

# 修改每个节点名字,不修改会导致名字冲突,集群中节点不显示
[root@localhost ~]# hostnamectl --static set-hostname nodename
# 系统环境设置 防火墙,交换分区,虚拟机内核
[root@localhost install-k8s-easy]# sh prerequisite.sh

2.安装 docker(every node)

# 添加阿里云的docker repo,安装并配置docker
[root@localhost install-k8s-easy]# sh install-docker.sh

3.安装 kube 工具链(every node)

#添加阿里云的 kube repo,下载相关工具包括,kubeadm,kubelet,kubectl
[root@localhost install-k8s-easy]#sh install-kubetools.sh

4.下载或导入 k8s.gcr.io 相关镜像(every node)

#在线下载
# 1. 列出相应镜像及其需要的版本
[root@localhost install-k8s-easy]# kubeadm config images list

W1024 13:54:33.199713    7985 version.go:101] could not fetch a Kubernetes version from the internet: unable to get UR
L "https://dl.k8s.io/release/stable-1.txt": Get https://dl.k8s.io/release/stable-1.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)W1024 13:54:33.200040    7985 version.go:102] falling back to the local client version: v1.17.3
W1024 13:54:33.200419    7985 validation.go:28] Cannot validate kube-proxy config - no validator is available
W1024 13:54:33.200444    7985 validation.go:28] Cannot validate kubelet config - no validator is available
k8s.gcr.io/kube-apiserver:v1.17.3
k8s.gcr.io/kube-controller-manager:v1.17.3
k8s.gcr.io/kube-scheduler:v1.17.3
k8s.gcr.io/kube-proxy:v1.17.3
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.5
# 2.将gcr-pull.sh中镜像版本修改为上步骤中对应镜像的版本号
[root@localhost install-k8s-easy]# vi gcr-pull.sh
#! /bin/sh

images=(
    kube-apiserver:v1.17.3    kube-controller-manager:v1.17.3    kube-scheduler:v1.17.3    kube-proxy:v1.17.3    pause:3.1
    etcd:3.4.3-0
    coredns:1.6.5
)
for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName}
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} k8s.gcr.io/${imageName}
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName}
done

# 3.从阿里云下载对应镜像
[root@localhost install-k8s-easy]# sh ./gcr-pull.sh

# 采用镜像包(离线)
# 在解压的镜像文件夹中 执行脚本
[root@localhost install-k8s-easy]# unrar x images.rar
[root@localhost install-k8s-easy]# sh gcr-tar.sh

5.配置master节点

# 1.导出kubeadm-config.yaml配置文件
[root@localhost install-k8s-easy]# kubeadm config print init-defaults  > kubeadm-config.yaml

# 2.修改 kubeadm-config.yaml
#     改 advertiseAddress 值为主节点 IP
#     修改 networking 配置,设置 pod 子网段 podSubnet:
#     修改kubernetesVersion 导出的版本为1.17.0 改为与之前下载镜像时统一的版本

[root@localhost install-k8s-easy]# vi  kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.3.120
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: localhost.localdomain
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.17.3
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
   podSubnet: 10.244.0.0/16
scheduler: {}

# 3.初始化
[root@localhost install-k8s-easy]# kubeadm init --config kubeadm-config.yaml

#成功后将token留下,当node节点加入集群时备用
kubeadm join {master ip}:6443 --token xxx
示例:
kubeadm join 192.168.10.188:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:df97efef0b54bb786e55a872060e70ec94290d39d6f954cfe0127e099cf1c296 
    
 # 4.进行工具配置
 [root@localhost install-k8s-easy]# sh ./kubectl.sh
 
 # 5.查看安装状态
 [root@localhost install-k8s-easy]# kubectl cluster-info
Kubernetes master is running at https://192.168.10.188:6443
KubeDNS is running at https://192.168.10.188:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

# 6.安装Flannel网络插件
[root@localhost install-k8s-easy]# kubectl apply -f ./kube-flannel.yaml
# 7.生成集群的安全配置文件
[root@localhost install-k8s-easy]# mkdir -p $HOME/.kube
[root@localhost install-k8s-easy]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@localhost install-k8s-easy]# chown $(id -u):$(id -g) $HOME/.kube/config

6.节点加入集群

#加入集群 初始化集群时产生的命令
[root@localhost ~]# kubeadm join 192.168.10.188:6443 --token abcdef.0123456789abcdef     --discovery-token-ca-cert-hash sha256:df97efef0b54bb786e55a872060e70ec94290d39d6f954cfe0127e099cf1c296

7.查看集群节点

[root@localhost install-k8s-easy]# kubectl get nodes
NAME                    STATUS     ROLES    AGE    VERSION
fednode1                Ready      <none>   3m7s   v1.17.3
fednode2                Ready   <none>   19s    v1.17.3
localhost.localdomain   Ready      master   46m    v1.17.3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值