Ubuntu搭建K8s集群

2021/02 作者:ihunter 0 0


  • 修改ubuntu配置

  • 安装docker

  • 安装kubeadm、kubectl以及kubelet

  • 初始化master节点

  • 将slave节点加入网络


  • kubelet: k8s 的核心服务

  • kubeadm: 这个是用于快速安装 k8s 的一个集成工具,我们在master1和worker1上的 k8s 部署都将使用它来完成。

  • kubectl: k8s 的命令行工具,部署完成之后后续的操作都要用它来执行



配置免密登录



添加k8s的阿里源

apt-get update && apt-get install -y apt-transport-https
apt upgrade -y
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial mainEOFapt-get update


关闭 swap,不关闭的话, k8s 会报错

swapoff -a
vim /etc/fstab # 注释掉 # /swapfile none swap sw 0 0


安装docker

apt install docker-ce=5:18.09.5~3-0~ubuntu-bionic -y
# 更换阿里源 一定要把your_code换成你自己阿里云的
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://{your_code}.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker


安装kubelet kubeadm kubectl

# 使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
# 下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
# 添加 k8s 镜像源
cat </etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 更新源列表
apt-get update
# 下载 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet kubeadm kubectl


vim /etc/hosts

192.168.133.133 master
192.168.133.134 node1



初始化 master 节点


kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers
kubeadm init \--apiserver-advertise-address=192.168.133.137 \ 
--image-repository registry.aliyuncs.com/google_containers \--pod-network-cidr=10.244.0.0/16

--apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的管理节点 ip
--image-repository: 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉 k8s 的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像。
--pod-network-cidr: 这个是 k8s 采用的节点网络,因为我们将要使用flannel作为 k8s 的网络,所以这里填10.244.0.0/16就好
--kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定。
--ignore-preflight-errors: 忽略初始化时遇到的错误,比如说我想忽略 cpu 数量不够 2 核引起的错误,就可以用--ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。


初始化成功了,请把最后那行以kubeadm join开头的命令复制下来,之后安装工作节点时要用到的,如果你不慎遗失了该命令,可以在master节点上使用kubeadm token create --print-join-command命令来重新生成一条。


任何Error导致初始化终止了,使用kubeadm reset重置之后再重新进行初始化



设置环境变量,配置 kubectl 工具

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config


测试 kubectl是否可用:


# 查看已加入的节点

kubectl get nodes

# 查看集群状态

kubectl get cs


部署 flannel 网络, 将 slave 节点加入网络


wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 如无法连接,更改vim /etc/hosts
# 加入 151.101.76.133 raw.githubusercontent.comkubectl apply -f kube-flannel.yml
# 将worker node加入到master 这个在节点机操作,这个命令是master主机初始化完成后的那最后几行
kubeadm join 192.168.133.137:6443 --token h5wsay.11hmwrhqb3a7bmog \
--discovery-token-ca-cert-hash 
sha256:cde88b9ea849b768155b23d9ac73a91c620666b8ae356237ae6b023da2a8eb68
# 查看节点
kubectl get nodes


查看结果

NAME    STATUS   ROLES    AGE     VERSION
node1   Ready       7m32s   v1.15.0
yun     Ready    master   15m     v1.15.0

赞(1) 更多分享

上篇: k8s集群部署高可用完整版
下篇: kubesphere部署kubernetes集群