安装K8S

继续踩坑

安装docker

一、K8S集群部署-环境准备

国内安装k8s的四种途径

1.使用kubeadmin通过离线镜像安装,主流的,国内无法直连谷歌的中央仓库,至少华为、七牛云、青云是这么用的

2.使用阿里云平台的k8s服务,挺贵的,有些创业公司在用,仅仅是在用哦

3.yum官方仓库安装,能用,但是很老,如果仅仅是科普的话,作为入门了解还是可以玩玩的,有些应届生就是这么干的

4.二进制包安装(kubeasz),经常逛博客、github的同仁估计是玩过,反正我没玩过,单位的前辈说慎用,不安全,bug还贼多。

实验的机器资源

本地虚拟机,每台虚拟机设置静态IP,这是常规操作,已经是一种魔怔了

CentOS 7 Master*1

Master:192.168.149.120

CentOS 7 Node*2

Slave1:192.168.149.121

Slave2:192.168.149.122

 

 

 

 

 三个虚拟机的配置是一致的,4G内存、2个CPU。K8S必须是多核的,单核是不行的。具体的可以参看官网文档。

 1.设置主机名与时区

timedatectl set-timezone Asia/Shanghai  #三点节点都需要执行,时区统一

hostnamectl set-hostname master  #主节点执行

hostnamectl set-hostname salve1  #slave1节点执行

hostnamectl set-hostname slave2  #slave2节点执行

 2.进行网络配置,添加hosts网络主机配置,三台虚拟机都要配置

vim /etc/hosts

192.168.149.120  master

192.168.149.121  slave1

192.168.149.122  slave2

 

 

 经过如上的设置,三个节点能相互ping通,这一步非常关键,这一步一定要仔细检查,否则后面都是白搭。

 

3.关闭防火墙,三台虚拟机都要设置,生产环境跳过这一步,极度危险

 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

systemctl disable firewalld

systemctl stop firewalld

二、安装Kubeadm快速部署工具

1.在三个节点上安装docker

systemctl start docker

systemctl enable docker

2.确保从cgroup均在同一个从groupfs

docker info | grep cgroup

如果不是groupfs,则需要执行下列语句

 

cat << EOF > /etc/docker/daemon.json
{
  "exec-opts":["native.cgroupdriver=cgroupfs"]  
}
EOF
systemctl daemon-reload && systemctl restart docker

  3.安装kubeadm

cd /usr/local/k8s-install/k8s-package

解压文件kube114-rpm.tar.gz

cd kube114-rpm

yum localinstall -y *.rpm

4.关闭交换区

4.1、swapoff -a

4.2、vim /etc/fstab

#swap一行注释

 

 

  5.配置网桥

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system 

6. 通过镜像安装k8s

cd /usr/local/k8s-install/k8s-package
docker load -i k8s-114-images.tar.gz     #加载本地镜像文件
docker load -i flannel-dashboard.tar.gz

  查看安装之后的镜像

红色方框外的镜像是我另外安装的,剩下的镜像就是咱们k8s的了。

三、重新启动k8s服务

Kubeadm/kubelet/kubectl区别       

  kubeadm是k8s集群快速构建工具    

  kubelet运行在所有节点上,负责启动POD和容器,以系统服务形式出现  

  kubectl是k8s命令行工具,提供指令

启动节点命令

启动节点的k8s服务

  systemctl start kubelet

设置开机启动

  systemctl enable kubelet

四、利用Kubeadm构建集群

 1.master主服务器配置

kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16

 

 

 

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

kubectl get nodes

 

 

NotReady说明有服务没准备好

 

kubectl get pod  --all-namespaces 

 

 

 发现一个现象,即coredns进程一直启动不起来,百度之后,需要安装flannel网络组件。pod彼此之间是天然隔离的,需要他们自己通信,就必须要安装该网络组件

kubectl create -f kube-flannel.yml

 

 

 现在发现所有底层进程全部启动成功了。

 

 

截止到现在,也只是说明master节点启动成功了,但是k8s可是集群了,集群的slave节点还需要继续设置哦

在master节点执行操作

  kubeadm  token list

 

 

TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
6isnjg.51wiscyhw5i3o2u1 23h 2021-01-26T11:00:19+08:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token

在两个从节点上执行如下指令,即可将从节点加入到该集群中

kubeadm join 192.168.137.120:6443 --token 6isnjg.51wiscyhw5i3o2u1  --discovery-token-unsafe-skip-ca-verification

 

 集群总算启动成功了。

 

五、开启Web UI Dashboard

 

posted @ 2020-11-20 17:10  杨兮臣  阅读(225)  评论(0编辑  收藏  举报