k8s概念和安装

家住魔仙堡 提交于 2020-05-04 20:52:27

每一轮新技术的兴起,对个人既是挑战也是机遇,新技术未必将来会成为主流,这需要自己的眼光判断。新技术意味着新的市场和需求,初期掌握这种技术的人并不多,而市场需求会越来越大。k8s毫无疑问已经成为并且长期会是主流,越早上车就意味着超越了一批同行。

核心概念

cluster

  • 计算,存储,网络资源的集合

Master

  • 主要负责调度
  • kube-apiserver
  • kube-scheduler
  • kube-conroller-manager
  • etcd
  • pod网络

Node

  • 运行容器应用
  • kubelet
  • kube-proxy
  • pod网络

Pod

  • 最小调度单位
  • 相同的ip和port,可以用localhost通信,共享volume

Controller

  • k8s通过controller来管理pod,定义了pod的部署特性,如副本个数,在哪个node运行。
  • Deployment:管理pod的多个副本,并且以期望状态运行。
  • Replicaet:pod的副本管理
  • DaemonSet:每个Node最多运行一个pod副本。
  • StatefuleSet:
  • Job:运行结束就删除

Service

  • 定义外界访问pod的方式,有自己的端口和ip,提供负载均衡。

Namespace

  • default:默认
  • kube-system: k8s自己创建的系统资源

安装

sudo su

cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF

apt update 

(E084DAB9 为上面报错的key后8位或整个字符串)
gpg --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
gpg --export --armor E084DAB9 | sudo apt-key add -


sudo swapoff -a

kubeadm config images list

images=( 
    kube-apiserver:v1.17.5
    kube-controller-manager:v1.17.5
    kube-scheduler:v1.17.5
    kube-proxy:v1.17.5
    pause:3.1
    etcd:3.4.3-0
    coredns:1.6.5
)

for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
kubeadm init 


mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

(https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml)
kubectl apply -f /home/songkaizong/桌面/flannel.yml

kubectl taint nodes --all node-role.kubernetes.io/master-
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!