通过kubeadm安装k8s并配置集群

在Ubuntu上通过kubeadm安装k8s并配置集群

1.首先 安装docker和docker-compose 过程略过

2.配置kubeadm国内源(aliyun)
由于官网手册给的是k8s的官方源,无法正常apt安装,这里添加源如下:
在 /etc/apt/sources.list.d/kubernetes.list 文件下添加:deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

    apt-get update && apt-get install -y apt-transport-https
    
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 

	cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
	deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
	EOF 

    apt-get update

3.在Master节点安装 kubectl kubelet kubeadm 三个组件

3.1.kubectl:cmd客户端,用于和k8s交互

3.2.kubadm :用于集群模式下Master节点的设置,已经Slave节点的添加

3.3.kubectl:每个节点都会存在的进程,用于处理master节点下发的任务,管理pod和容器,并且上报pod,node的具体情况

apt-get install -y kubelet kubeadm kubectl

查看版本号
安装完成后查看版本号,这里是v1.15.1 版本

4.配置kubelet service

4.1.关闭防火墙

    sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
    setenforce 0
    systemctl disable firewalld
    systemctl stop firewalld

4.2.关闭swap

swapoff -a

4.3.配置内核参数

在 k8s.conf文件添加如下内容

    cat <<EOF >  /etc/sysctl.d/k8s.conf
	net.bridge.bridge-nf-call-ip6tables = 1
	net.bridge.bridge-nf-call-iptables = 1
	net.ipv4.ip_nonlocal_bind = 1
	net.ipv4.ip_forward = 1
	vm.swappiness=0
	EOF

	sysctl --system

4.4 配置kubelet service

    systemctl enable kubelet
    systemctl start kubelet
    systemctl status kubelet

查看状态:发现是(code=exited, status=255) 此时是退出状态 ,请暂时忽略
查看服务状态

5.通过国内源下载k8s的Master节点所需的docker组件(kube-apiserver,kube-controller-manager,kube-scheduler)
此时如果 直接 kubeadm init 会 如图所示提示下载失败,这里需要通过镜像下载(注意版本号最好匹配):
初始化Master失败

#这里注意上面截图提示的版本号
    docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.1
	docker pull mirrorgooglecontainers/kube-scheduler:v1.15.1
	docker pull mirrorgooglecontainers/kube-proxy:v1.15.1
	docker pull mirrorgooglecontainers/pause:3.1
	docker pull mirrorgooglecontainers/etcd:3.3.10
	docker pull coredns/coredns:1.3.1

    docker tag mirrorgooglecontainers/kube-proxy:v1.15.1  k8s.gcr.io/kube-proxy:v1.15.1
	docker tag mirrorgooglecontainers/kube-scheduler:v1.15.1 k8s.gcr.io/kube-scheduler:v1.15.1
	docker tag mirrorgooglecontainers/kube-apiserver:v1.15.1 k8s.gcr.io/kube-apiserver:v1.15.1
	docker tag mirrorgooglecontainers/kube-controller-manager:v1.15.1 k8s.gcr.io/kube-controller-manager:v1.15.1
	docker tag mirrorgooglecontainers/etcd:3.3.10  k8s.gcr.io/etcd:3.3.10
	docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
	docker tag mirrorgooglecontainers/pause:3.1  k8s.gcr.io/pause:3.1

    docker rmi mirrorgooglecontainers/kube-apiserver:v1.15.1
	docker rmi mirrorgooglecontainers/kube-controller-manager:v1.15.1
	docker rmi mirrorgooglecontainers/kube-scheduler:v1.15.1
	docker rmi mirrorgooglecontainers/kube-proxy:v1.15.1
	docker rmi mirrorgooglecontainers/pause:3.1
	docker rmi mirrorgooglecontainers/etcd:3.3.10
	docker rmi coredns/coredns:1.3.1

6.初始化Master节点

  kubeadm init --kubernetes-version=v1.15.1 --apiserver-advertise-address=10.165.8.153 --pod-network-cidr=10.244.0.0/16    

#返回结果:

#返回结果:
     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 10.165.8.153:6443 --token fpdm67.4ps59tkdwudzkag1 --discovery-token-ca-cert-hash sha256:e6e8065023217654a808ca7f8f3bf42acf6da2306037761e109463f0959930a7
      #根据上边返回结果 运行以下命令
	  mkdir -p $HOME/.kube
	  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
	  sudo chown $(id -u):$(id -g) $HOME/.kube/config

7.将node节点添加到master

7.1 在slave节点重复前步骤1~5, 配置好后,在slave设备运行以下命令 ip 为 master节点ip

   kubeadm join 10.165.8.153:6443 --token fpdm67.4ps59tkdwudzkag1 --discovery-token-ca-cert-hash sha256:e6e8065023217654a808ca7f8f3bf42acf6da2306037761e109463f0959930a7

7.2 在master节点查看node信息

kubectl get node

返回结果

发布了21 篇原创文章 · 获赞 2 · 访问量 2870

猜你喜欢

转载自blog.csdn.net/ysf465639310/article/details/98619947