在ubuntu上用kubeadm部署kubernetes (k8s) 集群

                                                                                        步骤详情
一、k8s安装
1.在已安装docker的情况下install kubeadm、kubelet、kubectl
#打开sources.list并加入国内镜像源, 直接在/etc/apt/sources.list里添加https://mirrors.aliyun.com/kubernetes/apt/是不行的,因为这个阿里镜像站使用的ssl进行传输的,所以要先安装apt-transport-https并下载镜像站的密钥才可以进行下载。
cat <<EOF >>/etc/apt/sources.list
# kubeadm及kubernetes组件安装源
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF
#若上一条permission denied,换下面的语句试试
sudo sh -c 'echo "deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main">/etc/apt/sources.list'
# 列出所有可升级版本
sudo apt-cache madison kubeadm
sudo apt-cache madison kubelet
#安装 1.15.3版本
sudo apt-get update && apt-get install kubelet=1.15.3-00 kubeadm=1.15.3-00 kubectl=1.15.3-00 --allow-unauthenticated
2.拉取核心组件镜像
# 获取需要的镜像
sudo kubeadm config images list --kubernetes-version=v1.15.3
# 下载镜像
sudo docker pull mirrorgooglecontainers/kube-apiserver:v1.15.3-beta.0
sudo docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.3
sudo docker pull mirrorgooglecontainers/kube-scheduler:v1.15.3
sudo docker pull mirrorgooglecontainers/kube-proxy:v1.15.3
sudo docker pull mirrorgooglecontainers/etcd:3.3.10
sudo docker pull coredns/coredns:1.3.1
#打标签( kubeadm默认使用的是k8s.io下面的镜像,从国内镜像站下载完之后打成k8s.io的tag
sudo docker tag registry.cn-beijing.aliyuncs.com/enzhige-kubeadm/pause:3.1 k8s.gcr.io/pause:3.1
sudo docker tag registry.cn-beijing.aliyuncs.com/enzhige-kubeadm/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
sudo docker tag registry.cn-beijing.aliyuncs.com/enzhige-kubeadm/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
sudo docker tag mirrorgooglecontainers/kube-apiserver:v1.15.3-beta.0  k8s.gcr.io/kube-apiserver:v1.15.3
sudo docker tag mirrorgooglecontainers/kube-controller-manager:v1.15.3 k8s.gcr.io/kube-controller-manager:v1.15.3
sudo docker tag mirrorgooglecontainers/kube-scheduler:v1.15.3 k8s.gcr.io/kube-scheduler:v1.15.3
sudo docker tag mirrorgooglecontainers/kube-proxy:v1.15.3 k8s.gcr.io/kube-proxy:v1.15.3
sudo docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
sudo docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
#删除原来的标签
sudo docker rmi mirrorgooglecontainers/kube-apiserver:v1.15.3-beta.0
sudo docker rmi mirrorgooglecontainers/kube-controller-manager:v1.15.3
sudo docker rmi mirrorgooglecontainers/kube-scheduler:v1.15.3
sudo docker rmi mirrorgooglecontainers/kube-proxy:v1.15.3
sudo docker rmi mirrorgooglecontainers/etcd:3.3.10
sudo docker rmi coredns/coredns:1.3.1
#查看镜像
sudo docker images | grep k8s
 
二、master节点安装
1.环境准备
# 禁用selinux
sudo vim /etc/selinux/config
SELINUX=disabled
#禁用防火墙
setenforce 0
sudo ufw disable
#验证
getenforce
Disabled
# 关闭swap
sudo swapoff -a
#确认swap已经关闭
free -m
# 添加内核配置
sudo sh -c 'echo "net.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1">/etc/sysctl.d/k8s.conf'
#执行命令让修改生效
modprobe br_netfilter
sudo sysctl -p /etc/sysctl.d/k8s.conf
 
# 配置IPVS模块
vim /etc/modules
ip_vs_rr
ip_vs_wrr
ip_vs_sh
ip_vs
 
sudo iptables -P FORWARD ACCEPT
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
 
# 查看是否已经正确加载所需的内核模块
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
2.使用kubeadm初始化k8s的master节点
sudo kubeadm init --kubernetes-version v1.15.3 --apiserver-advertise-address 192.168.113.39 --pod-network-cidr=10.244.0.0/16
  • --apiserver-advertise-address: k8s 中的主要服务apiserver的部署地址,填自己的管理节点 ip
  • --image-repository: 拉取的 docker 镜像源
  • --pod-network-cidr: 这个是 k8s 采用的节点网络,对flannel而言填10.244.0.0/16
  • --kubernetes-version: 用来指定要部署的 k8s 版本
  • --ignore-preflight-errors: 忽略初始化时遇到的错误,比如要忽略 cpu 数量不够 2 核引起的错误,就可以用--ignore-preflight-errors=CpuNum。错误名称在初始化错误时会给出来。
  • 如果在初始化过程中出现了任何 Error 导致初始化终止了,使用 kubeadm reset 重置之后再重新进行初始化
    加入worker节点的命令要记下来,如果忘了可以 master 节点上使用 kubeadm token create --print-join-command 命令重新生成一条
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
 
Then you can join any number of worker nodes by running the following on each as root:
sudo kubeadm join 192.168.113.39:6443 --token cqv8ow.o0m6l2w9g4jgcdna \
    --discovery-token-ca-cert-hash sha256:fdf7857e1995d91665de1e1b623416de20360785e30b315323bac8770e1f3993
3.配置kubectl工具
mkdir -p $HOME/.kube && \
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#验证一下kubectl是否配置好了
# 查看已加入的节点
kubectl get nodes
# 查看集群状态,no-ready因为没有配置网卡
kubectl get cs
4.部署flannel网络
flannel 是一个专门为 k8s 设置的网络规划服务,可以让集群中的不同节点主机创建的 docker 容器都具有全集群唯一的虚拟IP地址。
   若出错,可将yaml文件从网页上复制下来。
# 查看 Pod 运行状态
kubectl get pods -n kube-system | grep kube-flannel
三、配置英伟达显卡插件
   若出错,可将yaml文件从网页上复制下来。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值