kubernetes
舵手,飞行员
- 自动装箱,自我修复,水平扩展,服务发现和负载均衡,自动发现和回滚
- 密钥和配置管理,存储编排,批量处理执行
- 集群
-
master(主节点):scaduler(调度器),API server,Controller-Manager(控制管理器),etcd(k8s的db,键值型存储数据库,集群信息的存储,必须做高可用)
-
node: kubelet(接受任务),容器引擎(docker),kube-proxy(service网络的管理与变动,与api-server通信)…
-
Pod: Label,Label Selector
* Label:key=value
* Label Selector: -
Pod:(内部地址)
* 自主式Pod
* 控制器Pod- RelicationController - ReplicaSet(副本集控制器,不直接使用) - Deployment(声明式更新的控制器,用于无状态应用),用的多,(二级HPA,水平伸缩控制器) - Statefulset(有状态副本集控制器,用于有状态应用) - DeamonSet(能够让所有(或者一些特定)的Node节点运行同一个pod) - Job(),Cronjob()
-
HPA(水平伸缩控制器)
- HorizontalPodAutoscaler
-
AddOns: 附加组件(DNS,动态创建,改变,删除)
-
internet–>节点网络,–>集群网络(service网络<其ip地址:iptables或ipvs规则中的生成的地址>),–>Pod网络
-
同一个Pod内的多个容器间:lo
-
各Pod之间的通信
-
Pod与Service之间的通信label标签
-
CNI(容器网络接口,插件):给k8s提供网络,共享节点网络名称空间。作为守护进程运行
- flannel:网络配置cron os,叠加网络
- calico:网络配置,提供网络策略(复杂,但是支持基于BGP,三层网络)
- canel(第一第二种网络的结合):第一种提供网络,第二种提供策略,这一种综合
-
k8s部署
kubeadm方式部署k8s,
- Master节点:kubeadm(手动部署),api-server(pod),etcd(pod),controller-manager(pod),scheduler(pod),kubelet(手动部署),docker(手动部署),kube-proxy(Pod,staticPod静态),flannel(Pod,为pod提供网络)
- Node节点:kubelet(手动部署),docker(手动部署),kube-proxy(Pod),flannel(Pod,为pod提供网络)
1、master,node:kubelet,kubeadm,docker(建议先下载镜像,host设置,时间服务器同步)
2、master:kubeadm init
3、nodes:kubeadm join
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
网卡配置:
#cd /etc/sysconfig/network-scripts/
---------------
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a914396c-e746-43bb-a68c-1f62cdc91202
DEVICE=ens33
ONBOOT=yes
HWADDR=00:0C:29:B6:AD:25
IPV6_PRIVACY=no
ETHTOOL_OPTS="autoneg on"
-----------------------------
#cd /etc/yum.repos.d/
#wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#vim kubernetes.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
#yum repolist
#yum install docker-ce kubelet kubeadm kubectl
启动docker
编辑docker文件
- vim /usr/lib/systemd/system/docker.service
Environment=“HTTPS_PROXY=http://xxx:1080”
Environment=“NO_PROXY=127.0.0.1/16,172.20.0.0.1/16”
kubelet 开机自启动,无需现在启动
kubeadm init --kubernetes-version=v1.12.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12