CentOS 7下离线方式部署kubernetes 1.16.0

Kubernetes在2019年9月18日发布了年度的第三个版本1.16,这篇文章介绍一下如何使用Easypack的Ansible脚本方式在CentOS7上完成Kubernetes的一键安装。

环境构成说明 设定项详细信息
构成   一主一从(同一台机器)  
IP   192.168.163.132  
网卡名称   enp0s3  
Kubernetes   1.16.0  
Docker   18.09.7  
ETCD   3.3.13  
FLANNEL   0.10.0  

安装步骤
步骤1:下载easypack

[root@host132 tmp]# git clone https://github.com/liumiaocn/easypack.git
Cloning into ‘easypack’…
…省略
[root@host132 tmp]#

步骤2: 下载相关离线二进制文件

注:目前直接使用download的role,会下载并打包生成1.15的kubernetes相关的二进制文件,然后手动下载kubernetes的二进制文件进行替换即可,下载目录为:

https://dl.k8s.io/v1.16.0/kubernetes-server-linux-amd64.tar.gz

步骤3: 调整配置
只需要修改common_vars.yml的如下两处设定即可

设定项设定参数设定值
var_all_in_one_hostip   Master节点IP地址   192.168.163.132  
var_flannel_opt_iface   网卡名称   enp0s3  


步骤4: 一键安装
前提条件

条件1:  安装ansible,建议版本2.4.2.0或以上
条件2:  本机连接的ssh设定完毕,简单来说ssh-copy-id 192.168.163.132(请使用本机IP)执行完成


安装命令:
ansible-playbook 10.all-in-one.yml

安装示例

[root@host132 ansible]# ansible-playbook 10.all-in-one.yml

PLAY [all-in-one] **********************************************************************************************************************

TASK [clean : stop etcd service] *******************************************************************************************************
...省略
TASK [dashboard : create clusterrolebinding for dashboard] *****************************************************************************
changed: [localhost]

PLAY RECAP *****************************************************************************************************************************
localhost                  : ok=103  changed=95  unreachable=0    failed=0 

[root@host132 ansible]#

结果确认 版本确认

[root@host132 ansible]# kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
[root@host132 ansible]#

节点确认

[root@host132 ansible]# kubectl get node -o wide
NAME              STATUS  ROLES    AGE  VERSION  INTERNAL-IP      EXTERNAL-IP  OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
192.168.163.132  Ready    <none>  81s  v1.16.0  192.168.163.132  <none>        CentOS Linux 7 (Core)  3.10.0-957.el7.x86_64  docker://18.9.7
[root@host132 ansible]#

coredns与dashboard服务确认

[root@host132 ansible]# kubectl get services -n kube-system
NAME                  TYPE        CLUSTER-IP    EXTERNAL-IP  PORT(S)        AGE
kube-dns              ClusterIP  10.254.0.2    <none>        53/UDP,53/TCP  2m15s
kubernetes-dashboard  NodePort    10.254.28.13  <none>        443:33307/TCP  110s
[root@host132 ansible]#
[root@host132 ansible]# kubectl get pods -n kube-system
NAME                                    READY  STATUS    RESTARTS  AGE
coredns-59db588569-mx6vw                1/1    Running  0          2m24s
kubernetes-dashboard-7c54d59f66-l2pqx  1/1    Running  0          119s
[root@host132 ansible]#

dashboard的token确认

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/360e883964d2ad17bc12cc922f062e1b.html