K8S集群安装

写在前面:
   本次部署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 (仪表盘)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值