经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Kubernetes » 查看文章
使用kubeadm方式安装K8S
来源:cnblogs  作者:BirdieGarden  时间:2019/9/12 8:59:21  对本文有异议

Kubeadm安装

kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。

安装Docker ce

Docker安装
每个机器都需要装

环境准备

编辑hosts对应关系
  1. cat <<EOF >>/etc/hosts
  2. 192.168.37.61 Smile1
  3. 192.168.37.62 Smile2
  4. 192.168.37.63 Smile3
  5. EOF
关闭防火墙
  1. systemctl stop firewalld.service?
  2. systemctl disable firewalld.service
禁用SELINUX
  1. sudo setenforce 0
  2. sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
关闭swap
  1. swapoff -a
  2. sed -i 's/.*swap.*/#&/' /etc/fstab
配置内核参数添加如下内容

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

配置K8S的yum源

cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装kubelet、kubeadm、kubectl

  1. yum makecache fast
  2. yum install -y kubelet kubeadm kubectl

调整启动方式

kubelet的启动环境变量要与docker的cgroup-driver驱动一样

  1. docker info | grep -i cgroup
  2. Cgroup Driver: cgroupfs --> 运行命令显示

docker的cgroup-driver是cgroupfs,而k8s默认是systemd
修改docker的cgroup-driver

  1. vim /etc/docker/daemon.json
  2. 加入内容 : { "exec-opts": ["native.cgroupdriver=systemd"] }
最终文件内容

{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}

重启Docker
  1. systemctl restart docker
  2. systemctl status docker

启动kubelet服务

  1. systemctl enable kubelet.service
  2. systemctl start kubelet.service

配置Master节点

进行kubernetes集群初始化

Master节点执行命令 :
kubeadm init --kubernetes-version=1.15.0 ?
--apiserver-advertise-address=192.168.37.61 ?
--image-repository=gcr.azk8s.cn/google_containers ?
--pod-network-cidr=10.244.0.0/16 --token-ttl 0

--kubernetes-version : 指定版本号
--apiserver-advertise-address : 指定主机地址
其中设置image-repository这一步很重要,kubeadm默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要指定阿里云或者是其他国内镜像仓库地址。

定义POD的网段为: 10.244.0.0/16,

初始化成功后会返回如下信息
  1. //这个返回信息三条命令是配置kubectl工具的命令
  2. mkdir -p $HOME/.kube
  3. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  4. sudo chown $(id -u):$(id -g) $HOME/.kube/config
  5. // 这个返回信息是配置Node节点的命令
  6. kubeadm join 192.168.98.230:6443 --token dexs09.ftjp7y7obq6a3t6n --discovery-token-ca-cert-hash sha256:4aace846f8a6c381902592049591152fd7250b63e500e370a4b64902d202f7f2
配置kubectl工具

运行初始化成功后返回的三条命令

部署pod的网络

有很多种选择参考
我们选择的是flannel,其它的几种可能会有问题

  1. wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
  2. //在kube-flannel.yml里面默认的镜像下载地址是quay.io,国内无法访问,这里替换所有的quay.io为 quay-mirror.qiniu.com
  3. sed -i "s/quay.io/quay-mirror.qiniu.com/g" kube-flannel.yml
执行安装命令
  1. kubectl apply -f kube-flannel.yml
查看运行状态
  1. kubectl get pod --all-namespaces -o wide

确保所有的pod都处在运行状态

部署Node节点

将所有的node节点加入到kubernets集群

  1. //在Node节点上执行(这个命令就是集群初始化之后的返回信息)
  2. kubeadm join 192.168.98.230:6443 --token dexs09.ftjp7y7obq6a3t6n --discovery-token-ca-cert-hash sha256:4aace846f8a6c381902592049591152fd7250b63e500e370a4b64902d202f7f2

最后检测集群各节点的运行状态

  1. kubectl get nodes

再次查看各个pod的状态,确保都是处于Runing状态

  1. kubectl get pod --all-namespaces -o wide

如果有问题,重新配置Master

  1. kubeadm reset

我每天会写文章记录云计算技术学习之路,另外我自己整理了些云计算的学习资料,目前全部放在我的公众号"SmallBird技术分享",加入我们一起学习交流,并且回复’分享’会有大数据,云计算资源惊喜等着你~

原文链接:http://www.cnblogs.com/SmallBird-Nest/p/11506271.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号