目标是搭建一个可测试的k8s环境,使用的工具 kubeadm, 最终一个master节点(非高可用),2个node节点。

环境以及版本

  • Centos7.3
  • kubeadm 1.11.1
  • kubelet 1.11.1
  • kubectl 1.11.1
  • docker-ce-18.06

说明 kubeadm默认的etcd是本地的,所以这里使用的是本地 etcd,而不是kubeadm中的

name ip role
master1 10.0.12.13 master
node1 10.0.12.10 node
node2 10.0.12.8 node

基础环境

三台主机都需要安装的有docker, kubeadm, kubelet 都是采用 yum 来安装,需要关闭swap,以及防火墙,禁用SELinux。

禁用 SELinux

sudo setenforce 0
  • 1

关闭swap

sudo swapoff -a
vim /etc/fstab  #swap一行注释掉
  • 1
  • 2

安装 docker

sudo yum install -y docker
  • 1

设置开机启动和启动服务

sudo systemctl enable docker
sudo systemctl start docker

看下docker的版本, 至少高于 1.12 版本

sudo docker version

安装 Kubernetes 包

配置 yum 源,并安装 kubeadm, kubectl, and kubelet

添加 k8s 源

sudo bash -c 'cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
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 EOF'

如果无法访问google,那么采用国内源

sudo cat <<EOF > /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

安装 k8s 需要的组件

sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet 
  • 1
  • 2

kubeadm v1.11 之前需要先启动 sudo systemctl start kubelet 服务,但是我在安装v1.11 发现并不需要先启动 kubelet服务,后面的 kubeadm init 汇总会自动启动

k8s 网络需要使用 网络转发,所以需要设置

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

应用设置

sudo sysctl --system
  • 1

关闭防火墙

只是为了方面,不是可选,测试环境方面

sudo systemctl disable firewalld
sudo systemctl stop firewalld
sudo systemctl status firewalld

Master 操作

由于采用外部 etcd,所以要在 master 节点安装 etcd服务,这里也是etcd是单节点

安装etcd

不管是etcd 集群还是单机,或者是 http, https都可以,只要在 kubeadm 中配置好就行。 这部分先略过,大家可以找下 etcd的安装手册。

实验中是单机 etcd,然后监听地址为 https://10.0.12.13:2379

kubeadm

kubeadm配置 kubeadm.yaml (新建,任意目录下)

---
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion:www.baohuayule.net v1.11.1 apiServerCertSANs: - 10.0.12.13 networking: serviceSubnet: 10.96.0.0/12 podSubnet: 10.244.0.0/16 api: advertiseAddress: 10.0.12.13 etcd: endpoints: - https://10.0.12.13:2379 caFile: www.chaoyueyule.com /etc/etcd/ssl/etcd-ca.pem certFile: www.feifanyule.cn /etc/etcd/ssl/etcd.pem keyFile: www.thd178.com /etc/etcd/ssl/etcd-key.pem

kubeadm的参考文档地址 可以根据需要自己更改

kubeadm 安装 k8s

下面是 kubeadm 表演的时间了

sudo kubeadm init --config kubeadm.yaml# 所有阶段会打印出来
....
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.0.12.13:6443 --token 4b3m3i.hrzetk4qb5uh74e4 --discovery-token-ca-cert-hash sha256:357b0fec02af903e66022019cea82ff3a95264479cb5d222ea8e938df2db3d20

给出一些下面要做的步骤,配置 kubectl, 配置网络组件,以及 worker node 加入的命令。

下面就是跟着提示配置 kubectl

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看状态

$ kubectl get nodes
NAME      STATUS     ROLES     AGE       VERSION
master1   NotReady   master    5m        v1.11.

可以看到 status 为 NotReady, 因为网络组件还没有配置, 下面配置 flannel。

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.ym

再来看状态

$ kubectl get pods --all-namespaces
NAMESPACE     NAME                              READY     STATUS    RESTARTS   AGE
kube-system   coredns-78fcdf6894-4744c 1/1 Running 0 5m kube-system coredns-78fcdf6894-jbvhd 1/1 Running 0 5m kube-system kube-apiserver-master1 1/1 Running 0 5m kube-system kube-controller-manager-master1 1/1 Running 0 5m kube-system kube-flannel-ds-amd64-kp7cr 1/1 Running 0 11s kube-system kube-proxy-6778v 1/1 Running 0 5m kube-system kube-scheduler-master1 1/1 Running 0 5m $ kubectl get nodes NAME STATUS ROLES AGE VERSION master1 Ready master 6m v1.11.1 ]$ kubectl get cs NAME STATUS MESSAGE ERROR scheduler Healthy ok controller-manager Healthy ok etcd-0 Healthy {"health": "true"}

master 节点的配置基本完成了。

Node 配置

就是执行之前 init 最后打出的那个命令

sudo  kubeadm join 10.0.12.13:6443 --token 4b3m3i.hrzetk4qb5uh74e4 --discovery-token-ca-cert-hash sha256:357b0fec02af903e66022019cea82ff3a95264479cb5d222ea8e938df2db3d20

2个node操作完之后,再来 master 节点看看

$ kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
master1   Ready     master    7m        v1.11.1
node1     Ready     <none> 18s v1.11.1 node2 Ready <none> 10s v1.11.1

用一个简单pod测试下

kubectl run -i --tty busybox --image=busybox --restart=Never -- sh # 正常执行,再看看调度情况 $ kubectl get pod --show-all -o wide NAME READY STATUS RESTARTS AGE IP NODE busybox 0/1 Completed 0 48s 10.244.1.2 node1

其他

查看 kubeadm 的配置

sudo kubeadm config view

转载于:https://www.cnblogs.com/qwangxiao/p/9397983.html

kubeadm安装k8s测试环境相关推荐

  1. (亲测无坑)Centos7.x使用kubeadm安装K8s集群1.15.0版本

    基础环境配置 三台Centos7.x的服务器,主节点 cpu >=2,node节点>=1 注:(上述cpu为最低配置,否则集群安装部署会报错,无法启动,对其他硬件无硬性要求) 以下操作若无 ...

  2. 使用Rancher搭建K8S测试环境

    环境准备(4台主机,Ubuntu16.04+Docker1.12.6 + SSH): rancher1   192.168.3.160   只做管理节点 node1      192.168.3.16 ...

  3. 用Kubeadm安装K8s后,kube-flannel-ds一直CrashLoopBackOff

    2019独角兽企业重金招聘Python工程师标准>>> 如果使用Kubeadm安装K8s集群,在安装flannel网络插件后,发现pod: kube-flannel-ds 一直是Cr ...

  4. 【k8s系列】vmware中ubuntu22.04使用kubeadm安装k8s集群(1.24.4 or higher)(cka考试环境搭建)

    文章目录 部署环境准备 环境修改 修改hostname(各修改各的) 修改hosts文件(master 和所有node ) 禁用swap(master 和所有node) 修改内核参数(master 和 ...

  5. 使用kubeadm安装k8s集群的完整步骤(k8sv15.1)

    一.创建虚拟机 首先使用vmware15 pro创建了4台centos7虚拟机,其中,3台用来组建k8s集群,1台为master节点,2台为node节点, 剩下的一台用来安装harbor配置私有仓库( ...

  6. centos7下使用kubeadm安装k8s

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具.这个工具能通过两条指令完成一个kubernetes集群的部署. 在开始之前,部署Kubernetes集群机器需要满足以下几 ...

  7. kubeadm安装K8S单master双节点集群

    宿主机: master:172.16.40.97 node1:172.16.40.98 node2:172.16.40.99 # 一.k8s初始化环境:(三台宿主机) 关闭防火墙和selinux sy ...

  8. 使用kubeadm安装k8s集群故障处理三则

    最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考 ...

  9. kubeadm安装k8s 1.23.5

    文章目录 一. 环境准备 1.1 配置yum阿里源 1.2 关闭防火墙 1.3 关闭selinux 1.4 关闭swap 1.5 调整内核参数及模块 1.6 开启ipvs 1.7 同步服务器时间 1. ...

  10. 使用kubeadm安装k8s

    1.系统yum源配置 centos下载地址:推荐大家使用centos7.6以上版本. http://mirrors.aliyun.com/centos/7/isos/x86_64/ 查看centos系 ...

最新文章

  1. python映射类型-详解Python中映射类型(字典)操作符的概念和使用
  2. c++ 大数类 大数模板
  3. 高效研发运维体系构建的流程和方法论
  4. ios 通过kvc修改属性会触发kvo_iOS开发-KVC和KVO的理解
  5. iOS,Core Graphics
  6. halcon 深度学习标注_深度学习in Halcon流程
  7. VS2010中打开项目中的Winform界面报“This method explicitly users CAS policy,which has been obsoleted by the ...”
  8. AngularJS - $uibModal - 自定义模态框大小
  9. 计算机应用技术要学java吗,计算机应用技术专业主要学什么
  10. 计算机思维在化学上的应用,【科学思维】化隐性为显性思想在化学中的应用
  11. 总算了解了什么叫云计算
  12. 体验一个人自驾游思考人生
  13. 2020杭电计算机考研经验帖
  14. ActionScript快速对照表
  15. 前后端开发的心得体会_前后端对接的思考及总结
  16. postman的使用
  17. 4.16 使用可选颜色命令调整图像色彩 [原创Ps教程]
  18. Tensorflow安装过程的一些问题及解决办法
  19. Auto.js实例找色
  20. 记录:matlab 转C++和Opencv,用到的函数

热门文章

  1. 50年过去了,嫦娥五号探月依然不能直播,告诉你三个可能
  2. apt不询问直接安装
  3. 质子和中子数量的一点疑问
  4. 管理感悟:如何处理不干活的主管
  5. day01_启动程序装载器 IPL
  6. 乐高创意机器人moc_乐高MOC佳作欣赏丨机械之美机器人乐高作品集15
  7. python中存储坐标_利用python进行坐标提取以及筛选(文件操作的小应用)
  8. 电脑键盘灯怎么打开_电脑开机后黑屏键盘灯也不亮,教你一招搞定 建议收藏...
  9. 公众号openid能做用户识别_四川养老公众号开发哪里能做
  10. 74ls161中rco是什么_催化燃烧RCO设备多少钱?为什么价格差别如此之大?