使用Ansible自动化运维安装Kubernetes

一、环境规划(使用的是VMvare 这里为了节省资源这是ansible和master安装在一块)

代码仓库地址:shuaichao130/kubernetes: ansible自动化部署kubernetes1.20.7 (github.com)

1、主机规划(建议最低2U,3G)

k8s-master192.168.252.11
k8s-node01192.168.252.12
k8s-node02192.168.252.13

2、软件规划(注意软件之间的兼容性)

kubernetes 1.20.7版本

docker 19.03版本

3、网段规划

pod网段: 10.96.0.0/16

service网段: 172.16.0.0/16

二、安装Ansible

1、配置SSH免密

[root@k8s-master ~]# ssh-keygen -t rsa
[root@k8s-master ~]# ssh-copy-id root@192.168.252.12
[root@k8s-master ~]# ssh-copy-id root@192.168.252.13

2、在master上安装ansible

[root@k8s-master ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
[root@k8s-master ~]# yum install -y ansible

3、在/etc/ansible/hosts中添加主机

[root@k8s-master ~]# vim /etc/ansible/hosts
[all]
192.168.252.11
192.168.252.12
192.168.252.13
[master]
192.168.252.11

三、编写k8s所需要的基础配置和参数脚本

1、编写ansible-playbook拉取github上k8s脚本(如果报错,使用yum install -y wget安装wget),由于国内连接github可能会失败,这里选择直接克隆仓库

[root@k8s-master ~]# cat k8s.yaml 
- hosts: all
  user: root
  gather_facts: false
  tasks:
    - name: wget all.sh
      shell: wget https://gitee.com/shuaichao0306/ansible-kubernetes/raw/main/all.sh
    - name: chmod all.sh
      file: path=/root/all.sh mode=0777
    - name: bash all.sh
      script: ./all.sh

2、执行yaml文件

ansible-playbook k8s.yaml

3、重启所有机器,让配置生效

reboot

4、安装docker,kubectl,kubeadm,kubelet,并添加初始化集群添加calico

[root@k8s-master ~]# cat docker-kubeadm.yaml 
- hosts: all
  user: root
  gather_facts: false
  tasks:
    - name: yum docker
      yum: name=docker-ce-19.03* state=present
    - name: start docker
      service: 
        name: docker
        state: started 
        enabled: yes
    - name: systemctl daemon-reload
      shell: systemctl daemon-reload
    - name: yum kubeadm kubelet kubectl
      shell: yum install -y --disableexcludes=main kubeadm-1.20.7 kubelet-1.20.7 kubectl-1.20.7
    - name: xg config
      shell: sed -i 's/^KUBELET_EXTRA_ARGS=.*/KUBELET_EXTRA_ARGS="--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com\/google_containers\/pause-amd64:3.2"/' /etc/sysconfig/kubelet
    - name: systemctl start kubelet
      service: 
        name: kubelet
        state: started
        enabled: yes
[root@k8s-master ~]# cat master.yaml 
- hosts: master
  user: root
  gather_facts: false
  tasks:
    - name: wget calico
      shell: wget https://gitee.com/shuaichao0306/ansible-kubernetes/raw/main/calico-etcd.yaml
    - name: wget master.sh
      shell: wget https://gitee.com/shuaichao0306/ansible-kubernetes/raw/main/master.sh
    - name: chmod master.sh
      file: path=/root/master.sh mode=0777
    - name: bash master.sh
      script: ./master.sh

5、生成加入工作节点的token

kubeadm token create --print-join-command

6、在node节点执行token

[root@node02 ~]# kubeadm join 192.168.252.11:6443 --token 85virb.krkzp1vmsmkzbp2g \
> --discovery-token-ca-cert-hash sha256:0b70f0112c8a7ccfe2901324734386a1d41843a8b3217a61baa6d29fc97a953c

7、重启所有机器

reboot

8、查看节点状态和pod运行状态

kubectl get nodes
kubectl get pods -A
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇