一、安装k8s准备工作
1、修改主机名
我准备把写前两篇文章时候使用的这台服务器作为master服务器,所以把这台机器的主机名修改为master

hostnamectl set-hostname master
more /etc/hostname

执行后的正确结果:
在这里插入图片描述
退出重新登陆:
在这里插入图片描述
刚刚修改的主机名已经显示出来了。
2、修改hosts文件
就是在master节点上配置其他node节点的信息,让集群主服务器知道它都有哪些小弟(从属服务器):
命令(这是一行命令,一次复制完,粘贴完):

cat >> /etc/hosts << EOF
39.105.***.167 master
101.201.***.235 node01
EOF

在这里插入图片描述
3、禁用swap

swapoff -a
sed -i.bak '/swap/s/^/#/' /etc/fstab

4、修改内核参数
临时修改:

sysctl net.bridge.bridge-nf-call-iptables=1
sysctl net.bridge.bridge-nf-call-ip6tables=1

修改后的正确结果:
在这里插入图片描述
永久修改:

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

执行后的正确结果:
在这里插入图片描述

sysctl -p /etc/sysctl.d/k8s.conf

在这里插入图片描述
5、设置k8s源
新增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

执行后的正确结果:
在这里插入图片描述
6、更新缓存
新增完源以后更新一下缓存,要不然使用的还是原来的源

yum clean all
yum -y makecache

在这里插入图片描述
二、安装k8s
1、查看上一步中我们设置的源里面的k8s版本都有哪些:

yum list kubelet --showduplicates | sort -r

2、安装k8s

yum install -y kubelet-1.18.1-0 kubeadm-1.18.1-0 kubectl-1.18.1-0

kubelet:运行在cluster所有节点上,负责启动POD和容器
kubeadm:用于初始化cluster
kubectl:kubectl是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件
集群中master服务器的至少为两核,少了就玩不了了。
3、配置下载镜像的脚本:

cd /home/
mkdir k8s
cd k8s/
vim image.sh

打开的编辑器中放入下列内容:

#!/bin/bash
url=registry.cn-hangzhou.aliyuncs.com/google_containers
version=v1.18.1
images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)
for imagename in ${images[@]} ; do
docker pull $url/$imagename
docker tag $url/$imagename k8s.gcr.io/$imagename
docker rmi -f $url/$imagename
done

如下图:
在这里插入图片描述

chmod 777 image.sh 

保存。
4、下载镜像:

./image.sh

在这里插入图片描述
查看镜像,发现多了以下几个:
在这里插入图片描述
三、初始化Master
1、初始化Master

 kubeadm init --apiserver-advertise-address 172.17.184.217 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.18.1

上面命令中参数取值:
–apiserver-advertise-address 172.17.184.217
黄色部分IP地址通过下面命令获取:

 ip addr

在这里插入图片描述

kubeadm 使用 eth0 的默认网络接口 (通常是内网IP) 做为 Master 节点的 advertise address ,如果我们想使用不同的网络接口,可以使用 --apiserver-advertise-address= 参数来设置

执行正确结果:
在这里插入图片描述

这里如果你的服务器是1核的,你会碰到下面这个错误:
在这里插入图片描述
2、配置k8s环境变量

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

3、设置POD网络

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

执行正确结果:
在这里插入图片描述

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

在这里插入图片描述
4、查看污点,删除默认污点

kubectl describe node master|grep -i taints

在这里插入图片描述

kubectl taint nodes master node-role.kubernetes.io/master-node/master untainted

在这里插入图片描述
5、查看节点情况

kubectl  get node

在这里插入图片描述
可以看到集群中只有一个master节点,切处理ready状态。

多多练习!

下篇文章,集群中node节点安装docker和k8s,并加入集群:

docker+jenkins+k8s集群搭建系列四、node节点安装k8s并加入集群

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐