CentOS7安装k8s-v1.13.4
- 第一部分 环境初始化
- 证书制作
- 下载并安装CFSSL
- 创建CA证书
- 创建ETCD证书
- 创建kubernetes证书
- 创建admin证书
- 创建kube-proxy证书
- 创建Flannel证书
- ETCD集群部署
- 准备ETCD软件
- 配置ETCD参数
- 创建ETCD数据目录
- 创建ETCD系统服务
- 修改k8s-worker1的etcd.conf文件
- 修改k8s-worker2的etcd.conf文件
- 加载并启动系统服务
- 验证集群
- Master节点部署
- 准备kubernetes软件包
- 部署Kubernetes API Server
- 部署Controller Manager服务
- 部署Kubernetes Scheduler
- 部署kubectl 命令行工具
- Node节点部署
- 部署kubelet
- 部署Kubernetes Proxy
- Flannel网络部署
- 部署flannel软件包
- 配置flannel
- 创建Flannel系统服务
- 安装CNI插件
- CoreDNS和Dashboard部署
- 部署CoreDNS
- 部署Dashboard
以上系统最小化安装,修改好主机名,禁用selinux,关闭防火墙,并写好/etc/hosts:
这里k8s-master1兼作部署节点:
修改CA配置文件
修改CA请求文件
将证书复制到/opt/kubernetes/ssl目录下:
查看校验证书:
文件分发到两个worker节点
创建ETCD数据目录
创建ETCD数据目录
在所有节点上:
登录https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md,选择相应的版本下载:
或者手工下载指定软件包
还有client和node版的,不需要下载了,server版的已经全包含进来了。
解压kubernetes-server-linux-amd64.tar.gz并拷贝到适当的目录:
创建 kube-apiserver 使用的客户端 token 文件
在token-auth.csv中拥有以列为单位的认证信息,格式为token,username,uid
创建基础用户名/密码认证配置
格式为:密码,用户名,ui,为后面创建dashborad后用户认证。
启动API Server服务
查看API版本
启动Controller Manager
启动Kubernetes Scheduler
配置命令补全:
命令kubectl在默认情况下(即未指定–kubeconfig=参数时),会到$HOME/.kube目录下寻找名为config的配置文件,配置文件中包含集群ip地址、端口号、用户名、密码、证书、名称空间等信息,kubectl据此建构访问集群的上下文。以下命令kubectl config均未指定–kubeconfig=参数。
设置集群参数
设置客户端认证参数
设置上下文参数
设置默认上下文
查看kubeconfig内容
验证master节点功能
创建角色绑定
创建kubeconfig 文件,设置集群参数
设置客户端认证参数,token值为之前生成的
设置上下文参数
选择默认上下文并向node节点分发在master端生成的
创建kubelet服务配置
启动Kubelet
查看csr请求(注意是在k8s-maste上执行)
批准kubelet 的 TLS 证书请求
执行完毕后,查看节点状态如果是Ready的状态就说明一切正常:
创建kube-proxy服务配置
虽然status结果显示绿色的active (running),但也存在问题:
检查LVS状态
至此,在k8s-worker1节点上部署Kubelet和proxy完成,在K8s-worker2上重复上述过程,部署完后,回到k8s-master1节点上查看集群状态:
CNI插件官网:
在master节点创建Etcd的key
启动flannel
查看网络配置
查看路由
之后将会有一个脚本将subnet.env转写成一个docker的环境变量文件/run/flannel/docker
将配置分发到另外两个节点中(源和目标机器都要安装rsync)
所有节点重启Docker服务
运行ip a命令,如果docker0和flannel.1在一个网段,则表示正常:
查看主机路由表:
都14分钟了还没下载完nginx镜像?有问题,查看事件:
可以看到是pause-amd64这个镜像拉取不下来,切换到node节点,从阿里云上拉取再改名:
节点k8s-worker2上做同样的操作。
可以看到两个容器,一个是nginx,一个是pause-amd64。
到k8s-master1上查看pod的IP:
测试连通性:
暴露服务,创建service
这个external-ip就是某个node节点的对外IP。
至此,kubernetes集群大功告成。
删除pod:
下面的curl命令,分别返回集群中的Pod列表、Service列表、RC列表:
创建coredns服务:
状态ImagePullBackOff,查看事件:
过一会就能看到pod是running状态了。
下载dashborad文件地址,大神已经修改好了我们直接执行就可以:
查看dashborad对外映射端口
将token:一行后面的内容复制到令牌里,即可登录仪表板。
https://github.com/rootsongjc/kubernetes-handbook/tree/master/manifests/traefik-ingress
下载相关yaml文件:
其中,ingress-rbac.yaml用于service account验证,不需要修改,内容如下:
通过DaemonSet方式部署Traefik服务:
其中 traefik 监听 node 的 80 和 8580 端口,80 提供正常服务,8580 是其自带的 UI 界面,原本默认是 8080,因为环境里端口冲突了,所以这里临时改一下。
Traefik UI部署
有新service增加时,修改该文件后可以使用kubectl replace -f ingress.yaml来更新。
查看traefik关联了哪些服务:
也可通过UI:http://10.3.8.104:8580/dashboard/ 查看traefik关联了哪些服务:
浏览器访问mynginx.linuxs.top:
浏览器访问whatsmyip.linuxs.top:
刷新一下就能看到轮询到另一个服务:
到此这篇rancher端口(rancher ingress端口都是80)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-yjs/14637.html