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
yun Ready master 15m v1.15.0