Kubernetes系列之Kubernetes安装《Kubeadm方式安装》


上一篇:Kubernetes系列之Kubernetes安装Kubeadm方式《Centos上安装Docker》

前言

研究Kubernetes和实际项目使用kubernetes已经有一段时间了。Kubernetes系列,可以算是我个人学习的记录吧,先简要整理出一些学习笔记分享给大家,揭示一下当今非常火热,流行的Kubernetes到底是个啥玩意~,新技术的出现必有其道理,但也不要雾里看花,觉得特别神秘,其实也就那么回事儿,本次笔记先从安装开始。

1.安装前准备(每个server都要这么干)

1.1 关闭交换分区:

$  sudo swapoff -a

1.2 打开网桥:

$ sudo modprobe br_netfilter

1.3 调整防火墙设置:

$ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1

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

EOF
$ sudo sysctl --system

1.4 获取k8s工具安装公钥:

$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

exclude=kubelet kubeadm kubectl

EOF

1.5 调整权限:

$ sudo setenforce 0
$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

1.6 设置docker代理:(如果有http proxy代理可以出海可以参考如下配置,如没有请跳过)

$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ touch /etc/systemd/system/docker.service.d/http-proxy.conf

写入以下内容:

[Service]
Environment='HTTP_PROXY=http://10.25.192.8:3378/'
Environment='HTTPS_PROXY=http://10.25.192.8:3378/'
Environment='NO_PROXY=localhost,127.0.0.1'

使配置生效:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

1.7 下载kubernetes必要的image包和工作包(如设置了1.6则可跳过,无可用出海http proxy可用以下方式)

本来打算自己上传的,发现了另一个大佬的已经在csdn有上传相关镜像和工具等:kubernetes 1.19.4版本镜像和工具
镜像使用方法:
下载后解压,直接上传至 server 中 使用 “docker load -i xxx.tar” 即可,别忘了主节点和工作节点都要导入,kubeadm,kubectl等安装包的安装方式请自查,哈哈,此处不做额外说明

1.8 检查kubernetes镜像

$ docker images 
REPOSITORY                                       TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-proxy                            v1.19.4             635b36f4d89f        6 months ago        118MB
k8s.gcr.io/kube-controller-manager               v1.19.4             4830ab618586        6 months ago        111MB
k8s.gcr.io/kube-apiserver                        v1.19.4             b15c6247777d        6 months ago        119MB
k8s.gcr.io/kube-scheduler                        v1.19.4             14cd22f7abe7        6 months ago        45.7MB
k8s.gcr.io/etcd                                  3.4.13-0            0369cf4303ff        9 months ago        253MB
k8s.gcr.io/coredns                               1.7.0               bfe3a36ebd25        11 months ago       45.2MB
k8s.gcr.io/pause                                 3.2                 80d28bedfe5d        15 months ago       683kB

2.安装k8s

2.1 安装kubeadm等工具(如采用下载离线包方式,可跳过本命令)

$ sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

2.2 在master节点执行:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16

注:–pod-network-cidr=10.244.0.0/16不要乱改网段,否则会对后续步骤安装网络插件flannel有影响,flannel默认为此网段,若此处有修改,则安装flannel也需要有对应的调整,具体调整方式请自行上flannel的github issue搜索。别问我为什么知道~~我也不知道我怎么知道的。

安装结束后会打印类似如下内容:

Your Kubernetes control-plane 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/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 172.17.100.191:6443 --token rk5************ \
--discovery-token-ca-cert-hash sha256:9a478***************************************************************************

2.3 在工作节点执行:

$ kubeadm join 172.17.100.191:6443 --token rk5************ \
--discovery-token-ca-cert-hash sha256:9a478***************************************************************************

2.4 安装网络插件(网络插件必不可少,当然也可以选择其他类型,此处以flannel为例子)

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

3.检查集群状态

$ kubectl get nodes
NAME    STATUS       ROLES                 AGE      VERSION
master   Ready       65111to65139,master   187d     v1.19.4
node1    Ready       65141to65169,node     187d     v1.19.4
node2    Ready       65171to65199,node     187d     v1.19.4

如都显示为ready则集群状态正常,至此,kubernetes集群安装完成

4.结束语

  • 见到新技术的时候,不要去怕深入,新技术的出现,肯定是因为有新需求的出现,新需求出现了,但原有的解决相应问题的解决方案不够用了,那么便会推进新的技术理论的出现和发展。
  • 不要为了学习新技术而学习新技术,因为如果没有具体的去使用新技术,是不那么容易理解的,从问题出发到解决方案和技术。
  • 搞不懂新技术是干什么的,要学会不求甚解,先学会用,然后再相辅相成的大胆猜测,小心求证。
  • 最后一句,干就完了,不怂。

上一篇:Kubernetes系列之Kubernetes安装Kubeadm方式《Centos上安装Docker》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值