接上篇使用kuberspay无坑安装生产级Kubernetes集群,在使用kubespray
安装好了kubernetes之
后,我们需要在自己的客户端电脑配置kubectl,如何将集群的配置信息在本地配置呢,我们使用下面的脚本,放在scripts\copy-kubeconfig.yaml
下,内容为:
源码地址:http://www.wisely.top/2017/07/04/kubespray-kubectl-config/
---
- hosts: kube-master[0]
gather_facts: no
become: yes
tasks:
- fetch:
src: "/etc/kubernetes/ssl/{{ item }}.pem"
dest: "{{ playbook_dir }}/kubectl/{{ item }}.pem"
flat: True
with_items:
- admin-{{ inventory_hostname }}-key
- admin-{{ inventory_hostname }}
- ca
- name: export hostname
set_fact:
kubectl_name: "{{ inventory_hostname }}"
- hosts: localhost
connection: local
vars:
kubectl_name: "{{ hostvars[groups['kube-master'][0]].kubectl_name }}"
cluster_name: "{{ hostvars[groups['kube-master'][0]].cluster_name }}"
kube_apiserver_port: "{{ hostvars[groups['kube-master'][0]].kube_apiserver_port }}"
system_namespace: "{{ hostvars[groups['kube-master'][0]].system_namespace }}"
tasks:
- name: "check if context admin@{{ cluster_name }} exists"
command: kubectl config get-contexts admin@{{ cluster_name }}
register: kctl
failed_when: kctl.rc == 0
- block:
- name: "create cluster {{ cluster_name }}"
command: >
kubectl config set-cluster {{ cluster_name }}
--server=https://{{ kubectl_name }}:{{ kube_apiserver_port }}
--certificate-authority={{ playbook_dir }}/kubectl/ca.pem
--embed-certs
- name: "create credentials admin"
command: >
kubectl config set-credentials admin
--certificate-authority={{ playbook_dir }}/kubectl/ca.pem
--client-key={{ playbook_dir }}/kubectl/admin-{{ kubectl_name }}-key.pem
--client-certificate={{ playbook_dir }}/kubectl/admin-{{ kubectl_name }}.pem
--embed-certs
- name: "create context admin@{{ cluster_name }}"
command: >
kubectl config set-context admin@{{ cluster_name }}
--cluster={{ cluster_name }}
--namespace={{ system_namespace }}
--user=admin
- name: "use context admin@{{ cluster_name }}"
command: kubectl config use-context admin@{{ cluster_name }}
when: kctl.rc != 0
- name: "clean up fetched certificates"
file:
state: absent
path: "{{ playbook_dir }}/kubectl"
在kubespray
根目录执行:
ansible-playbook -i inventory/inventory.cfg scripts/copy-kubeconfig.yaml
执行完成后,如果你本机的hosts
文件已经配置了node1
对应的ip,配置已经完成;如果没有配置,编辑vi /Users/wangyunfei/.kube/config
,将node1
修改为192.168.1.130
。此时再执行:
wangyunfeideMBP:kubespray wangyunfei$ kubectl get node
NAME STATUS AGE VERSION
node1 Ready,SchedulingDisabled 3d v1.6.1+coreos.0
node2 Ready 3d v1.6.1+coreos.0
node3 Ready 3d v1.6.1+coreos.0
相关推荐
- **安装与配置**: 包括如何安装 Kubernetes,设置客户端工具(如 kubectl),以及如何创建和管理集群。 - **基本命令**: 如何使用 `kubectl` 进行基本的操作,例如创建、查看、更新和删除资源。 - **Pod 和容器**: ...
- **3.1.1 kubectl安装**: 介绍如何安装kubectl客户端工具。 - **3.1.2 单机部署**: 提供快速部署Kubernetes集群的方法,适用于测试环境。 - **3.1.3 特性开关**: 配置Kubernetes集群支持的特性集。 **3.2 集群部署...
4.4 kubectl客户端 kubectl是Kubernetes的命令行工具,用于与Kubernetes API进行通信。 4.5 附加组件 部署 Dashboard、Heapster、EFK(Elasticsearch、Fluentd、Kibana)等额外组件来提供图形界面和日志管理...
11. **维护和更新**:部署完成后,Kubespray还可以帮助进行集群升级、添加或删除节点等操作。 通过以上步骤和知识点,我们可以了解如何利用Docker和Kubespray在国内互联网环境下搭建一个高可用的Kubernetes集群。...
API Server 接受客户端(如 kubectl)的请求并存储在 etcd 中,Scheduler 负责选择合适的 Node 运行 Pod,Controller Manager 监控并执行各种控制器任务。etcd 是一个分布式键值存储系统,保存整个集群的配置。 ...