k8s安装——精选推荐

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

k8s安装kubeadm

kubeadm是⼀个专门快速部署kubernetes集群的⼯具。

可以使⽤kubeadm init 来初始化master节点,然后使⽤kubeadm join 将其他的node节点加⼊到集群中kubeadm通过⼀个简单的配置是将⼀个最⼩可⽤的集群运⾏起来

新⽤户可以从kubeadm开始快速搭建kubernetes

熟悉的⼈可以使⽤kubeadm快熟搭建集群并测试他们的应⽤

⼤型的项⽬可以配合其他⼯具,

基于kubeadm部署k8s

14 master kubeadm,kubelet,kubectl,docker

10 node01 kubeadm,kubelet,kubectl,docker

11 node02 kubeadm,kubelet,kubectl,docker

关闭防⽕墙个selinux

[root@master ~]# setenforce 0

setenforce: SELinux is disabled

[root@master ~]# iptables -F

[root@master ~]# systemctl stop firewalld

[root@master ~]# systemctl disable firewalld

[root@master ~]# systemctl stop NetworkManager

[root@master ~]# systemctl disable NetworkManger

Failed to execute operation: No such file or directory

[root@master ~]# systemctl disable NetworkManager

[root@master ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

部署主机并绑定hosts

[root@k8s-master ~]# vim /etc/hosts

192.168.200.14 k8s-master

192.168.200.10 k8s-node01

a92.168.200.11 k8s-node02

[root@master ~]# scp /etc/hosts 192.168.200.10:/etc/

[root@master ~]# scp /etc/hosts 192.168.200.20:/etc/

主机配置初识化

[root@k8s-master ~]# yum -y install vim wget net-tools lrzsz

[root@k8s-master ~]# swapoff -a

[root@k8s-master ~]# sed -i '/swap/s/^/#/' /etc/fstab

cat <<EOF>> /etc/sysctl.conf

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

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

EOF

[root@k8s-master ~]# modprobe br_netfilter

[root@k8s-master ~]# sysctl -p

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

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

所有主机部署docker环境

所有主机配置阿⾥云镜像加速

部署kubernetes集群

组件介绍

kubeadm:安装⼯具,使所有的组件都会以容器的⽅式运⾏

kubectl:客户端连接k8s api ⼯具

kubelet:运⾏在node节点,⽤来启动容器的⼯具

推荐使⽤阿⾥云的yum源

所有主机安装kubelet kubeadm kubectl

yum install -y install kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0

[root@k8s-master k8s]# ls

conntrack-tools-1.4.4-7.el7.x86_64.rpm kubernetes-cni-0.8.7-0.x86_64.rpm

cri-tools-1.13.0-0.x86_64.rpm libnetfilter_cthelper-1.0.0-11.el7.x86_64.rpm

kubeadm-1.20.0-0.x86_64.rpm libnetfilter_cttimeout-1.0.0-7.el7.x86_64.rpm

kubectl-1.20.0-0.x86_64.rpm libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm

kubelet-1.20.0-0.x86_64.rpm

yum -y install *.rpm

[root@k8s-master ~]# systemctl enable kubelet.service

#kubelet刚安装后是⽆法启动的,需要加⼊节点或者初始化为master后才可以启动

配置init-config.yaml

kubeadm的配置项都吨出在configMap中,可以将其写⼊配置⽂件,⽅便管理

#在master主机上配置

[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml

#打印初始化相关的配置到config.yaml⽂件中

kubeadm config view:查看当前集群中的配置值

kubeadm config print join-defaults:输出kubeadm join 默认参数⽂件内容

init-config.yaml

安装master节点

[root@k8s-master ~]# kubeadm config images list(pull) --config init-config.yaml #查看配置⽂件关联的镜像(下载)

[root@k8s-master master]# ls

coredns_1.7.0.tar kube-controller-manager_v1.20.0.tar pause_3.2.tar

etcd_3.4.13-0.tar kube-proxy_v1.20.0.tar

kube-apiserver_v1.20.0.tar kube-scheduler_v1.20.0.tar

[root@k8s-master master]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

[root@k8s-master master]# ls | while read line

> do

> docker load < $line

> done #保存镜像

[root@k8s-master ~]# docker images

REPOSITORY TAG IMAGE IDED SIZE

/google_containers/kube-proxy v1.20.0 10cc8819nths ago 118MB

/google_containers/kube-apiserver v1.20.0 ca9843d3nths ago 122MB

/google_containers/kube-controller-manager v1.20.0 b9fa1895nths ago 116MB

/google_containers/kube-scheduler v1.20.0 3138b6e3nths ago 46.4MB

/google_containers/etcd 3.4.13-0 0369cf43nths ago 253MB

/google_containers/coredns 1.7.0 bfe3a36enths ago 45.2MB

/google_containers/pause 3.2 80d28bednths ago 683kB

[root@k8s-master ~]# kubeadm init - -config=init-config.yaml #初始化安装k8s

kubectl默认会在执⾏的⽤户家⽬录下⾯的。kube⽬录下寻找config⽂件,所以在当前⽬录下创建⼀个.kube⽂件,并且将初始化⽣成的admin.conf拷贝到./kube/config

初始化的时候会提⽰,直接拉取执⾏

初始化时

安装node节点

#初始化时⾃动提⽰,在node节点直接执⾏

[root@k8s-node01 ~]# kubeadm join 192.168.200.14:6443 --token abcdef.0123456789abcdef \

> --discovery-token-ca-cert-hash sha256:546631d9bc3d6fe0043d6b4da27ec3332a2909b991cb66a4156760fc63be78ca

--token(临时⼆⼗四⼩时连接验证)

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

提⽰在master上执⾏kubectl get nodes,获取node节点信息

[root@k8s-master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master NotReady control-plane,master 9m v1.20.0

k8s-node01 NotReady <none> 2m17s v1.20.0

k8s-node02 NotReady <none> 2m13s v1.20.0

安装flannel

master节点notready 的原因就是没有⽹络插件。

此时master主机上传kube-flannel.yml 所有主机上传flannel_v0.12.0-amd64.tar

[root@k8s-master ~]# ls

docker flannel_v0.12.0-amd64.tar init-config.yaml k8s kube-flannel.yml master

[root@k8s-master ~]# scp flannel_v0.12.0-amd64.tar 192.168.200.10:/root/

[root@k8s-master ~]# scp flannel_v0.12.0-amd64.tar 192.168.200.11:/root/

docker load < flannel_v0.12.0-amd64.tar #所有主机导⼊镜像

[root@k8s-master ~]# kubectl apply -f kube-flannel.yml #master运⾏

[root@k8s-master ~]# kubectl get nodes #再次查看节点

NAME STATUS ROLES AGE VERSION

k8s-master Ready control-plane,master 17m v1.20.0

k8s-node01 Ready <none> 11m v1.20.0

k8s-node02 Ready <none> 11m v1.20.0

[root@k8s-master ~]# kubectl get pods -n kube-system

安装D安上board UI

所有主机部署Dashboard

默认这个部署⽂件中,会独⽴创建⼀个kubernetes-dashboard的命令空间。

相关文档
最新文档