概述
目标
本文档旨在帮助读者,通过kubeadm工具在Linux系统上顺利安装k8s。二进制安装方式请参考其他文档。
k8s版本:
1.14.1
准备机器
角色 | 主机名 | IP地址 | 操作系统 |
---|---|---|---|
k8s-master | passat | 10.211.55.3 | Ubuntu 18.04.2 LTS |
k8s-node-1 | polo | 10.211.55.4 | Ubuntu 18.04.2 LTS |
k8s-node-2 | golf | 10.211.55.5 | Ubuntu 18.04.2 LTS |
准备工作
在安装过程中,如无特别指出,请使用root
账户。
(1) 安装docker
服务
三台机器都必须安装docker
服务。
详情,请参考docker
官方文档。笔者安装的版本号为18.06.3-ce
。
中国大陆地区的读者请务必编辑/etc/docker/daemon.json
,添加镜像加速器。
{
"registry-mirrors": ["https://registry.docker-cn.com", "https://aih1ikpl.mirror.aliyuncs.com"],
"iptables": false
}
复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker.service
复制代码
(2) 更新软件源
三台机器都必须更新软件源。
2.1
依次执行以下指令
cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF
复制代码
sudo apt-get update
复制代码
2.2
如果执行以上操作出现了类似错误:
...
Reading package lists... Done
W: GPG error: http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6A030B21BA07F4FB
E: The repository 'http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial InRelease' is not signed.
复制代码
请再记住其中PUBKEY
的最后8位,笔者这里是BA07F4FB
。之后执行:
gpg --keyserver keyserver.ubuntu.com --recv-keys BA07F4FB
gpg --export --armor BA07F4FB | sudo apt-key add -
sudo apt-get update
复制代码
2.3
安装kubeadm
sudo apt-get update
sudo apt-get install kubeadm=1.14.1-00 kubelet=1.14.1-00 kubectl=1.14.1-00 kubernetes-cni=0.7.5-00
sudo apt-mark hold kubelet=1.14.1-00 kubeadm=1.14.1-00 kubectl=1.14.1-00
复制代码
(3) 调整系统参数
sudo swapoff -a
sudo modprobe br_netfilter
sudo echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
sudo echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
sudo sysctl -p
复制代码
推荐: 以上指令配置成开机时自动执行。
(4) 下载k8s使用的镜像
三台机器都必须下载。
执行命令确认所需镜像。
kubeadm config images list --kubernetes-version=1.14.1
复制代码
结果:
k8s.gcr.io/kube-apiserver:v1.14.1
k8s.gcr.io/kube-controller-manager:v1.14.1
k8s.gcr.io/kube-scheduler:v1.14.1
k8s.gcr.io/kube-proxy:v1.14.1
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
复制代码
因为一些原因,在中国大陆地区的读者很大可能会下载失败。 笔者已经将其搬运到阿里云。可以使用以下脚本下载:
#!/usr/bin/env bash
for IT in coredns:1.3.1 etcd:3.3.10 pause:3.1 kube-proxy:v1.14.1 kube-scheduler:v1.14.1 kube-controller-manager:v1.14.1 kube-apiserver:v1.14.1
do
docker pull "registry.cn-shanghai.aliyuncs.com/yingzhuo/$IT"
docker tag "registry.cn-shanghai.aliyuncs.com/yingzhuo/$IT" "k8s.gcr.io/$IT"
docker rmi "registry.cn-shanghai.aliyuncs.com/yingzhuo/$IT"
done
exit 0
复制代码
开启master节点
登录到master节点所在的机器
kubeadm init --kubernetes-version=v1.14.1 --apiserver-advertise-address <你的IP地址> | tee ~/kubeadm.init.log
复制代码
如果看到诸如以下的输出,则说明master节点正常启动了。
...
...
...
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join <你的IP地址>:6443 --token y0xkoh.aijirc8z7qx0jdkt
--discovery-token-ca-cert-hash sha256:59d74f30d7d05c22ca4767b9e7de72b10242646b814183ef6fef1678abcafa48
复制代码
按照提示执行以下命令,以正确使用kubectl
命令。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
复制代码
安装网络插件
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d 'n')"
复制代码
node节点加入集群
分别登录两台机器,以root
账户执行以下命令
kubeadm join 10.211.55.3:6443 --token y0xkoh.aijirc8z7qx0jdkt --discovery-token-ca-cert-hash sha256:59d74f30d7d05c22ca4767b9e7de72b10242646b814183ef6fef1678abcafa48
复制代码
确认安装结果
登录到Master节点 运行下面的指令:
NAME STATUS ROLES AGE VERSION
golf Ready <none> 1d v1.14.1
passat Ready master 1d v1.14.1
polo Ready <none> 1d v1.14.1
复制代码
以上节点都为Ready
状态说明集群已经正确启动了。
最后
以上就是专一柚子为你收集整理的使用kubeadm安装k8s的全部内容,希望文章能够帮你解决使用kubeadm安装k8s所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复