CentOS 7下离线方式部署kubernetes 1.16.0

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

环境构成说明

设定项详细信息
构成一主一从(同一台机器)
IP192.168.163.132
网卡名称enp0s3
Kubernetes1.16.0
Docker18.09.7
ETCD3.3.13
FLANNEL0.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_hostipMaster节点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确认

[root@host132 ansible]# dashboard_secret=`kubectl get secrets -n kube-system | grep dashboard-admin | awk ‘{print $1}’`
[root@host132 ansible]# kubectl describe secret -n kube-system ${dashboard_secret} | grep -E ‘^token’ | awk ‘{print $2}’
eyJhbGciOiJSUzI1NiIsImtpZCI6Imt2OG1UdHFzT0t5Tnp6VjRtNlZORmt6Tk5LRzhFRG01WTlXaU16LUVZNFkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tNzdsbDgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZDk1NmJjYzItN2ZiNS00NDdmLThlNWEtNjM3ZTQ2NmNkOTc3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.sImW-gcsHr7NJjEbIOOO1TRB0ZlF-CFRb9AXq8O38qf9E0xSZPUXeRFf8i9AST1HDZn8ugAv77TVtzj8AJaL4hxz6LylQpjhkpBxkpRMA7A7V8nhaYPxSvZUJBSpj_h2NcXNrpj7m0_V0axk9VguE_kcuTWlr2sR7x35Xmf-lxWS0yQAUkvaX26F59IBVCXZ2_A5cHWbfBvufBcGPrhKuVfJiHTUyDLha37Ze1OCCsPJP-HDnwniJsdIac89M9w9QZ1qNrtRXAlKLN24pXg_Ki5dkmYU4ImkF4YRsHAfzqkmaYHc-UoKUzJET1UqjHyqKoK64JuNHeer4RwADBF7CQ
[root@host132 ansible]#

dashboard确认

使用https://localhost:33307登陆dashboard界面,选择token方式,并粘贴上述token信息

 登陆之后即可看到dashboard可视化界面展示的Kubernetes相关的信息

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/223882.html<

(0)
管理的头像管理
上一篇2025-04-16 04:18
下一篇 2025-04-16 04:19

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注