kubernetes集群安装、配置

官网地址

中文社区

k8s集群部署方式

  • 使用minikube安装单节点集群,用于测试

  • 采用工具kubeadm

  • 使用kubespray,google官方提供的工具

  • 全手动:二进制方式安装

  • 全自动安装:rancher、kubesphere

主机环境

采用centos7.9.2009,k8s官方建议要关闭交换区

主机名主机IP
k8s-master192.168.0.130
k8s-node01192.168.0.131
k8s-node02192.168.0.132
k8s-node03192.168.0.133

部署前提,需要优化centos、安装docker,在【centos创建后优化并安装docker】中有详细介绍

关闭swap分区

# 临时关闭
swapoff -a

# 永久关闭
vi /etc/fstab
# 将文件中的/dev/mapper/centos-swap这行代码注释掉
#/dev/mapper/centos-swap swap swap defaults 0 0
# 确认swap已经关闭:若swap行都显示 0 则表示关闭成功
free -m

hosts配置

vi /etc/hosts

192.168.0.130 k8s-master
192.168.0.131 k8s-node01
192.168.0.132 k8s-node02
192.168.0.133 k8s-node03

配置kubernetes安装源

vi /etc/yum.repos.d/kubernates.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

# 更新缓存
yum clean all
yum -y makecache

# 验证源是否可用
yum list | grep kubeadm
# 如果提示要验证yum-key.gpg是否可用,输入y。
# 查找到kubeadm。显示版本

安装k8s-1.17.5(k8s1.17.5版本官方推荐安装docker19.03版本)

# 查看k8s版本
yum list kubelet --showduplicates | sort -r

# 安装k8s-1.17.5
yum install -y kubelet-1.17.5 kubeadm-1.17.5 kubectl-1.17.5

设置kubelet

# 如果不配置kubelet,可能会导致K8S集群无法启动。为实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性

vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
# 设置开机启动
systemctl enable kubelet

安装k8s

# 查看安装集群需要的景象
kubeadm config images list

# 编写下载镜像脚本
mkdir -p /data
cd /data
vi images.sh

#!/bin/bash
# 下面的镜像应该去除"k8s.gcr.io"的前缀,版本换成kubeadm config images list命令获取到的版本
images=(
    kube-apiserver:v1.17.5
    kube-controller-manager:v1.17.5
    kube-scheduler:v1.17.5
    kube-proxy:v1.17.5
    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

# 给脚本授权
chmod +x images.sh
# 执行脚本
./images.sh

# 保存镜像
docker save -o k8s-master.1.17.5.tar \
    k8s.gcr.io/kube-proxy:v1.17.5 \
    k8s.gcr.io/kube-apiserver:v1.17.5 \
    k8s.gcr.io/kube-controller-manager:v1.17.5 \
    k8s.gcr.io/kube-scheduler:v1.17.5 \
    k8s.gcr.io/coredns:1.6.5 \
    k8s.gcr.io/etcd:3.4.3-0 \
    k8s.gcr.io/pause:3.1

docker save -o k8s-node.1.17.5.tar \
    k8s.gcr.io/kube-proxy:v1.17.5 \
    k8s.gcr.io/pause:3.1

# 以后使用可以直接导入
# master节点导入镜像
docker load -i k8s-master.1.17.5.tar
# node节点导入镜像
docker load -i k8s-node.1.17.5.tar

配置k8s集群网络

calico官网地址

github地址

# 镜像下载
docker pull calico/cni:v3.14.2
docker pull calico/pod2daemon-flexvol:v3.14.2
docker pull calico/node:v3.14.2
docker pull calico/kube-controllers:v3.14.2

# 保存镜像
docker save -o calico.tar \
    calico/cni:v3.14.2 \
    calico/pod2daemon-flexvol:v3.14.2 \
    calico/node:v3.14.2 \
    calico/kube-controllers:v3.14.2

# 配置hostname
hostnamectl set-hostname k8s-master

# 关机
poweroff
# 拍摄快照:1. k8s初始化集群完成
# 克隆k8s-master,生成node01、node02、node03
# 登录node节点,分别设置hostname、ip
# 修改hostname、ip后,需要重启网络
systemctl restart network
# 重启后,验证各节点间网络是否通,是否能通外网

初始化k8s集群信息:calico网络

# 在k8s-master节点执行
kubeadm init --apiserver-advertise-address=192.168.0.130 --kubernetes-version v1.17.5 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.81.0.0/16

# 在k8s-master上执行配置命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 加入工作节点,(加入节点的token有效期24小时,每次都变化)
# 在192.168.0.131 / 132 / 133上执行,下列命令,会在初始化k8s集群时给出,替换即可
kubeadm join 192.168.0.130:6443 --token 8ic4bd.ns2wgycdqx5ey7go \
    --discovery-token-ca-cert-hash sha256:3b883e6c1f0dcb29834dd08af8eb6e105854d0a475edb3630afc4539fd4f95c8

# 查看是否添加成功
kubectl get nodes

# 如果STATUS是NotReady,需要执行,yml在上面提供了,下载下来放到/data/中
kubectl apply -f /data/calico.yml

# 再去查看STATUS,已经是Ready

# 【优化】kubectl命令自动补全
echo "source <(kubectl completion bash)" >> ~/.bash_profile
source ~/.bash_profile

# 【可能会遇到】yum-key.gpg验证未通过
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import yum-key.gpg
rpm --import rpm-package-key.gpg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值