ubuntu18 kubespray 安装k8s集群

vagrant 创建三台主机

均在root用户下操作

主机 ip
node1 192.168.56.101
node2 192.168.56.102
node3 192.168.56.103

修改三台主机允许ssh登录方式

vim /etc/ssh/sshd_config
复制代码

修改三个值

PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
复制代码

重启sshd 服务

service sshd restart
复制代码

因为vagrant root密码我暂时不清楚,所以直接手动修改root密码

passwd
复制代码

##配置无密钥登录
node1 上执行,均在root账号下执行

ssh-keygen
复制代码

一路回车

image.png

复制公钥到其他主机node2

 ssh-copy-id root@192.168.56.102
复制代码

image.png

重复上面步骤复制到node3和node1

安装pip3

 apt update && apt install python3-pip
复制代码

克隆kubespray

git clone https://github.com/kubernetes-sigs/kubespray.git
git checkout release-2.16
复制代码

按官网步骤

# Install dependencies from ``requirements.txt``
sudo pip3 install -r requirements.txt

# Copy ``inventory/sample`` as ``inventory/mycluster``
cp -rfp inventory/sample inventory/mycluster

# Update Ansible inventory file with inventory builder
# 修改为自己的ip
declare -a IPS=(192.168.56.101 192.168.56.102 192.168.56.103)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

# Review and change parameters under ``inventory/mycluster/group_vars``
cat inventory/mycluster/group_vars/all/all.yml
# 这个文件包含k8s集群的网络等基础配置,可进行修改
cat inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml

# Deploy Kubespray with Ansible Playbook - run the playbook as root
# The option `--become` is required, as for example writing SSL keys in /etc/,
# installing packages and interacting with various systemd daemons.
# Without --become the playbook will fail to run!
ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root cluster.yml
复制代码

dashboard安装

kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml

复制代码

获取token

# 在第一个 Master 节点上执行此命令
# 管理员token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}')   

# 普通用户token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-viewer | awk '{print $1}')
复制代码

访问dashboard

kubectl get svc -n kube-system
## 输出
[root@instance-ji0xk9uh-1 ~]# kubectl get svc -n kube-system
NAME       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
kube-dns   ClusterIP   10.96.0.10     <none>        53/UDP,53/TCP,9153/TCP   65m
kuboard    NodePort    10.96.208.85   <none>        80:32567/TCP             4m6s
复制代码

访问任意worke节点32567 端口即可访问到board

image.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享