您的位置:首页 > 其它

三节点k8s集群安装

2020-03-05 05:17 525 查看

三节点k8s集群安装

虚拟机安装环境
CentOS Linux release 7.6.1810 (Core)

三节点集群:

角色 主机名 IP
Master k8s-master 39.98.155.125
Node1 k8s-node01 39.98.157.128
Node2 k8s-node02 39.99.164.97

虚拟机配置

配置项 配置情况
CPU 2core
内存 8G
磁盘 40G

一、检查虚拟机基础环境

1.查看虚拟机linux内核版本号

cat /proc/version

版本号:Linux version 3.10.0-957.21.3.el7.x86_6

2.查看cpu信息、内存信息、磁盘情况

#查看cpu信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
#查看内存信息
cat /proc/meminfo
#查看磁盘
df -hl

3.验证MAC地址与product_uuid

#网络接口的 MAC 地址
ip link
#也可以使用命令:ifconfig -a
#检查product_uuid
sudo cat /sys/class/dmi/id/product_uuid

二、修改主机名

#设置Host名称
hostnamectl set-hostname k8s-node02
#查看host名称
hostname
#修改hosts文件
vi /etc/hosts

注意:在更改主机名后,需要重启虚拟机才能生效。

三、系统设置
1.关闭防火墙

# 查看防火墙状态,确认为dead,否则需stop
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#设置防火墙开机不启动
systemctl disable firewalld

2.查看SELinux配置状态

# 查看SELinux配置状态
getenforce
# 如不是permissive,需执行下面语句进行修改
setenforce 0
# 将SELinux设置为 permissive 模式(相当于将其禁用)
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

3更改k8s配置文件

vim /etc/sysctl.d/k8s.conf
# 添加如下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
# 执行命令生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

4.关闭SWAP

#关闭swap,保证 kubelet正确运行
swapoff -a
sysctl -p

四、配置yum源

# 查看yum源配置
cd /etc/yum.repos.d
yum repolist
# 查看yum源是否包含docker-ce,kubelet,kubeadm,kubectl
yum list|grep docker-ce
yum list|grep kubelet
yum list|grep kubeadm
yum list|grep kubectl
# 若不存在,添加yum源配置
# 下载在/etc/yum.repos.d目录保存docker-ce.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 在/etc/yum.repos.d目录写入kubenetes.repo
vim kubenetes.repo
# 以下为写入内容
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
# 下载校验文件
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
# 导入校验文件
rpm --import rpm-package-key.gpg
rpm --import yum-key.gpg
# 检测yum源列表
yum repolist
# 更新软件
yum update -y

五、安装docker-ce,kubelet组件
master节点安装docker-ce,kubelet,kubeadm,kubectl
node节点安装docker,kubelet,kubeadm

# master节点安装
yum install docker-ce kubelet kubeadm kubectl
# node节点安装
yum install docker-ce kubelet kubeadm
# 配置docker服务开机启动
systemctl enable --now docker
# 配置kubelet服务开机启动
systemctl enable --now kubelet

关闭系统SWAP

# 编辑kubelet的配置文件/etc/sysconfig/kubelet,设置其忽略Swap启用的状态错误,master以及node节点均需设置
vi /etc/sysconfig/kubelet
# 将以下内容写入
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
# 重启服务使配置生效
systemctl daemon-reload
systemctl restart kubelet

六、初始化集群

使用阿里镜像仓库

# master节点需要拉取镜像
vi docker-pull.sh
# 写入以下内容
#!/bin/sh
set -e

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.aliyuncs.com/google_containers
QUAY_URL=quay.io
QINIU_URL=quay-mirror.qiniu.com

images=(kube-proxy:v1.17.2
kube-apiserver:v1.17.2
kube-controller-manager:v1.17.2
kube-scheduler:v1.17.2
coredns:1.6.5
etcd:3.4.3-0
pause:3.1
)

for imageName in ${images[@]} ; do
docker pull $ALIYUN_URL/$imageName
docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
docker rmi $ALIYUN_URL/$imageName
done

docker pull $QINIU_URL/coreos/flannel:v0.11.0-amd64
docker tag $QINIU_URL/coreos/flannel:v0.11.0-amd64 $QUAY_URL/coreos/flannel:v0.11.0-amd64
docker rmi $QINIU_URL/coreos/flannel:v0.11.0-amd64

docker images
# 执行镜像拉取并修改标签
sh docker-pull.sh
# node节点需要拉取镜像,需根据上面脚本内容修改
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.13.3
docker pull registry.aliyuncs.com/google_containers/pause:3.1
docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
#如果master节点已经配置好的话,可以直接将master节点上的镜像利用docker命令打包到node节点
#在master节点查看所需镜像并镜像打包
docker save  \
k8s.gcr.io/kube-proxy \
......
-o  k8s_images.tar
ls
anaconda-ks.cfg   k8s  k8s_images.tar  k8s.sh
scp k8s_images.tar node01:k8s_images.tar

#切换到node节点,导入镜像
ls
anaconda-ks.cfg   k8s  k8s_images.tar  k8s.sh
docker load -i k8s_images.tar

七、节点加入集群

1.使用kubeadm init 初始化集群(mater节点)

#初始化集群,注意版本和apiserver地址以及Swap首字母大写
#在master节点执行命令
kubeadm init --kubernetes-version=v1.17.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
#启动完成后会显示join命令,记得保存

#根据提示完成非root用户配置
mkdir ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/
chown $(id -u):$(id -g) $HOME/.kube/config

# 对于root用户
$ export KUBECONFIG=/etc/kubernetes/admin.conf
# 也可以直接放到~/.bash_profile(推荐用这个命令)
$ echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

2.配置flannel

# 保存kube-flannel.yml文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 创建相应对象
kubectl create -f kube-flannel.yml

3.使用kubeadm init 初始化集群(node节点)

#获取token值
kubeadm token list
#在node节点执行join命令
kubeadm join 172.26.207.183:6443 --token 2onakr.c5vcr72uxpptuklq --discovery-token-ca-cert-hash sha256:33025b482176a401c9fefd570384fcf2ed2b500089061a8500852ccfcd3935ec --ignore-preflight-errors=Swap

#加入成功后可在master节点查看
kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
k8s-master   Ready    master   5h17m   v1.17.2
k8s-node01   Ready    <none>   130m    v1.17.2
k8s-node02   Ready    <none>   7m15s   v1.17.2

八、面板查看
使用火狐浏览器登录:
https://39.99.164.97:30001/#/login

选择token登陆

token值:
eyJhbGciOiJSUzI1NiIsImtpZCI6Imo2UmxvYTZuTnJFQ0Z2NnFUWENqZVVlbEhfdHZDMjVxQjlXMHR4RHlNZzgifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tNW1xZnEiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOTE3NmY4NzUtNTU3MC00MmRkLThmNzQtYmQwMDIyNjdkNzljIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.W8VghdAdoEcTnWXoGkSXO27HdNHeojAoN6E5FG9M11i4XCUb_DLMiW3pWVeRFc_eGgEx7g0KM4K8FcNb4FiVUmUUHkrQ7Do1FulrkZwkaur_z6AVtToojSqdDaQ-YYUbrfLb-oEXjI2yNZ_5ih5TyeDPlOdKmlc6-iHvNaNSQVCDZVATdMkB7oqlZ4n9dy-oUIuK87li1aXywVwLbhYiTLA9-SPoiqikJ2hcf6g7KVKIdDSzXi_WHfGmcQGKACWBBPTZbD9fmu7YMkiAtxYPrcHp_KbYKCdjYZn-ZUP57TDoKO-iP5zI9sRFbdHzE0mwW_BfIFTsIop9r33SuExALQ

  • 点赞
  • 收藏
  • 分享
  • 文章举报
zhubingru_621 发布了3 篇原创文章 · 获赞 1 · 访问量 90 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: