Jesse导读:11月9号,我在中国.NET开发者峰会(.NET Conf China 2019)上分享了之前ASP.NET Core和Kubernetes做微服务的经验,在10号的时候又联合张善友、陈计节两位大佬一起做了一个6个小时的动手实践,得到了非常好的反馈。学习K8S需要首先拥有一个K8S的操作环境,由于它的复杂性以及不可描述的原因导致这很多同学直接被卡在了这里。redz(人称小红)是我们团队中的成员之一,这篇文章是他在自己用VMWare虚拟机上搭了3台虚拟机并且在这3台虚拟机上搭建K8S 1.16版本的过程 。

相关环境

  • CentOS 7.6 (2-3台)

  • K8s 1.16.2

  • Docker 18.09.3

需要自己准备2-3台虚拟机来安装CentOS7.6系统,在开始之前先修改主机名称(主机名称不能重复-如果重复即使work节点加入成功,master看不到work节点)

hostnamevi /etc/hostname

在vi中编辑hostname之后输入:wq保存,之后重启系统即可。

关闭防火墙

systemctl stop firewalldsystemctl disable firewalld

禁用swap

swapoff -a

  • 修改etc/fstab

  • 在行首加 #,注释/dev/mapper/centos-swap swap

安装Docker

  • k8s支持的Docker版本

sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.iosystemctl start docker.servicesystemctl enable docker.service

添加K8s 国内镜像源

cat>>/etc/yum.repos.d/kubrenetes.repo<<EOF[kubernetes]name=Kubernetes Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpgEOF

安装K8s所需要的3个组件
yum install -y kubeadm  kubelet kubectl

设置k8s开机自启动

systemctl enable kubelet.service

K8s集群

创建K8s集群 Master Node

在master节点上执行以下命令

kubeadm init --image-repository registry.aliyuncs.com/google_containers \    --pod-network-cidr=10.244.0.0/16 \    --ignore-preflight-errors=cri \    --kubernetes-version=1.16.2

  • 输出以下信息表示,K8s与Docker版本不一致

[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.4. Latest validated version: 18.09

  • 输出以下信息表示,swap没有被禁用

[ERROR Swap]: running with swap on is not supported. Please disable swap

  • 输出以下信息表示,请执行echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

  • 安装成功后, 会显示如下的信息 按步执行即可

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

Init Network Flannel 初始化网络插件

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

  • 由于某种不可抗力 请先下载yml至本机后执行 kubectl apply -f kube-flannel.yml

加入K8s集群 Slave Node

  • 对于从节点 执行步骤至安装K8s 无需init

  • 在master节点上执行, 获取join-token

kubeadm token create --print-join-commandkubeadm join 192.168.69.128:6443 --token uc826o.l9na62a2ckmf5rjo --discovery-token-ca-cert-hash sha256:2be9656d7b4c3e9aab2b1259b0eea948f0b0b05d082267aa5676967cc495c168

  • 从节点执行join-token

K8s集群相关命令

  • 集群获取节点 kubectl get nodes

  • 集群删除节点 kubectl delete node <node-name>

  • 被删除的节点重新加入集群 先执行 kubeadm reset

K8s UI kubernetes-dashboard

部署yaml

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml

  • 此部署文档镜像来源于docker hub

  • 假设部署文档由于众所周知的原因不可访问 请先通过技术手段获取文档后执行部署命令

kubectl apply -f recommended.yaml

  • 使用NodePort方式暴露30065端口 用于非k8s节点中访问 修改yaml以下内容 重新执行部署命令

 kind: Service apiVersion: v1 metadata:   labels:     k8s-app: kubernetes-dashboard   name: kubernetes-dashboard   namespace: kubernetes-dashboard spec:   type: NodePort  ports:    - port: 443      targetPort: 8443      nodePort: 30065  selector:      k8s-app: kubernetes-dashboard

  • NodePort方式默认端口范围30000-32767

  • 获取kubernetes-dashboard访问token

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token

  • 在firefox中访问该网址 https://[k8s节点]:30065选择token登录并输入访问token

  • kubernetes-dashboard要求使用HTTPS Chrome不能访问此类没有认证的web,可以使用firefox进入访问

本机添加kubectl

在windows安装 kubectl

1:choco install kubernetes-cli

2:在master 主机上进入/etc/kubernetes/admin.conf 把admin.conf 下载下来,拷贝到本机当前用户的 .kube\config里面 如果当前用户下没有.kube 使用powershell 建立一个文件夹和config里面

ASP.NET Core微服务 on K8S

如果你对asp.net core微服务和k8s感兴趣,可以看看我录制的视频。涉及到K8S管理、微服务设计以及一些中间件在k8s上的运维,点击左下角的【阅读原文】查看详情。 如果有疑问也可以添加我的微信:280113562进行咨询。

30分钟无坑部署K8S单Master集群相关推荐

  1. k8s安装部署步骤_30分钟无坑部署K8S单Master集群

    Jesse导读:11月9号,我在中国.NET开发者峰会(.NET Conf China 2019)上分享了之前ASP.NET Core和Kubernetes做微服务的经验,在10号的时候又联合张善友. ...

  2. ansible-playbook部署K8S高可用集群

    通过ansible-playbook,以Kubeadm方式部署K8S高可用集群(多主多从). kubernetes安装目录: /etc/kubernetes/KubeConfig: ~/.kube/c ...

  3. Kubeadm 在线快速部署 1.23 单master集群 【实验用】

    飞机票 1. 前置知识点 1.1 准备环境 1.2 操作系统初始化配置[所有节点] 2. 安装Docker/kubeadm/kubelet[所有节点] 2.1 安装Docker 2.2 添加阿里云YU ...

  4. 怎么把springboot部署到阿里云_听说“一分钟就能部署阿里云ECS集群”?

    导读 "企业上云"是当下大势所趋,"提效.降成本" 也是企业上云.迁云和管理云必须关注的问题.今天我们将从一个集群部署的场景出发,介绍阿里云如何借助生态工具Te ...

  5. 实践练习二(必选):手动部署 OceanBase 单副本集群

    说明 相关连接: https://open.oceanbase.com/blog/10900159 https://open.oceanbase.com/answer/detail?id=137006 ...

  6. K8S搭建单Master集群(二进制部署方式)

    一. 安装要求 (1)多台服务器,操作系统 CentOS7.6-86_x64 (2)硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘40GB或更多 (3)可以访问外网,需要拉取镜像,如果服务 ...

  7. kubernetes单Master集群部署--Node节点部署组件(6)

    1.kubelet组件授权 Master apiserver启用TLS认证后,Node节点kubelet组件想要加入集群,必须使用CA签发的有效证书才能与apiserver通信,当Node节点很多时, ...

  8. kubeasz部署k8s高可用集群

    前言:如无特殊说明,所有操作都用root账号在所有节点执行. 说明:kubeasz是一款国产开源的k8s部署软件,采用ansible role的部署方式,部署k8s二进制集群.熟悉ansible ro ...

  9. 部署k8s(16):集群调度策略的四种方案

    一.调度说明 1.简介 Scheduler是ku bernet es的调度器, 主要的任务是把定义的pod分配到集群的节点上.听起来非常简单,但有很多要考虑的问题:公平:如何保证每个节点都能被分配资源 ...

最新文章

  1. 决策树算法之cart剪枝
  2. Qt 可编辑的树模型(Tree Model)的一个实例
  3. T-SQL、Jet SQL、PL-SQL
  4. Hadoop的TextInputFormat的作用,如何自定义实现的
  5. 两个网站:借物网,rss交流网站opml.cn
  6. 配置使用4台主机实现12台主机的集群
  7. getlock mysql_mysql中的get_lock锁机制解析
  8. 静态类型和动态类型的语言有什么区别?
  9. linux+livecd维修工具,使用LiveCd修复Ubuntu
  10. 微信支付-JASPI:准备工作[微信公众平台配置,微信商户平台配置]
  11. DNT精英论坛(暨.NET北京俱乐部)第2期:.NET依赖注入在区块链项目AElf中的实践
  12. 一阶电路误差分析_自动控制原理 | 时域分析法
  13. 公司债务法人代表有义务还吗?
  14. 让我十二点催她睡觉,我用 Python 轻松解决
  15. 设备管理---要点练习及总结
  16. Oracle域完整性约束
  17. 嵌入式培训如何学?什么人适合转行嵌入式开发?
  18. 如何用AI做一个好看的图案
  19. 【Windows8开发】关于WinRT组件,WinRT dll,Win32 dll,WinRT exe组件的一些尝试
  20. FCKEditor用法

热门文章

  1. static_cast、dynamic_cast、reinterpret_cast、const_cast[转]
  2. 隐藏文件始终不能显示的完美解决方法
  3. android bilibili搜索框,仿bilibili搜索框效果(三句代码实现)
  4. Mac OS使用技巧之三:发射无线网络信号的方法
  5. Ethereum-EIPs
  6. 阿里云MaxCompute香港开服 将引入更多人工智能服务
  7. Nats的消息通信模型
  8. Eclipse 安装配置总结(WST WTP)(转)
  9. Js黑客帝国效果 文字下落 制作过程和思路
  10. 为EasyUI 的Tab 标签添加右键菜单