恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
利用Ansible部署kubernetes运行环境
首页
资讯中心
/
利用Ansible部署kubernetes运行环境
利用Ansible部署kubernetes运行环境
发布时间:2026/8/24 4:26:47
一.安装ansible[rootharbor ~]# vim /etc/yum.repos.d/epel.repo [epel] name epel baseurl https://mirrors.aliyun.com/epel/9/Everything/x86_64/ gpgcheck 0 [rootharbor ~]# dnf install ansible-core.x86_64 ansible.noarch -y二.配置所需用户[rootharbor ~]# useradd devops [rootharbor ~]# echo lee | passwd --stdin devops 更改用户 devops 的密码 。 passwd所有的身份验证令牌已经成功更新 [rootharbor ~]# su - devops [devopsharbor ~]$ mkdir ansible [devopsharbor ~]$ cd ansible/ [devopsharbor ansible]$三.生成ansible的临时配置文件并建立运行环境[devopsharbor ansible]$ vim inventory [servers] 172.25.254.100 172.25.254.20 172.25.254.10 [devopsharbor ansible]$ vim ansible.cfg [defaults] inventory /home/devops/ansible/inventory remote_user root ask_pass false host_key_checking false [devopsharbor ansible]$ ansible all -m ping 172.25.254.20 | SUCCESS { ansible_facts: { discovered_interpreter_python: /usr/bin/python3 }, changed: false, ping: pong } 172.25.254.100 | SUCCESS { ansible_facts: { discovered_interpreter_python: /usr/bin/python3 }, changed: false, ping: pong } 172.25.254.10 | SUCCESS { ansible_facts: { discovered_interpreter_python: /usr/bin/python3 }, changed: false, ping: pong } #建立用户 [devopsharbor ansible]$ ansible all -m user -a namedevops statepresent [devopsharbor ansible]$ ansible all -m shell -a echo lee | passwd --stdin devops [devopsharbor ansible]$ ansible all -m lineinfile -a path/etc/sudoers linedevops ALL(ALL) NOPASSWD: ALL insertafterEOF四.生成ansible的主配置文件并测试[devopsharbor ansible]$ vim ansible.cfg [defaults] inventory /home/devops/ansible/inventory remote_user devops ask_pass false host_key_checking false [privilege_escalation] become true become_method sudo become_user root become_ask_pass false [devopsharbor ansible]$ ansible all -m shell -a whoami 172.25.254.10 | CHANGED | rc0 root 172.25.254.100 | CHANGED | rc0 root 172.25.254.20 | CHANGED | rc0 root五.利用ansible剧本部署docker[devopsharbor ansible]$ vim kubernetes-devops.yml - name: devops k8s from ansible hosts: all tasks: - name: setup docker repo yum_repository: name: docker description: docker baseurl: http://172.25.254.254:4444/docker file: docker gpgcheck: no - name: install docker dnf: name: docker-ce state: present - name: setup docker.service replace: path: /lib/systemd/system/docker.service regexp: ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock replace: ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock --iptablestrue - name: setup docker registry copy: content: | { registry-mirrors:[https://reg.timinglee.org] } dest: /etc/docker/daemon.json - name: setup docker certs file: path: /etc/docker/certs.d/reg.timinglee.org state: directory - name: cp certs file copy: src: {{item.src}} dest: {{item.dest}} loop: - src: /etc/docker/certs.d/reg.timinglee.org/ca.crt dest: /etc/docker/certs.d/reg.timinglee.org/ca.crt - src: /etc/docker/certs.d/reg.timinglee.org/ca.crt dest: /etc/pki/ca-trust/source/anchors/ca.crt - name: load module copy: dest: {{item.dest}} content: {{item.value}} loop: - dest: /etc/modules-load.d/docker_mod.conf value: br_netfilter - dest: /etc/sysctl.d/docker.conf value: | net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 net.ipv4.ip_forward 1 - name: update ca cert shell: update-ca-trust extract;sysctl --system - name: start services service: name: {{item}} state: restarted enabled: yes loop: - docker - systemd-modules-load.service [devopsharbor ansible]$ ansible-playbook kubernetes-devops.yml六.利用ansible安装cri-dockerd[devopsharbor ansible]$ tar zxf cri-dockerd-0.4.4.amd64.tgz [devopsharbor ansible]$ ls ansible.cfg cri-dockerd cri-dockerd-0.4.4.amd64.tgz inventory kubernetes-devops.yml [devopsharbor ansible]$ cd cri-dockerd/ [devopsharbor cri-dockerd]$ ls cri-dockerd cri-docker.service cri-docker.socket [devopsharbor cri-dockerd]$ vim cri-docker.service [Service] Typenotify ExecStart/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugincni --pod-infra-container-imagereg.timinglee.org/k8s/pause:3.10.1 ExecReload/bin/kill -s HUP $MAINPID TimeoutSec0 RestartSec2 Restartalways [devopsharbor ansible]$ vim kubernetes-devops.yml - name: devops k8s from ansible hosts: all tasks: - name: setup docker repo yum_repository: name: docker description: docker baseurl: http://172.25.254.254:4444/docker file: docker gpgcheck: no - name: install docker dnf: name: docker-ce state: present - name: setup docker.service replace: path: /lib/systemd/system/docker.service regexp: ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock replace: ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock --iptablestrue - name: setup docker registry copy: content: | { registry-mirrors:[https://reg.timinglee.org] } dest: /etc/docker/daemon.json - name: setup docker certs file: path: /etc/docker/certs.d/reg.timinglee.org state: directory - name: cp certs file copy: src: {{item.src}} dest: {{item.dest}} loop: - src: /etc/docker/certs.d/reg.timinglee.org/ca.crt dest: /etc/docker/certs.d/reg.timinglee.org/ca.crt - src: /etc/docker/certs.d/reg.timinglee.org/ca.crt dest: /etc/pki/ca-trust/source/anchors/ca.crt ######################################################## - name: stup cri-dockerd copy: src: {{item.src}} dest: {{item.dest}} mode: 0755 loop: - src: ./cri-dockerd/cri-dockerd dest: /usr/bin/cri-dockerd - src: ./cri-dockerd/cri-docker.service dest: /lib/systemd/system/cri-docker.service - src: ./cri-dockerd/cri-docker.socket dest: /lib/systemd/system/cri-docker.socket - name: update ca cert shell: update-ca-trust extract;sysctl --system;systemctl daemon-reload - name: start services service: name: {{item}} state: restarted enabled: yes loop: - docker - systemd-modules-load.service - cri-docker [devopsharbor ansible]$ ansible-playbook kubernetes-devops.yml七.利用ansible部署k8s软件[devopsharbor ansible]$ vim kubernetes-devops.yml - name: install kubernetes from ansible hosts: all tasks: - name: setup k8s repo yum_repository: name: kubernetes description: kubernetes baseurl: https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.35/rpm file: kubernetes gpgcheck: no - name: install software in master dnf: name: {{item}} state: present loop: - kubeadm-1.35.7-150500.1.1 - kubelet-1.35.7-150500.1.1 - kubectl-1.35.7-150500.1.1 when: inventory_hostname 172.25.254.100 - name: install software in work node dnf: name: {{item}} state: present loop: - kubeadm-1.35.7-150500.1.1 - kubelet-1.35.7-150500.1.1 when: inventory_hostname 172.25.254.10 or inventory_hostname 172.25.254.20 - name: setup kubectl kubeadm complication lineinfile: path: /root/.bashrc line: | source (kubectl completion bash) source (kubeadm completion bash) when: inventory_hostname 172.25.254.100 - name: start kubelet service: name: kubelet state: started enabled: yes [devopsharbor ansible]$ ansible-playbook kubernetes-devops.yml #让补齐功能生效 [rootk8s-master mnt]# source ~/.bashrc [rootk8s-master mnt]# kubectl 命令后按2此tab键 alpha (Commands for features in alpha) annotate (更新一个资源的注解) api-resources (Print the supported API resources on the server) api-versions (Print the supported API versions on the server, in the form of group/version) apply (Apply a configuration to a resource by file name or stdin) attach (挂接到一个运行中的容器) auth (Inspect authorization) autoscale (Auto-scale a deployment, replica set, stateful set, or replication controller) certificate (Modify certificate resources) [rootk8s-master mnt]# kubeadm certs config init kubeconfig token version completion help join reset upgrade [rootk8s-master mnt]# systemctl status kubelet.service ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; preset: disabled) Drop-In: /usr/lib/systemd/system/kubelet.service.d └─10-kubeadm.conf Active: activating (auto-restart) (Result: exit-code) since Tue 2026-08-18 17:09:25 CST; 1s ago Docs: https://kubernetes.io/docs/ Process: 79433 ExecStart/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ Main PID: 79433 (codeexited, status1/FAILURE)