1.虚拟机准备
环境:ubuntu 16.04
宿主机作为 master节点,虚拟机作为node节点
这两个 ip分别为
192.168.70.144 做master节点
192.168.70.146 做node节点
2.系统设置(master和node都要执行的)
先禁用swap
sudo swapoff -a
使用
free -m
命令查看一下,如果 Swap 都为0 则禁用成功
设置交换分区开机不启动
sudo vim /etc/fstab
关闭防火墙
sudo ufw disable
禁用Selinux
sudo apt install selinux-utils
setenforce 0
在两个节点的 /etc/hosts配置中 分别 加入(ip自定义,注主机名是自己的主机名)这两个是 ip地址 和 虚拟主机名
sudo vim /etc/hosts
192.168.70.144 master
192.168.70.146 node
两个节点中都要安装Docker(这个自行安装)
启动docker服务
systemctl enable docker
systemctl start docker
使用阿里云 镜像加速,否则拉取对象的时候 会有问题
sudo vim /etc/docker/daemon.json
添加内容:
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"],
"live-restore": true
}
3.安装kubectl,kubelet,kubeadm( master 和 node 节点都执行)
添加密钥
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
添加Kubernetes软件源
sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF
安装:
sudo apt-get update && apt-get install -y kubelet kubeadm kubectl
systemctl enable kubelet
注:安装成功后不要执行systemctl start kubelet,执行是会报错的,直接向下执行就可以了
4.配置Master(只用在Master下执行)
(1)在master节点 /etc/profile 下面增加如下环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf
#重起kubelet
systemctl daemon-reload
systemctl restart kubelet
(2)在master节点上执行,查看所需的镜像的版本
kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.17.3
k8s.gcr.io/kube-controller-manager:v1.17.3
k8s.gcr.io/kube-scheduler:v1.17.3
k8s.gcr.io/kube-proxy:v1.17.3
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.5
列出的就是 所缺的镜像,这里我们使用阿里云的镜像仓库 拉取镜像(以下可以用我准备的脚本image.sh导入)
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.17.3
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.17.3
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.17.3
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.17.3
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.5
拉取完成后,把这些镜像进行tag一下
sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.17.3 k8s.gcr.io/kube-apiserver:v1.17.3
sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.17.3 k8s.gcr.io/kube-controller-manager:v1.17.3
sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.17.3 k8s.gcr.io/kube-scheduler:v1.17.3
sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.17.3 k8s.gcr.io/kube-proxy:v1.17.3
sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5
接着执行,
kubeadm init --kubernetes-version=v1.17.3 --pod-network-cidr 10.244.0.0/16
输出结果为:
此时表示初始化成功
但此时集群还不可以使用,上图红框是需要执行的操作 执行完以后才能使用集群
(1)执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
(2)接下来配置网络插件flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
或者用以下也能添加,或者用我的flannel.yaml也可以添加
sudo docker pull quay-mirror.qiniu.com/coreos/flannel:v0.12.0-amd64
sudo docker tag quay-mirror.qiniu.com/coreos/flannel:v0.12.0-amd64 quay.io/coreos/flannel:v0.12.0-amd64
(3)查看pod
kubectl get pods --all-namespaces
STATUS列应都为Running
在 Master 使用命令
kubectl get nodes
STATUS为Ready
此时master节点 已经搭建成功!!
5.将node节点加入到集群中
在虚拟机里加入这句,即可加入node节点,在master 节点再次运行kubectl get nodes可以看到两个节点都为Ready(不要忘了node节点也需要sudo swapoff -a)