ansible 安装 k8s Master篇
基础信息:
# ansible --version ansible 2.3.1.0 config file = /etc/ansible/ansible.cfg configured module search path = Default w/o overrides python version = 2.7.10 (default, Dec 19 2017, 00:57:58) [GCC 4.4.7 20120313 (Red Hat 4.4.7-18)]
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
- 首先附上需要的配置文件:
# ll /data/k8s/ 总用量 20 -rw-r--r-- 1 root root 382 7月 11 16:07 k8s-master-apiserver -rw-r--r-- 1 root root 150 7月 11 16:05 k8s-master-config -rw-r--r-- 1 root root 156 7月 11 16:05 k8s-master-etcd.conf -rw-r--r-- 1 root root 91 7月 11 16:08 k8s-master-flanneld -rw-r--r-- 1 root root 149 7月 11 16:04 virt7-docker-common-release.repo
# cat /data/k8s/k8s-master-apiserver KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" KUBE_API_PORT="--port=8080" KUBELET_PORT="--kubelet-port=10250" KUBE_ETCD_SERVERS="--etcd-servers=http://k8s-master:2379" KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" KUBE_API_ARGS="" # cat /data/k8s/k8s-master-config KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://k8s-master:8080" # cat /data/k8s/k8s-master-etcd.conf ETCD_NAME=default ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379" # cat /data/k8s/k8s-master-flanneld FLANNEL_ETCD_ENDPOINTS="http://k8s-master:2379" FLANNEL_ETCD_PREFIX="/kube-centos/network" # cat /data/k8s/virt7-docker-common-release.repo [virt7-docker-common-release] name=virt7-docker-common-release baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/ gpgcheck=0
- ansible plabook -- k8s-master.yml
--- - name: k8s master install hosts: k8s-master remote_user: xxxx become: yes become_method: sudo vars: IP: "{{ ansible_eth0['ipv4']['address'] }}" tasks: - name: hosts lineinfile: path: /etc/hosts line: '{{IP}} k8s-master' - name: selinux lineinfile: path: /etc/selinux/config regexp: '^SELINUX=.*' line: 'SELINUX=disabled' - name: copy k8s yum.repo copy: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: root group: root mode: 0644 backup: yes directory_mode: yes with_items: - { src: '/data/k8s/virt7-docker-common-release.repo', dest: '/etc/yum.repos.d/virt7-docker-common-release.repo' } - name: yum install k8s master package yum: name: "{{ packages }}" enablerepo: virt7-docker-common-release state: present vars: packages: - kubernetes - etcd - flannel - vim - telnet - wget - name: copy k8s conf copy: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: root group: root mode: 0644 backup: yes directory_mode: yes with_items: - { src: '/data/k8s/k8s-master-config', dest: '/etc/kubernetes/config' } - { src: '/data/k8s/k8s-master-etcd.conf', dest: '/etc/etcd/etcd.conf' } - { src: '/data/k8s/k8s-master-apiserver', dest: '/etc/kubernetes/apiserver' } - { src: '/data/k8s/k8s-master-flanneld', dest: '/etc/sysconfig/flanneld' } - name: systemctl start etcd systemd: name: etcd state: started enabled: yes - name: config etcd shell: "{{ item }}" with_items: - etcdctl mkdir /kube-centos/network - etcdctl mk /kube-centos/network/config "{\"Network\":\"172.30.0.0/16\",\"SubnetLen\":24,\"Backend\":{\"Type\":\"vxlan\"}}" - name: systemctl restart service systemd: name: "{{ item }}" state: restarted enabled: yes with_items: - etcd - kube-apiserver - kube-controller-manager - kube-scheduler - flanneld - name: reboot linux command: /sbin/shutdown -r +1 async: 0 poll: 0 ignore_errors: true
- ansible hosts 文件
# head /etc/ansible/hosts [k8s-master] xx.xx.xx.xx [k8s-master:vars] ansible_ssh_user=xxxx ansible_ssh_port=xx ansible_ssh_private_key_file=/root/pem/xxxx.pem
有不同意见的大家可以留言交流。
本文来自博客园, 作者:Star-Hitian, 转载请注明原文链接:https://www.cnblogs.com/Star-Haitian/articles/9296275.html

浙公网安备 33010602011771号