欢迎访问我的博客,你的支持,是我最大的动力!

使用kubeadm部署kubernetes v1.13.2-阿里源适合国内网络环境

Docker 马从东 443℃ 评论
目录:
[显示]

这里安装版本 v1.13.2
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.13.md#downloads-for-v1132

各组件版本列表:

kubernetes                                v1.13.2 (kubeadm kubectl kubelet等)
docker-ce                                 18.09.0
kube-controller-manager         v1.13.2
kube-proxy                                v1.13.2
kube-apiserver                          v1.13.2
kube-scheduler                         v1.13.2
coredns                                      1.2.6
etcd                                             3.2.24
pause                                          3.1
kubernetes-dashboard-amd64   v1.10.1
flannel                                         v0.10.0-amd64
nginx-ingress-controller             0.22.0
集群规划
主机 角色 hostname 系统
192.168.1.110 master,node kube-master CentOS 7.3
192.168.1.120 node kube-node1 CentOS 7.3
192.168.1.130 node kube-node2 CentOS 7.3

Pod网络:10.244.0.0/16
镜像仓库:registry.aliyuncs.com/google_containers

服务器初始化

使用kubeadm部署集群
配置 Aliyun Kubernetes 源

安装kubeadm

禁用 Swap

对于主机上有其他服务或内存资源稍显不足时,可不禁用Swap
编辑 kubelet 配置文件 /etc/sysconfig/kubelet 忽略禁止使用Swap的限制
KUBELET_EXTRA_ARGS="--fail-swap-on=false"

安装docker

使用代理访问gcr.io的方法
在/usr/lib/systemd/system/docker.service中
[service]配置段添加
Environment="HTTP_PROXY=http://IP:Port" 或
Environment="HTTPS_PROXY=https://IP:Port"
若FORWARD链默认策略为DROP 再添加
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

镜像加速
https://registry.docker-cn.com
https://docker.mirrors.ustc.edu.cn   中科大公共镜像加速服务

使用kubeadm初始化master节点

从打印的日志中,可以看到,docker 18.09.0还没有验证过,验证过最新的版本是18.06
创建的文件
# kubeadm环境标签 /var/lib/kubelet/kubeadm-flags.env
# kubelet配置文件 /var/lib/kubelet/config.yaml
# 证书文件目录 /etc/kubernetes/pki
# 配置文件目录 /etc/kubernetes
# 创建pod的yaml文件目录 /etc/kubernetes/manifests

参考:
方式一:使用命令参数
kubeadm init \
--kubernetes-version=v1.12.1 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=0.0.0.0 \
--ignore-preflight-errors=Swap
说明:
--kubernetes-version 集群版本号 要与kubelet的版本号相同
--pod-network-cidr Pod网络地址范围,使用flannel时,默认为10.244.0.0/16
--service-cidr Service网络范围
--apiserver-advertise-address 0.0.0.0表示监听所有可用地址
--ignore-preflight-errors 忽略哪些运行时错误信息,Swap表示忽略因swap未关闭而导致的错误
方式二:使用配置文件
kubeadm init --config kubeadm-config.yaml --ignore-preflight-errors=Swap

和方式一功能一致,但定义了kubeProxy模式为ipvs

配置kubectl访问集群 查看集群信息

查看集群信息

安装flannel

master参与工作负载

使用kubeadm初始化的集群,出于安全考虑,Pod不会被调度到master节点,即master不参与工作负载
原因是 master节点被打上了污点:node-role.kubernetes.io/master:NoSchedule
若要让master参与工作负载,取消污点即可

kubectl命令补全

项目地址:https://github.com/scop/bash-completion

测试dns

node节点加入集群

token过期的处理

从集群中删除节点

kube-proxy使用ipvs转发

加载ipvs所有模块:
/etc/sysconfig/modules/ipvs.modules  # 该文件保证开机自动加载

chmod +x /etc/sysconfig/modules/ipvs.modules
/etc/sysconfig/modules/ipvs.modules   # 手动执行一次

安装Dashboard

安装 ingress-nginx

注意:若后端为HTTPS,配置会更加复杂 参看:使用ingress访问kubernetes-dashboard

ingress使用示例:

使用ingress访问kubernetes-dashboard

 

参考:
1、使用kubeadm快速部署kubernetes v1.13.1
2、bash-completion
3、利用 Kubeadm部署 Kubernetes 1.13.1 集群实践录
4、使用Kubespray部署生产可用的Kubernetes集群(1.11.2)
5、

 

转载请注明:轻风博客 » 使用kubeadm部署kubernetes v1.13.2-阿里源适合国内网络环境

喜欢 (0)or分享 (0)