ubuntu16.04下 部署Kubernetes

https://kuboard.cn/
记录ubuntu16.04下 部署Kubernetes过程。
参考以下文章
在ubuntu16.04下 部署Kubernetes 遇到的坑以及解决办法 亲测有用.


一、虚拟机准备

环境:ubuntu 16.04
准备两个虚拟机(内存2G以上,K8s是比较消耗资源的)
一个作为 master节点 另一个作为node节点
我这两个 虚拟机的ip分别为
192.168.1.211 做master节点
192.168.1.212 做node节点

二、系统设置

1.先禁用swap

为了操作方便 建议都使用 root 用户

swapoff -a

在这里插入图片描述
查看swap是否成功关闭,使用free -m

free -m

在这里插入图片描述
如果 Swap 都为0 则禁用成功

设置交换分区开机不启动

因为没有注释掉swap的自动挂载,机器重启后,swap还是会自动启用,从而导致kubelet无法启动
在这里插入图片描述

修改 /etc/fstab文件

vi /etc/fstab

注释掉
在这里插入图片描述

2.关闭防火墙

关闭防火墙

ufw disable

开启防火墙

ufw enable

为什么要关闭防火墙?

如果各个主机启用了防火墙,需要开放Kubernetes各个组件所需要的端
因为Kubernetes的Master和Node之间有大量的网络通信,安全的做法是在防火墙上配置各组件需要相互通信的端口,在安全的网络环境中较为简单的做法是禁用Firewalld防火墙。解决方法是运行systemctl status firewalld 查看Firewalld防火墙状态。如果防火墙没有禁用,就禁用它

3.禁用Selinux

apt install selinux-utils
setenforce 0

在这里插入图片描述不禁用Selinx 会导致Kubernetes 安装失败

4.在两个节点的 /etc/hosts配置中 分别 加入

192.168.1.211 master
192.168.1.212 node

在这里插入图片描述

5.两个节点中都要安装Docker

步骤:
先安装相关工具

apt-get update && apt-get install -y apt-transport-https curl
添加密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
安装Docker
apt-get install docker.io -y
查看Docker 版本  检验是否安装成功
docker version

在这里插入图片描述

6.启动docker服务

systemctl enable docker
systemctl start docker

使用阿里云 镜像加速,否则拉取对象的时候 会有问题

vi  /etc/docker/daemon.json
{
    "exec-opts":["native.cgroupdriver=systemd"],
    "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"],
    "live-restore": true
}

重启docker服务

systemctl restart docker
systemctl status docker

三、安装kubectl,kubelet,kubeadm( master 和 node 节点都执行)

1.添加密钥

google国内是没法访问的。选择了阿里
解决方案:Ubuntu16.04安装K8s.

sudo curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF
sudo apt-get update


sudo apt-get install -y kubelet kubeadm kubectl

systemctl enable kubelet

注:安装成功后不要执行systemctl start kubelet,执行是会报错的,直接向下执行就可以了。

%%%%可以复制一个镜像出来了,因为master和node现在的安装步骤都是一样的。之后的配置出现差异了。
在这里插入图片描述
在这里插入图片描述

四、配置Master(master节点211)

1.在master节点 /etc/profile 下面增加如下环境变量(只在master执行)

vi /etc/profile
export KUBECONFIG=/etc/kubernetes/admin.conf

在这里插入图片描述

重起kubelet

systemctl daemon-reload
systemctl restart kubelet

2.在master节点上执行kubeadm init

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

–pod-network-cidr 指定 Pod 网络的范围。Kubernetes 支持多种网络方案,而且不同网络方案对 --pod-network-cidr 有自己的要求,这里设置为 10.244.0.0/16 是因为我们将使用 flannel 网络方案
–kubernetes-version 通过kubectl version 可以查看到(本次搭建使用的是1.21.1),
但是 执行 这条命令之后会报错 原因是 被k8s.gcr.io 被墙了 无法拉取镜像 拉取镜像失败

执行

 kubeadm  config images list 

在这里插入图片描述
列出的就是 所缺的镜像
这里我们使用阿里云的镜像仓库 拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.0

pull完成后docker images看一下是否拉取成功
在这里插入图片描述
拉取完成后
把这些镜像进行tag一下

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.1 k8s.gcr.io/kube-apiserver:v1.21.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.1 k8s.gcr.io/kube-controller-manager:v1.21.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.1 k8s.gcr.io/kube-scheduler:v1.21.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.1 k8s.gcr.io/kube-proxy:v1.21.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1 k8s.gcr.io/pause:3.4.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0 k8s.gcr.io/etcd:3.4.13-0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.8.0 k8s.gcr.io/coredns/coredns:v1.8.0

接着重新执行

kubeadm init --kubernetes-version=v1.21.1 --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网络,可以到 https://github.com/coreos/flannel 找到图中的这句话

也可以直接执行:

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

在这里插入图片描述
搞定,但是 raw.githubusercontent.com已经被墙了,如果可以科学上网,上面可以直接搞定,如果不能科学上网,这里放上kube-flannel.yml文件的源码
生产文件后,在文件所有目录执行

kubectl apply -f kube-flannel.yml 

即可配置flannel网络~~~~
3)查看pod(只能在master执行):

kubectl get pods -n kube-system

在这里插入图片描述
k8s至此master节点已经搭建成功!!!!!

五.将node节点加入到集群中

注:若是全新的节点想要加入到集群中,需要进行上述node节点执行的操作步骤。
1.生成token(master节点执行)
kubeadm token create

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值