Linux(CentOS)离现安装kubernetes1.19.2和docker应用
获取rpm离线包可以去网上下载,rpm包是有依赖的,担心不完整,最好的办法是找一台能下载的机器,比如本地、开发、测试环境的机器导出……完美~#导出k8syum install -y --downloadonly --downloaddir=/tmp/rpm kubelet-1.19.2 kubeadm-1.19.2 kubectl-1.19.2#导出dockeryum install -y --d
获取rpm离线包
可以去网上下载,rpm包是有依赖的,担心不完整,最好的办法是找一台能下载的机器,比如本地、开发、测试环境的机器导出……完美~
先安装yum untils工具,然后使用yumdownloader
下载所有包及依赖
yum install yum-utils
然后开始导出包
#导出k8s
yumdownloader --destdir=/tmp/k8s --resolve kubelet-1.19.2 kubeadm-1.19.2 kubectl-1.19.2
#导出docker
yumdownloader --destdir=/tmp/docker --resolve docker-ce-19.03.12 docker-ce-cli-19.03.12 containerd.io-19.03.12
指定安装1.19.2,写法如kubeadm-1.19.2 ,不加版本号会安装最新版。
注意:docker与kubernetes的版本要一致
打包一下方便上传
tar -cvf docker19.03.12_rpm.tar /tmp/docker/
tar -cvf k8s1.19.2_rpm.tar /tmp/rpm/
也可以直接下载我的:
kubernetes1.19.2离线rpm安装包https://download.csdn.net/download/evane1890/22402610
docker19.03.12离线rpm安装包
https://download.csdn.net/download/evane1890/22402463
安装(所有机器上都做)
先上传服务器,然后在服务器上进行安装
scp *.tar 10.99.25.30:~/
解压
tar -xvf k8s1.19.2_rpm.tar
tar -xvf docker19.03.12_rpm.tar
安装
#安装k8s
yum localinstall rpm/* -y
#安装dockder
yum localinstall docker/* -y
#报错使用:
yum localinstall docker/* -y --setopt=protected_multilib=false
系统配置相关(所有k8s机器上都要做)
准备工作:
假如我们有三台机器:
192.168.9.1 用做master
192.168.9.2 用做node1
192.168.9.3 用做node2
- 配置机器间互信(使用ssh-keygen)
- 修改hosts
sudo vi /etc/hosts
#追加
192.168.9.1 master
192.168.9.2 node1
192.168.9.3 node2
- 配置docker aliyun regisitry(
必要配置,否则k8s无法加载导入的docker images
)
sudo vi /etc/docker/daemon.json
{
"debug": true,
"experimental": false,
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
如果配置本地registry,需要添加:
"insecure-registries": [
"192.168.88.201:5000"
]
1.关swap
#临时关闭,避免重起
sudo swapoff -a
#在配置中永久关闭
sudo vi /etc/fstab
#注掉如下配置
#/dev/mapper/starbucks-swap swap swap defaults 0 0
2.关闭selinux
#临时关闭
setenforce 0
#永久关闭
vim /etc/selinux/config
#将SELINUX=enforcing改为SELINUX=disabled。
3.配置ip6,避免路由告警
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#刷新一下
sysctl --system
4.改k8s cgroup参数同docker一致
sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
#把sytemed 改成 cgroupfs
这个要先查看
docker info
,查下docker的cgroup是哪种
5.启动docker 和 k8s
sudo systemctl daemon-reload && sudo systemctl enable --now kubelet
sudo systemctl start docker
sudo systemctl status kubelet
以上所有服务器执行
以下在master执行
注意:执行master 初始化之前,先导入docker image
初始化k8s
- 重置一下(可加
-f
参数强制删除)
kubeadm reset
- 初始化
kubeadm init --kubernetes-version=v1.19.2 --pod-network-cidr=10.244.0.0/16
也可以使用配置文件初始化
rm -f ./kubeadm-config.yaml
cat <<EOF > ./kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.19.2
imageRepository: registry.aliyuncs.com/k8sxio
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
networking:
serviceSubnet: "10.96.0.0/16"
podSubnet: "${POD_SUBNET}"
dnsDomain: "cluster.local"
EOF
使用配置文件初始化k8s
kubeadm init --config=kubeadm-config.yaml --upload-certs
参考:https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm-init/
- 安装网络
可以先择calico
下载:calico-3.13.1.yaml
安装
kubectl apply -f calico-3.13.1.yaml
- 配置 kubectl
rm -rf /root/.kube/
mkdir /root/.kube/
cp -i /etc/kubernetes/admin.conf /root/.kube/config
- 添加k8s环境
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
- 创建node join时使用的token
kubeadm token create --print-join-command
以下在node执行
kubeadm join --token 1ff84c.b7828d504656ba64 192.168.12.21:6443 --discovery-token-ca-cert-hash sha256:ceb2b93ce7543174b8fa87628fbe1f3926b5206915fee06629195ea8b4b89fe7
开始使用
1.使用
kubectl get nodes
更多推荐
所有评论(0)