使用kubeadm工具搭建kubernetes集群

关闭swap分区:

Swapoff –a

Setenforce 0

 

Kubernetes 部署:

###########################kube源##############################

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

#############开始安装(每个都必须安装,不能偷懒,源只会自动用最新的依赖,而不是指定版本的依)

apt-get install kubernetes-cni=0.6.0-00

apt-get install -qy --allow-downgrades kubelet=1.11.3-00 kubectl=1.11.3-00 kubeadm=1.11.3-

 

安装kubectl

apt-cache madison kubectl #列出kubectl的版本

#结果:kubectl |  1.11.3-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages

apt-get install -y kubectl=1.11.3-00  (1.11.3-00

 

安装kubelet

apt-cache madison  kubelet   #列出kubelet的版本

结果:kubelet |  1.11.3-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages

apt-get install -y kubelet=1.11.3-00 #安装固定版本  (1.11.3-00

 

安装kubeadm(其实会自动安装 kubectl , kubelet)

apt-cache madison  kubeadm   #列出kubeadm的版本

结果:kubeadm |  1.11.3-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages

apt-get install -y kubeadm=1.11.3-00 #安装固定版本

 

#################################docker-ce 源配置#############################

apt-get -y install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

apt-get  update

####开始安装

apt-cache madison docker-ce #列表版本

结果:docker-ce | 5:18.06.0~3-0~ubuntu-bionic | http://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages

apt-get install -y docker-ce=5:18.06.0~3-0~ubuntu-bionic #安装固定版本

apt-get install -y docker-ce=18.03.1~ce~3-0~ubuntu

 

apt-mark hold kubelet kubeadm kubectl #设置套件不自动更新

systemctl enable kubelet && systemctl start kubelet 

systemctl enable docker && systemctl start docker 

 

 

1.关闭swap

vi /etc/fstab 与swapoff -a

2.cgroupf 组同步

编辑docker的josn文件,但是不要破坏json结构,有内容的话就不要{}了:/etc/docker/daemon.json

{

        "exec-opts": ["native.cgroupdriver=systemd"],

        "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

}

3.启动docker服务并检查状态:

#重启服务:

systemctl restart docker

#查看容器的cgroup是否是systemd

docker info |grep group

#查看docker镜像目录

docker info |grep Root

#重启docker

systemctl restart docker

#.修改hostname.

Hostnamectl set-hostname master

Hostnamectl set-hostname node1

 

4、创建k8s配置文件

 

# vi /etc/sysctl.d/k8s.conf

  net.bridge.bridge-nf-call-ip6tables = 1

  net.bridge.bridge-nf-call-iptables = 1

  net.ipv4.ip_forward = 1

  #使配置文件生效

#modprobe br_netfilter     

# sysctl -p /etc/sysctl.d/k8s.conf  

 

##查看最新的k8s版本:kubeadm config images list

##查看指定版本的依赖:kubeadm config images list --kubernetes-version=v1.11.3

 

5.完成。

开始初始化主节点:

kubeadm init \

--apiserver-advertise-address=0.0.0.0 \ #这个是apiserver ip  主节点电脑上的所有ip

--image-repository registry.aliyuncs.com/google_containers \ #指定源,不然去国外下载,被墙了 (高版本支持,1.11.3不支持)

--kubernetes-version v1.11.3  #指定版本

--service-cidr=10.1.0.0/16 \  #无类别域间路由,这个ip网段与后面初始化pod网络有关。要在同一个网段,否则无效ip

--node-name master #节点名称

--pod-network-cidr=10.244.0.0/16 \#容器网络,不同的ip段,选择不同类型的网络插件。

calico(192.168.0.0)  canal(10.244.0.0/16) cilium(10.217.0.0/16) flannel(10.244.0.0/16)

 

#整理后:

kubeadm init --apiserver-advertise-address=0.0.0.0 \

--kubernetes-version v1.11.3 \

--service-cidr=10.1.0.0/16 \

--pod-network-cidr=10.244.0.0/16 \

--node-name master

 

#根据提示操作:

  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://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml

 

kubectl get pods --all-namespaces

kubectl logs --namespace=kube-system coredns-78fcdf6894-8wlqk

 

###主节点初始化完成

 

#计算节点加入命令(--node-name:可以指定节点名称):

kubeadm join 192.168.0.245:6443 --token x7fh85.cp580kpoz6qqwefs \

    --discovery-token-ca-cert-hash sha256:7228d2678a3adb6a3c301a03f0638cd2ce169f43d97e6dc361d7809c2afe7180   \

--node-name node2

 

删除某节点命令:kubectl drain node1 --delete-local-data --force --ignore-daemonsets,然后执行kubectl delete node node1 和kubeadm reset命令,彻底移除某节点。

#注意:计算节点只需要安装完docker,kubeadm,关掉swap,设置好cgroup之后,就可以加入集群了。无需安装各种包。

 

使用kubeadm工具搭建kubernetes集群_第1张图片

 

使用kubeadm reset命令可以删除kubernetes某一个节点

你可能感兴趣的:(linux,docker)