Ansible集群部署Kubernetes

用Ansible集群部署K8s

前提:

#主节点要安装有ansible,并且配置好inventory和ansible.cfg

$ mkdir user_homepath/ansible
$ cd ansible/of/homepath

#家目录的ansible路径下配置好inventory,ansible.cfg文件
$ vim inventory
	[xxx]
	IP
$ vim ansible.cfg
	inventory = path/to/inventory
	host_key_checking= false #控制远端节点时候免密认证

主节点操作:

$ ansible all -m command -a "sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux"

$ ansible all -m yum_repository -a "name=Kubernetes description='install_k8s' baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 gpgcheck=yes gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg  enabled=yes"
#配置k8s的yum源,注意这里gpgkey有两个
$ ansible all -m command  -a "ls /etc/yum.repos.d" #查看是否是yum.repos.d目录是否已经被配置好了K8S的yum源
$ ansible all -m command -a "yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo" #配置docker yum源

$ ansible all -m command  -a "yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4 docker-ce" #集群部署K8s

$ ansible all -m command -a "systemctl enable --now kubelet docker" 
# 创建从 /etc/systemd/system/multi-user.target.wants/xxx.service 到 /usr/lib/systemd/system/xxx.service 的符号链接。——立即生效且开机能自动启用这两个服务

$ ansible all -m command -a "systemctl is-active kubelet docker" #查看状态
$ ansible all -m copy -a "content='{
  \"exec-opts\": [\"native.cgroupdriver=systemd\"],
  \"registry-mirrors\": [\"https://ud6340vz.mirror.aliyuncs.com\"]
}' dest=/etc/docker/daemon.json"

$ ansible all -m command -a "systemctl daemon-reload "
$ ansible all -m command -a "systemctl restart docker"
$ ansible all -m shell -a "echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables"


$ kubeadm init --image-repository=registry.aliyuncs.com/google_containers
# 主控节点操作这条指令,当然你也可以将所有节点都设为主控节点,但没必要
# 记得把 kubeadm join xxx 保存起来
# 忘记了kubeadm join可以在主控节点重新获取,指令如下:
$ kubeadm token create --print-join-command

$ mkdir -p $HOME/.kube
$ cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ chown $(id -u):$(id -g) $HOME/.kube/config# 等同于chown 用户名:组名 $HOME/.kube/config
# 主控节点操作,必须完成上述cp -i操作,不然会 $ kubectl get node 时会遇到错误提示如下一行:
# The connection to the server localhost:8080 was refused - did you specify the right host or port?
# 复制授权文件,以便 kubectl 可以有权限访问集群
# 如果你其他节点需要访问集群,需要从主节点复制这个文件过去其他节点,在其他机器上创建 ~/.kube/config 文件也能通过 kubectl 访问到集群,集群指令如下:
	$ ansible all -m shell -a "mkdir -p $HOME/.kube"
	$ ansible all -m copy -a "src=$HOME/.kube/config dest=$HOME/.kube/config owner=root group=root"
#需要注意的是copy中src是本机的目录,dest是被控节点的目录

$ kubectl get node #获取k8s节点信息

$ ansible all -m shell -a "kubeadm join xxx" 
# 在主控节点用集群化管理工具(我用的是ansible)进行多被控节点加入k8s集群管理

k8s被控节点操作:(可忽略———建议是在主节点部署多节点加入)

$ kubeadm join xxx
#使用主控节点kubeadm token create --print-join-command获取到的加入信息在被控节点处进行加入,但是一般这样要一个个尝试,失去了集群管理的意义,所以建议还是在主控节点用集群化管理工具(我用的是ansible)进行多节点加入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值