主机信息
主机IP | 主机名 | 角色 |
192.168.124.61 | master | kube-apiserver,kube-controller-manager,kube-scheduler,etcd |
192.168.124.62 | node1 | kubelet,kube-proxy,etcd |
192.168.124.63 | node2 | kubelet,kube-proxy,etcd |
安装ansible
yum install ansible -y
修改配置文件,增加节点
vi /etc/ansible/hosts
# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
# - Comments begin with the '#' character
# - Blank lines are ignored
# - Groups of hosts are delimited by [header] elements
# - You can enter hostnames or ip addresses
# - A hostname/ip can be a member of multiple groups
# Ex 1: Ungrouped hosts, specify before any group headers.
## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10
# Ex 2: A collection of hosts belonging to the 'webservers' group
## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110
# If you have multiple hosts following a pattern you can specify
# them like this:
## www[001:006].example.com
[k8s]
192.168.124.61
192.168.124.62
192.168.124.63
# Ex 3: A collection of database servers in the 'dbservers' group
## [dbservers]
##
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57
# Here's another example of host ranges, this time there are no
# leading 0s:
配置免密登录
1、生产秘钥
ssh-keygen -t rsa
2、分发秘钥
ansible k8s -m authorized_key -a "user=root key='{{lookup('file','/root/.ssh/id_rsa.pub')}}'"
上传文件
链接:https://pan.baidu.com/s/1UTpmqrX3o4ZPESlsSf7B6A
提取码:1wry
解压文件
unzip k8s1183.zip [root@master ~]# ls anaconda-ks.cfg k8s k8s1183.zip [root@master ~]# cd k8s [root@master k8s]# ls install.yml inventory k8s_files k8s_install
修改文件里面的ip,安装目录等
[root@master k8s]# vi inventory [master1] 192.168.124.61 ip=192.168.124.61 node_name=master [node] 192.168.124.62 ip=192.168.124.62 node_name=node1 192.168.124.63 ip=192.168.124.63 node_name=node2 #[master] #192.168.124.61 ip=192.168.124.61 #多个master [etcd] 192.168.124.61 ip=192.168.124.61 etcdname=etcd1 192.168.124.62 ip=192.168.124.62 etcdname=etcd2 192.168.124.63 ip=192.168.124.63 etcdname=etcd3 [docker] 192.168.124.61 192.168.124.62 192.168.124.63 [k8s:children] master1 node [k8s:vars] k8s_install_home="/opt" ansible_home="/root/k8s" tmp_dir="/tmp/k8s" ### etcd ### etcd1="192.168.124.61" etcd2="192.168.124.62" etcd3="192.168.124.63" etcdclustes="etcd1=https://192.168.124.61:2380,etcd2=https://192.168.124.62:2380,etcd3=https://192.168.124.63:2380"
执行安装命令
ansible-playbook -i inventory install.yml
查看执行结果
查看etcd
/opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/etcd.pem --key-file=/opt/etcd/ssl/etcd-key.pem --endpoints="https://192.168.124.61:2379,https://192.168.124.62:2379,https://192.168.124.63:2379" cluster-health
登录
选择token,复制里面的taoken
查看部署状态
[root@master k8s]# kubectl get all --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE ingress-nginx pod/nginx-ingress-controller-mgkcx 1/1 Running 0 7m35s ingress-nginx pod/nginx-ingress-controller-xx79x 1/1 Running 0 7m34s kube-system pod/coredns-5675d5b4d-nhjnp 1/1 Running 0 7m47s kube-system pod/kube-flannel-ds-amd64-kbngx 1/1 Running 0 7m44s kube-system pod/kube-flannel-ds-amd64-r552t 1/1 Running 0 7m44s kubernetes-dashboard pod/dashboard-metrics-scraper-66b49655d4-5bhk7 1/1 Running 0 7m44s kubernetes-dashboard pod/kubernetes-dashboard-5b8d566858-c7q92 1/1 Running 0 7m44s NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default service/kubernetes ClusterIP 10.254.0.1 <none> 443/TCP 12m ingress-nginx service/ingress-nginx ClusterIP 10.254.128.96 <none> 80/TCP,443/TCP 7m46s kubernetes-dashboard service/dashboard-metrics-scraper ClusterIP 10.254.111.247 <none> 8000/TCP 7m44s kubernetes-dashboard service/kubernetes-dashboard NodePort 10.254.44.153 <none> 443:30001/TCP 7m45s NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE ingress-nginx daemonset.apps/nginx-ingress-controller 2 2 2 2 2 <none> 7m46s kube-system daemonset.apps/kube-flannel-ds-amd64 2 2 2 2 2 <none> 7m46s NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE kube-system deployment.apps/coredns 1/1 1 1 7m48s kubernetes-dashboard deployment.apps/dashboard-metrics-scraper 1/1 1 1 7m44s kubernetes-dashboard deployment.apps/kubernetes-dashboard 1/1 1 1 7m44s NAMESPACE NAME DESIRED CURRENT READY AGE kube-system replicaset.apps/coredns-5675d5b4d 1 1 1 7m47s kubernetes-dashboard replicaset.apps/dashboard-metrics-scraper-66b49655d4 1 1 1 7m44s kubernetes-dashboard replicaset.apps/kubernetes-dashboard-5b8d566858 1 1 1 7m44s