Ubuntu搭建三节点k8s集群

1.安装docker

(1)首先更新apt包资源索引

apt-get update

(2)安装软件包

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

(3)添加Docker官方的GPG

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

(4)添加Docker源

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

(5)因网站服务器在境外,故须使用代理或换源,下面首先演示如何添加代理。
编辑代理文件

vim /etc/apt/apt.conf

做如下修改

Acquire::http::proxy "http://username:password@server_ip:port/";
Acquire::https::proxy "https://username:password@server_ip:port/";
Acquire::ftp::proxy "ftp://username:password@server_ip:port/";
Acquire::socks::proxy "socks://username:password@server_ip:port/";

其中username和password是代理账号和密码,server_ip是代理服务器地址,port是代理服务器端口。根据自己情况填写。

如果没有条件使用代理,可以进行换源。

备份原有的软件源配置文件sources.list:

cp /etc/apt/sources.list /etc/apt/sources.list.bk

修改sources.list文件

sudo vim /ect/apt/sources.list

换成阿里的镜像源(也可自行寻找其他国内源)

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更新软件源

sudo apt-get update

(6)安装docker

sudo apt-get update
sudo apt-get install docker-ce=18.06.0~ce~3-0~ubuntu

2.搭建k8s集群

(1)添加GPG

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

若该命令不成功或者执行时间太长则进入其中的链接,下载apt-key.gpg, 然后执行如下命令:

apt-key add apt-key.gpg

(2)添加源

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list 
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF 

(3)下载kubelet kubeadm kubectl组件

apt-get update
apt-get install -y kubelet kubeadm kubectl 

(4)使用虚拟机再完整克隆两个Ubuntu系统,共计3个节点。
(5)配置IP
编辑/etc/network/interfaces

sudo vim /etc/network/interfaces

将文件改为如下内容(IP地址等内容自行编辑)

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.222.22
netmask 255.255.255.0
gateway 192.168.222.222
nameserver 8.8.8.8

ens33为连接名,可以通过ifconfig命令查看。
(6)三个节点选择一个为master,其他分别为node1和node2。
在master上执行初始化命令

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

如提示镜像无法下载,则需要手动下载镜像。
通过下列命令拉取相关镜像

docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0
docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.15.0
docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.15.0
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.15.0
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd-amd64:3.2.18
docker pull coredns/coredns:1.3.0

通过docker tag命令来修改镜像的标签

docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.15.0 k8s.gcr.io/kube-proxy-amd64:v1.15.0
docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.15.0 k8s.gcr.io/kube-scheduler-amd64:v1.15.0
docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0 k8s.gcr.io/kube-apiserver-amd64:v1.15.0
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.15.0 k8s.gcr.io/kube-controller-manager-amd64:v1.15.0
docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.2.18  k8s.gcr.io/etcd-amd64:3.2.18
docker tag docker.io/mirrorgooglecontainers/pause:3.1  k8s.gcr.io/pause:3.1
docker tag docker.io/coredns/coredns:1.3.0  k8s.gcr.io/coredns:1.3.0

具体版本及标签信息根据之前的报错提示修改。
(7)根据初始化成功信息提示的命令在master上执行部分操作。
注意,此时应切换到普通用户。
(8)添加 k8s-node1 和 k8s-node2
在 k8s-node1 和 k8s-node2 上分别执行如下命令,将其注册到 Cluster 中

kubeadm join --token d38a01.13sd654sdf546d80 192.168.56.105:6443

这里的 --token 来自前面 kubeadm init 输出初始化成功后的提示,如果当时没有记录下来可以通过 kubeadm token list 查看。
(9)查看节点的状态

kubectl get nodes

在这里插入图片描述
无论这里node1,node2是Ready,还是NotReady,都是节点加入成功了。
(10)节点ready
节点的NotReady,是因为节点需要启动若干组件,这些组件是在 Pod 中运行,需要首先从 google 下载镜像,我们可以通过命令查看 Pod 的状态

kubectl get pod --all-namespaces

在这里插入图片描述
Pending、ContainerCreating、ImagePullBackOff 都表明 Pod 没有就绪,Running 才是就绪状态。
查看 Pod 具体情况

kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system

根据所提示的错误具体解决。比如在下载 image 时失败,可以自己手动执行 docker pull 去下载这个镜像。

问题解决后,所有 Pod 会处于 Running 状态。

此时,所有的节点都已经 Ready,Kubernetes Cluster 创建成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值