kubeadmin 部署 k8s
一、环境准备:
三台linux服务器(centos7.5版本)
master-1 192.168.10.130
node-1 192.168.10.129
node-2 192.168.10.128
添加到域名解析:
cat <<eof>> /etc/hosts
192.168.10.130 master-1
192.168.10.129 node-1
192.168.10.128 node-2
eof
二、系统配置:
1、关闭防火墙
systemctl stop friewalld && systemctl disable firewalld
2、禁用selinux
setenforce 0
3、关闭swap
swapoff -a
使用free -h 命令检查swap分区是否关闭。
三、安装docker
在此使用在线安装,版本选用18.06.3 ,不过多累述~~~
四、安装kubernetes组件。
1、配置国内 yum 源:
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
2、安装 kubernetes组件依赖:
yum -y install conntrack
3、安装Kubernetes组件
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
备注:避免版本跟新迭代带来其他异常,这里指定目前相对较高且稳定版本。
4、开机启动kubelet
systemctl enable kubelet
五、初始化master节点
1、初始化master-1
kubeadm init --apiserver-advertise-address=192.168.10.130 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.10.0.0/12 --pod-network-cidr=10.50.0.0/16
参数说明
–apiserver-advertise-address=192.168.10.130(master主机地址)
–image-repository registry.aliyuncs.com/google_containers (镜像获取地,换为阿里源)
–kubernetes-version v1.18.0 (集群版本)
–service-cidr=10.10.0.0/12
–pod-network-cidr=10.50.0.0/16
2、添加kubectl 命令的变量
mkdir -p $HOME/.kube &&
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config &&
sudo chown $(id -u):$(id -g) $HOME/.kube/config
六、安装node ,加入集群。
1、安装kubeadm 和相关工具
yum install -y kubelet-1.18.0 kubeadm-1.18.0
官方添加了参数: --disableexcudes=kubernetes 用于关闭配置文件中的排除
2、运行下面命令启动docker服务& kubelet服务,并将器设置为开机自启动。
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
3、为kubeadm 命令生成配置文件。创建文件 join-config.yaml ,内容如下:
apiVersion: kubeadm.k8s.io/v1beta1
kind: JoinConfiguration
discovery:
bootstrapToken:
apiServerEendpoint: 192.168.10.130:6443
token:
unsafeSkipCAVerification: true
tlsBootstrapToken:
参数说明:
–apiServerEendpoint 的值来自master服务器的地址。
–token 和 tlsBootstrapToken 的值来自于使用kubeadm init 安装master的最后一行的提示信息。
4、执行 kubeadm join 命令,将本机node 加入集群:
kubeadm join --config=join-config.yaml
备注:kubeadm 在master上也安装了kubelet,在默认情况下并不参与工作负载,如果只是单机玩,则可删除node的label,让master成为一个node。
kubectl tainit nodes --all node-role.kubernetes.io/master-
至此,通过kubeadm 工具就实现了kubenetes集群的快速搭建。如果安装失败,可以执行 kubeadm reset 命令将主机恢复原状,重新执行kubeadm init 命令,再次进行安装。