K8S搭建

环境

阿里云ECS ubuntu18.04系统*2

1 安装相关工具及配置

安装apt-transport-https和curl

apt-get update && apt-get install -y apt-transport-https curl

禁用swap

swapoff -a

禁用Selinux

apt install selinux-utils
setenforce 0
2 安装docker
2.1 安装docker
apt-get install docker.io -y
2.2 使用阿里云docker仓库,并设置使用systemd启动
vim /etc/docker/daemon.json

内容:

{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"],
    "live-restore": true
}
2.3 重启docker服务
systemctl daemon-reload
systemctl restart docker
2.4 设置开机自启
systemctl enable docker.service
3 安装kubectl,kubelet,kubeadm
3.1 添加密钥
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

这一步需要翻墙
可以操作一下,下载下来,再传到机器上,再执行

apt-key add apt-key.gpg
3.2 添加Kubernetes软件源(使用国内软件源)
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
> deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
> EOF
3.3 安装
apt-get update && apt-get install -y kubelet kubeadm kubectl
systemctl enable kubelet
4 配置master节点
4.1 增加环境变量

修改/etc/profile文件,在最后添加环境变量

export KUBECONFIG=/etc/kubernetes/admin.conf

重新加载环境变量

source /etc/profile
4.2 重起kubelet
systemctl daemon-reload
systemctl restart kubelet
4.3 下载所需要的镜像包

查询所需镜像包

kubeadm config images list

查询到的所需要的镜像包

k8s.gcr.io/kube-apiserver:v1.15.3
k8s.gcr.io/kube-controller-manager:v1.15.3
k8s.gcr.io/kube-scheduler:v1.15.3
k8s.gcr.io/kube-proxy:v1.15.3
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1

k8s.gcr.io被墙了,先从其它源下载,可使用docker search kube-apiserver来查找

下面是我找到的可以用的,下载镜像

docker pull googlecontainer/kube-apiserver:v1.15.3
docker pull googlecontainer/kube-controller-manager:v1.15.3
docker pull googlecontainer/kube-scheduler:v1.15.3
docker pull googlecontainer/kube-proxy:v1.15.3
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.3.10
docker pull coredns/coredns:1.3.1

修改镜像tag

docker tag googlecontainer/kube-apiserver:v1.15.3 k8s.gcr.io/kube-apiserver:v1.15.3
docker tag googlecontainer/kube-controller-manager:v1.15.3 k8s.gcr.io/kube-controller-manager:v1.15.3
docker tag googlecontainer/kube-scheduler:v1.15.3 k8s.gcr.io/kube-scheduler:v1.15.3
docker tag googlecontainer/kube-proxy:v1.15.3 k8s.gcr.io/kube-proxy:v1.15.3
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

删除原镜像tag

docker rmi googlecontainer/kube-apiserver:v1.15.3
docker rmi googlecontainer/kube-controller-manager:v1.15.3
docker rmi googlecontainer/kube-scheduler:v1.15.3
docker rmi googlecontainer/kube-proxy:v1.15.3
docker rmi mirrorgooglecontainers/pause:3.1
docker rmi mirrorgooglecontainers/etcd:3.3.10
docker rmi coredns/coredns:1.3.1

查看镜像进行验证

docker images

在这里插入图片描述

4.4 kubeadm init

执行

kubeadm init --pod-network-cidr=172.19.0.0/16 --apiserver-advertise-address=172.19.122.75 --kubernetes-version=v1.15.3 --ignore-preflight-errors=Swap

–pod-network-cidr是指配置节点中的pod的可用IP地址,此为内部IP
–apiserver-advertise-address 为master的IP地址
–kubernetes-version 通过kubectl version 可以查看到

输出结果如下,其中最后一行是节点加入master集群需要的命令
在这里插入图片描述

4.5 配置网络

在安装完Master节点后,查看节点信息( kubectl get nodes)会发现节点的状态为noready。查看noready的原因发现是由于cni插件没有配置。其实这是由于还没有配置网络。可以配置多种网络,这里作者选用最长远的fannel网络进行配置。

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
5 节点配置

执行1-3,4.1-4.3
再执行

kubeadm join 172.19.122.75:6443 --token zkb9p8.8bywu5lt5j5i2a40 --discovery-token-ca-cert-hash sha256:e1b5eed94d290a74488bacf2be5a934323355b65dd791e190b2afde106981322 --ignore-preflight-errors=Swap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值