K8S集群安装
写在前面:本次部署1个master,2个slave安装flannel安装k8s v1.16.0正文:1.先在3台机器上安装docker-ce 18.09.9# 安装docker所需的工具yum install -y yum-utils device-mapper-persistent-data lvm2# 配置阿里云的docker源yum-config-manager --add-repo htt
·
写在前面: 本次部署1个master,2个slave 安装flannel 安装k8s v1.16.0 安装时注意将ip修改为自己对应的ip
正文:
1.先在3台机器上安装docker-ce 18.09.9
# 安装docker所需的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云的docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker-ce
yum install -y docker-ce-18.09.9-3.el7
# 启动docker并设置开机自启
systemctl enable docker && systemctl start docker
2.为所有机器准备k8s环境 要求:最低配置2核CPU和2g内存(亲身试验,在安装的过程中会有强制校验,单核CPU会出现错误)
# 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
# 关闭selinux
# 临时禁用selinux (亲身试验, 这个临时的禁用是一定要跑一次的,可能的原因是已经在内存加载了吧,所以要把内存里的杀掉)
setenforce 0
# 永久关闭 修改/etc/sysconfig/selinux文件设置
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 禁用交换分区 (亲身试验,这个交换区是一定要禁用的,不然在操作节点加入master时会报关于swap的错误)
swapoff -a
# 永久禁用,打开/etc/fstab注释掉swap那一行。
sed -i 's/.*swap.*/#&/' /etc/fstab
# 修改内核参数 (不知道干啥用的)
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 查看刚才配置内核参数 (一般上一步都可以修改成功)
sysctl --system
3.环境准备完毕之后,安装k8s v1.16.0 master管理节点
#安装kubeadm、kubelet、kubectl, 由于官方k8s源在google,国内无法访问,这里使用阿里云yum源
# 执行配置k8s阿里云源
cat <<EOF > /etc/yum.repos.d/kubernetes.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
EOF
# 安装kubeadm、kubectl、kubelet
yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0
# 启动kubelet服务并开机自启
systemctl enable kubelet && systemctl start kubelet
# 初始化k8s
#安装k8s需要用到的docker镜像,需要访问国外网站,因此本地使用的是aliyun的镜像。
#–apiserver-advertise-address使用的是master和node间能互相ping通的ip,我这里是192.168.1.11
#这条命令执行时会在[preflight] You can also perform this action in beforehand using ''kubeadm config images pull需要等等2分钟。
# 如果网不好等待20分钟也是有可能的,只要不报错就死等(曾一度想要放弃,还是等来了结果)
# 下载管理节点中用到的6个docker镜像,你可以使用docker images查看到(出错的话看下一步操作!)
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address 192.168.1.11 --pod-network-cidr=10.244.0.0/16 --token-ttl 0
# 执行kubeadm init --xxx 时如果出现端口占用则使用下面的命令,然后再继续执行kubeadm init --xxx操作
kubeadm reset
# 初始化成功之后按照提示指定下面操作(必须要执行, 不然后面会有好多命令不能用)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
4. 安装k8s v1.16.0 master管理节点之后,在另外两台机器安装k8s v1.16.0 node工作节点
# 安装kubeadm、kubelet
# 执行配置k8s阿里云源
cat <<EOF > /etc/yum.repos.d/kubernetes.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
EOF
# 安装kubeadm、kubectl、kubelet
(这里一定注意,看看安装完之后的版本是不是指定的1.16,可能会出现高版本,如果版本高出master机器的版本,在进行节点加入master时会报错,大概意思就是说版本比master的高,不匹配)
yum install -y kubeadm-1.16.0-0 kubelet-1.16.0-0
# 启动kubelet服务并设置开机自启
systemctl enable kubelet && systemctl start kubelet
5. 另外两台节点机器都执行第4步操作完毕之后,就开始将节点加入集群了
# 首先前往master节点获取加入集群的命令
kubeadm token create --print-join-command
#返回的结果是这样的
kubeadm join 192.168.1.11:6443 --token 8hj4mr.nrrqta8oxomie36q --discovery-token-ca-cert-hash sha256:0393074a6d68aecef099c61d77ec95c45f66a0ca1d3f7d18a02b14a8cee14673
# 然后复制返回的结果去节点机器中粘贴运行就OK了,成功后会返回
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
6. 去master节点执行下面命令验证节点已经加入
# 获取所有节点
[root@MiWiFi-R3600-srv ~]# kubectl get nodes
# 这是返回的内容 可以说明节点加入成功,但是节点是NotReady的状态
NAME STATUS ROLES AGE VERSION
miwifi-r3600-srv NotReady master 6h14m v1.16.0
node02 NotReady <none> 5h7m v1.16.0
node03 NotReady <none> 4h10m v1.16.0
# 接下来在master机器安装 flannel让节点状态更改为Ready
#下载官方fannel配置文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#获取配置fannel
kubectl apply -f kube-flannel.yml
#再次获取节点(从NotReady到Ready需要一些时间,可以多获取几次)
kubectl get nodes
#返回结果
[root@MiWiFi-R3600-srv ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
miwifi-r3600-srv Ready master 6h14m v1.16.0
node02 Ready <none> 5h7m v1.16.0
node03 Ready <none> 4h10m v1.16.0
写在最后: 到这里,k8s 1个master 2个slave的安装就完毕了 后续安装可视化界面 Kubernetes Dashboard (仪表盘)
更多推荐
已为社区贡献2条内容
所有评论(0)