Amazing Archdocker. k8s

kubernetes入门

2018-11-21  本文已影响59人  静宸丶水默含声

简介

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用(就像canary deployments)。

一、Kubernetes设计架构

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。

1、Kubernetes节点

把服务分为运行在工作节点上的服务和组成集群级别控制板的服务。

Kubernetes主要由以下几个核心组件组成:

除了核心组件,还有一些推荐的Add-ons:

2、分层架构

Kubernetes设计理念和功能其实就是一个类似Linux的分层架构,如下图所示

image

3、kubelet

kubelet负责管理pods和它们上面的容器,images镜像、volumes、etc。

二、Kubernetes的安装

参考:使用Rancher安装k8s

A、准备工作:

0、之前安装过k8s的机器大扫除脚本:
#!/bin/bash

docker rm -f $(docker ps -qa)

rm -rf /var/etcd/

for m in $(tac /proc/mounts | awk '{print $2}' | grep /var/lib/kubelet); do
    umount $m || true
done
rm -rf /var/lib/kubelet/

for m in $(tac /proc/mounts | awk '{print $2}' | grep /var/lib/rancher); do
    umount $m || true
done
rm -rf /var/lib/rancher/

rm -rf /run/kubernetes/

docker volume rm $(docker volume ls -q)

docker ps -a
docker volume ls
1、安装docker:

请注意支持kubernetes的docker版本

# 安装 docker 17.03.x-ce
curl https://releases.rancher.com/install-docker/17.03.sh | sh
2、设置集群上所有主机的hosts文件
root@kubernetes-master:~# cat /etc/hosts
127.0.0.1       localhost
# 可选修改项
127.0.1.1       kubernetes-master
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# 集群节点 
10.221.165.30  kubernetes-master
10.221.165.36  kubernetes-node-1
10.221.165.35  kubernetes-node-2
10.221.165.42  kubernetes-node-3
3、修改hostname 主机名(必须不同!Rancher Server和各Node主机名都不能重复)
root@kubernetes-node-1:~# cat  /etc/hostname 
kubernetes-node-1
4、设置node节点主机的daemon.sh文件,解决下面常见问题一
root@kubernetes-node-1:~# cat /etc/docker/daemon.json 
{ 
    "graph": "/mnt/docker-data",
    "storage-driver": "overlay",
    # 添加dns设置,解决添加node节点主机出错问题
    "dns": ["8.8.8.8", "8.8.4.4", "当前主机ip"]
}
5、关闭防火墙(所有机器 ):
root@kubernetes-node-1:~# systemctl disable ufw
root@kubernetes-node-1:~# systemctl status ufw
● ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

B、正式安装:

1、在master上启动Rancher Server
root@kubernetes-master:~# sudo docker run -d --restart=unless-stopped \
     -e DEFAULT_CATTLE_CATALOG_URL='{"catalogs":{"community":{"url":"https://github.com/rancher/community-catalog.git","branch":"master"},"library":{"url":"https://github.com/niusmallnan/rancher-catalog.git","branch":"k8s-cn"}}}' \
     --name rancher-server \
     -p 8080:8080 rancher/server:stable

2、设置Rancher

常见问题:

1、添加节点主机失败

使用docker logs -f containerId查看日志。

2、K8S仪表板Service unavailable故障的解决办法:

参考:https://blog.csdn.net/CSDN_duomaomao/article/details/78475605?utm_source=blogxgwz0

上一篇 下一篇

猜你喜欢

热点阅读