摘要:截至撰写本文时,安装集群分支不稳定。 使用您安装的版本,尤其是切换到最新版本。 确保每个都已安装。 打开每一个,更改它,然后重新启动。 请参阅本文以查找运行它的服务器。 作为一般规则,每个运行命令都会连接并安装一个集群。
GitHub:https://github.com/chanjarste...
使用 Kubespray 安装 k8s 集群
截至在撰写本文时,Kubespray 的 master 分支不稳定。 请使用release版本进行安装,并专门切换到最新的标签。
准备目标节点
假设准备了三台服务器,则准备多台服务器。
在每个节点上安装操作系统(Ubuntu 16.04 Server LTS或CentOS 7),并提供可以sudo的用户或直接拥有root用户。
确保每个节点上都安装了Python 2.7。
在各节点上启用IPv4转发,修改/etc/sysctl.conf,然后重启。 。 请参阅这篇文章。
net.ipv4.ip_forward = 1
运行Kubespray
找到一台运行Kubespray的服务器,Kubespray原理如下。 通过 ssh 连接到每个目标节点并运行命令来安装 k8s 集群。
上传服务器的.ssh/id_rsa.pub到目标节点:
ssh-copy-id user@target[k4 ]node [ k4]host
在 Kubespray 所在机器上安装 bash-git-prompt。
前往 Kubespray 项目存储库并下载代码。
git clone https://github.com/kubernetes-incubator/kubespray.git
使用中科大Docker镜像的镜像地址并执行执行命令如下: 命令:
搜索。 -name "*.yml" | xargs -n1 -I{} sed -i "s/gcr.io/google-containers //gcr.mirrors.ustc.edu.cn/ google-containers//" {}
查找。 - 名称 "*.yml" | xargs [ k4]n1 -I sed -i "s/gcr.io/google_containers//gcr.mirrors.ustc.edu.cn/google-containers/ /" {}
查找。 -名称“*.yml”| xargs -n1 -I{} sed -i“s/quay.io/quay.mirrors.ustc.edu.cn/”{}
如果中国科学技术大学地址失效,请更改anjia0532地址。
找到。 -名称“*.yml”| xargs -n1 -I sed -i“s/gcr.io/google-containers//anjia0532/google-containers./”{}
找到它。 -名称“*.yml”| xargs -n1 -I{} sed -i“s/gcr.io/google_containers//anjia0532/google-containers./" {}
roles/docker/defaults/main.yml 更改配置Docker仓库镜像的文件:
docker_ubuntu_repo_base_url: "http://mirrors.aliyun.com/docker-ce/linux/ubuntu" docker_ubuntu_repo_gpgkey: "http://mirrors.aliyun . com /docker-ce/linux/ubuntu/gpg"dockerproject_apt_repo_base_url:"https://mirrors.tuna.tsinghua.edu.cn/docker/apt/repo"dockerproject_apt_repo_gpgkey:"https://mirrors.tuna.tsinghua . edu .cn/docker/apt/gpg"
确保安装了 Kubespray 的机器上安装了 pip
在运行 ansible 之前 [ k4]playbook 在命令 inventory/mycluster/group_vars/k8s-cluster.yml 文件更改之前:
efk_enabled: true
ingress_nginx_enabled: true
kubeconfig_localhost: true
kubectl_localhost: true
更改角色/network_plugin/calico/defaults/main.yml文件中的calico_mtu参数根据官方文档设置每个服务器的MTU。 简而言之,kubespray默认启用了calico的IP-in-IP模式,所以它的MTU必须是网卡MTU-20。
按照 Project Warehouse 的指导运行命令。
安装完成后,找到 inventory/mycluster/artifacts/admin.conf 文件。 将其复制到您的 ~ /.kube/config 文件中,您可以使用 kubectl 来管理 Kubespray 机器上的 k8s。
故障排除 您收到权限被拒绝的提示。
在运行 Ansible playbook 时运行特定命令时会出现此类错误,这可能是由于以下原因造成的。 ssh 到目标节点时没有 root 权限。
教程的最后一步ansible-playbook -i inventory/mycluster/hosts.ini cluster.yml in-b [ k4][ k4]成为-用户--成为-方法和其他参数。
在我写这篇文章时,目标节点是ubuntu云镜像,所以只需添加-b参数即可。 否则,请自行研究。
-u 用户名 不要忘记添加参数。
提示无法解析主机
这是因为每个目标节点都有主机名,但/etc/hosts下的设置因为没有。 请修复它。 每个目标节点上的 /etc/hosts,示例:
127.0.0.1 localhost kube-1
提示 failed! ip in ansible_all_ipv4_addresses
此错误发生在云环境中。发生。 目标节点有两个IP:一个内部IP(外部不可访问)和一个外部IP(在OpenStack环境中,一个项目网络IP和一个浮动IP)。
当前需要修改inventory/mycluster/hosts.ini,将节点的IP属性修改为内部IP,如下:
[全部]node1 ansible_host=172.50.10.2 ip=192.168.1.4node2 ansible_host=172.50.10.13 ip=192.168.1.8node3 ansible_host=172.50.10.15 ip=192.168.1.9...
使用kubectl访问
也可以使用kubectl访问master-node下的k8s,但是有点麻烦。 事实上,您可以在任何计算机上安装 kubectl 并远程访问它。
方法很简单。 将上面提到的 .kube/config 放在您计算机上的某个目录中(假设您使用的是 MAC 或 Linux 系统)。
注意:在OpenStack环境中,每个节点都会分配一个浮动IP,这会阻止使用kubectl。 现在,您需要执行以下操作:
Comment.clusters.cluster.certificate-authority-data
Add 。集群.集群.不安全-skip-tls-verify: true
将.clusters.cluster.server的IP地址更改为可访问的外部IP地址(此出现这种情况(OpenStack环境中的浮动IP)。
访问Dashboard
如果安装成功,您可以访问k8s Dashboard查看安装结果,您可以打开您的安装结果。浏览器并转到 https://{master's IP}:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/以下内容。出现问题:要登录,您必须首先创建用户。
但是,Kubespray 不会为您创建用户。按照指南创建用户、获取令牌并使用该令牌登录。 .
创建用户admin-user
创建一个名为b>admin-user.yaml的新文件:如下:
apiVersion: v1kind: ServiceAccountmetadata: name: admin-用户命名空间: kube-system
kube-masterkubectl create - f admin-user.yaml
绑定角色:
admin[k4 ]user-role.yaml 包含以下内容:
apiVersion: rbac .authorization.k8s.io /v1kind:ClusturRoleBindingmetadata:名称:admin-userroleRef:apiGroup:rbac.authorization.k8s.io 类型:ClusterRole 名称:cluster-adminsubjects:- 类型:ServiceAccount 名称:admin-user
获取令牌:
kubectl -n kube-系统描述秘密 $(kubectl -n kube-system get秘密 | grep admin-user | awk "{print $1}")
[calico-mtu]:https://docs.projectcalico.org/v2.2/usage/configuration/ mtu[kubespray-repo]:https://github.com/kubernetes-incubator/kubespray[bash-git-prompt]:https://github.com/magicmonty/bash- git-prompt[启用-ipv4-转发]:http://www.ducea.com/2006/08/01/how-to-启用-ip-转发-在-linux/[k8s-dashboard-创建-用户]:https://github.com/kubernetes/dashboard/wiki/Creating-示例-用户[anjia0532-镜像]:https://github.com/anjia0532/gcr.io_mirror
评论前必须登录!
注册