
主旨
# 一路回车下去,什么信息都不用输入[root@node-1 ~]# ssh-keygen# 查看生成的pubkey,并复制下来,以供后面使用[root@node-1 ~]# cat root/.ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbdPY3FRjOrIgUmNUm71tQ6PoEc1qF6FHakITd+Ig/luEO3sWMWN/XpfEQY76effltPzQZ8OS7KI6uPg5qgtfFNOJjWE1JkeF55DYzBckYtJk98j05Hf+guP/FeKpZ8bWpQhonp0sAslw2N6SNQU56WIsFSTY8/QPXhOJ5/7djORY80mh6R7Xj8EZRMHw8TyRsYsJM1vNAYypUT+hHBuuP01TiI+Me7O2h0AyPjQxvwYcVQG7xca5gTS/xc+3RYswveS5FkY9ctvKiLyyyxs/uHt7RYlTMYt8d+6wDqo4gxBnsBDaylB9f1LYibyI+sqdGGztAQdm3eVy7aFUCEbjn root@node-1[root@node-1 ~]#
# node-1[root@node-1 ~]# mkdir -p root/.ssh[root@node-1 ~]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbdPY3FRjOrIgUmNUm71tQ6PoEc1qF6FHakITd+Ig/luEO3sWMWN/XpfEQY76effltPzQZ8OS7KI6uPg5qgtfFNOJjWE1JkeF55DYzBckYtJk98j05Hf+guP/FeKpZ8bWpQhonp0sAslw2N6SNQU56WIsFSTY8/QPXhOJ5/7djORY80mh6R7Xj8EZRMHw8TyRsYsJM1vNAYypUT+hHBuuP01TiI+Me7O2h0AyPjQxvwYcVQG7xca5gTS/xc+3RYswveS5FkY9ctvKiLyyyxs/uHt7RYlTMYt8d+6wDqo4gxBnsBDaylB9f1LYibyI+sqdGGztAQdm3eVy7aFUCEbjn root@node-1" >> root/.ssh/authorized_keys# node-2[root@node-2 ~]# mkdir -p root/.ssh[root@node-2 ~]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbdPY3FRjOrIgUmNUm71tQ6PoEc1qF6FHakITd+Ig/luEO3sWMWN/XpfEQY76effltPzQZ8OS7KI6uPg5qgtfFNOJjWE1JkeF55DYzBckYtJk98j05Hf+guP/FeKpZ8bWpQhonp0sAslw2N6SNQU56WIsFSTY8/QPXhOJ5/7djORY80mh6R7Xj8EZRMHw8TyRsYsJM1vNAYypUT+hHBuuP01TiI+Me7O2h0AyPjQxvwYcVQG7xca5gTS/xc+3RYswveS5FkY9ctvKiLyyyxs/uHt7RYlTMYt8d+6wDqo4gxBnsBDaylB9f1LYibyI+sqdGGztAQdm3eVy7aFUCEbjn root@node-1" >> root/.ssh/authorized_keys# node-3[root@node-3 ~]# mkdir -p root/.ssh[root@node-3 ~]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbdPY3FRjOrIgUmNUm71tQ6PoEc1qF6FHakITd+Ig/luEO3sWMWN/XpfEQY76effltPzQZ8OS7KI6uPg5qgtfFNOJjWE1JkeF55DYzBckYtJk98j05Hf+guP/FeKpZ8bWpQhonp0sAslw2N6SNQU56WIsFSTY8/QPXhOJ5/7djORY80mh6R7Xj8EZRMHw8TyRsYsJM1vNAYypUT+hHBuuP01TiI+Me7O2h0AyPjQxvwYcVQG7xca5gTS/xc+3RYswveS5FkY9ctvKiLyyyxs/uHt7RYlTMYt8d+6wDqo4gxBnsBDaylB9f1LYibyI+sqdGGztAQdm3eVy7aFUCEbjn root@node-1" >> /root/.ssh/authorized_keys
[root@node-1 ~]# ssh root@192.168.112.130Last login: Thu Mar 10 11:16:21 2022 from node-1[root@node-1 ~]# exit登出Connection to 192.168.112.130 closed.[root@node-1 ~]# ssh root@192.168.112.131Last login: Thu Mar 10 11:17:45 2022 from 192.168.112.130[root@node-2 ~]# exit登出Connection to 192.168.112.131 closed.[root@node-1 ~]# ssh root@192.168.112.132Last login: Thu Mar 10 11:17:40 2022 from 192.168.112.130[root@node-3 ~]# exit登出Connection to 192.168.112.132 closed.[root@node-1 ~]#
依赖解决
# 安装基础[root@node-1 ~]# yum install -y epel-release python36 python36-pip git# 下载kubespray源码[root@node-1 ~]# wget https://github.com/kubernetes-sigs/kubespray/archive/v2.15.0.tar.gz# 解压缩[root@node-1 ~]# tar xf v2.15.0.tar.gz[root@node-1 ~]# cd kubespray-2.15.0/[root@node-1 kubespray-2.15.0]## 安装所需插件[root@node-1 kubespray-2.15.0]# pip3.6 install setuptools_rust[root@node-1 kubespray-2.15.0]# pip3.6 install --upgrade pip[root@node-1 kubespray-2.15.0]# cat requirements.txtansible==2.9.16jinja2==2.11.1netaddr==0.7.19pbr==5.4.4jmespath==0.9.5ruamel.yaml==0.16.10[root@node-1 kubespray-2.15.0]# pip3.6 install -r requirements.txt
生成配置
# 拷贝一份集群配置示例,以供我们自己使用[root@node-1 kubespray-2.15.0]# cp -rpf inventory/sample inventory/mycluster# 环境变量配置[root@node-1 kubespray-2.15.0]# export USE_REAL_HOSTNAME=true[root@node-1 kubespray-2.15.0]# export CONFIG_FILE=inventory/mycluster/hosts.yaml# 这里的IP地址一定要写成自己集群的IP地址哈,有几台就写几个[root@node-1 kubespray-2.15.0]# declare -a IPS=(192.168.112.130 192.168.112.131 192.168.112.132)# 生成配置文件,此处使用的是k8s提供的脚本来生成配置文件[root@node-1 kubespray-2.15.0]# python3.6 contrib/inventory_builder/inventory.py ${IPS[@]}
个性化配置
[root@node-1 kubespray-2.15.0]# vim inventory/mycluster/hosts.yamlall:hosts:node-1:ansible_host: 192.168.112.130ip: 192.168.112.130access_ip: 192.168.112.130node-2:ansible_host: 192.168.112.131ip: 192.168.112.131access_ip: 192.168.112.131node-3:ansible_host: 192.168.112.132ip: 192.168.112.132access_ip: 192.168.112.132children:kube-master:hosts:node-1:node-2:kube-node:hosts:node-1:node-2:node-3:etcd:hosts:node-1:node-2:node-3:k8s-cluster:children:kube-master:kube-node:calico-rr:hosts: {}
[root@node-1 kubespray-2.15.0]# vim inventory/mycluster/group_vars/all/containerd.yml
[root@node-1 kubespray-2.15.0]# vim inventory/mycluster/group_vars/all/all.yml# 这是一个总的全局配置文件,这里不一一介绍里面可以修改什么内容,举几个例子吧# etcd的工作目录# 相关端口号# 代理地址 等都可以在这里进行修改
# 修改代理地址[root@node-1 kubespray-2.15.0]# vim inventory/mycluster/group_vars/all/all.yml# 找到以下两行,取消注释,然后写上自己的代理地址,别用我的哈,我的是内网,你连不上http_proxy: "http://192.168.112.100"https_proxy: "http://192.168.112.100"[root@node-1 kubespray-2.15.0]#
[root@node-1 kubespray-2.15.0]# vim inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml# 修改master节点的IP地址池kube_service_addresses: 10.200.0.0/16# 修改worker节点的IP地址池kube_pods_subnet: 10.233.0.0/16# 修改底层容器,由docker咱们改成containerdcontainer_manager: containerd[root@node-1 kubespray-2.15.0]#
[root@node-1 kubespray-2.15.0]# vim inventory/mycluster/group_vars/etcd.ymletcd_deployment_type: host[root@node-1 kubespray-2.15.0]#
[root@node-1 kubespray-2.15.0]# vim inventory/mycluster/group_vars/k8s-cluster/addons.yml# 代理,默认是falseingress_nginx_enabled: true# 界面(可选),这里是默认注释的状态,取消注释即可dashboard_enabled: true
往期推荐


添加关注,带你高效运维
文章转载自运维家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




