Skip to content

uglylee/k8s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubernetes介绍

Kubernetes(简称k8s)是Google在2014年6月开源的一个「容器集群管理系统」,用于「跨主机集群」的容器(如docker)自动部署、扩展以及运行应用程序容器的平台,目标是让部署容器化的应用简单并且高效,提供了资源调度 、部署管理、服务发现、扩容缩容、监控,维护等一整套功能。
1)隐藏资源管理和错误处理,用户仅需要关注应用的开发。
2)服务高可用、高可靠。
3)可将负载运行在由成千上万的机器联合而成的集群中。

Kubernetes安装

  • 环境
名称 ip 角色 操作系统 内核 docker版本
k8s-master-01 10.177.177.34 master centos 7.6 5.2.14-1.el7.elrepo.x86_64 docker-ce-18.6.0
k8s-master-02 10.177.177.35 master centos 7.6 5.2.14-1.el7.elrepo.x86_64 docker-ce-18.6.0
k8s-master-03 10.177.177.36 master centos 7.6 5.2.14-1.el7.elrepo.x86_64 docker-ce-18.6.0
k8s-node-01 10.177.177.37 node centos 7.6 5.2.14-1.el7.elrepo.x86_64 docker-ce-18.6.0
k8s-node-02 10.177.177.38 node centos 7.6 5.2.14-1.el7.elrepo.x86_64 docker-ce-18.6.0
keepalive 10.177.177.39 vip
  • 拉取项目
git clone https://dev.biosino.org/git/zhaoli/k8s.git
  • 每个节点安装初始化环境
wget https://dev.biosino.org/seafile/f/c8b71f4377ec408db11f/?dl=1 && mv index.html\?dl\=1  kube1.15.3.tar.gz 
tar zxvf kube1.15.3.tar.gz && cp kube/bin/kubeadm /usr/bin/kubeadm && cd kube/shell && sh init.sh
  • k8s-master-01
echo "10.177.177.34 apiserver.cluster.local" >> /etc/hosts
#初始化集群
kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs
#创建使用命令权限
mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/config
# 安装calico
kubectl apply -f soft/calico/calico.yaml

执行完会输出一些日志,里面包含join需要用的命令

  • k8s-master-02
echo "10.177.177.34 apiserver.cluster.local" >> /etc/hosts
#加入集群
kubeadm join apiserver.cluster.local:6443 --token 9xl3oj.xwpls6jft9tov81o \
    --discovery-token-ca-cert-hash sha256:3aac728342ab0e2993b0cf7abd13ae703eb032828e26121ce7536d58083ad66f \
    --control-plane --certificate-key 753b1037287af5711a9b12678983a6141da93ec5911f6ea868081b6caaff7ffd
#创建使用命令权限
mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/config
#将apiserver.cluster.local映射到本机ip
sed -i s/10.177.177.34 apiserver.cluster.local/10.177.177.35 apiserver.cluster.local/g /etc/hosts
  • k8s-master-03
echo "10.177.177.34 apiserver.cluster.local" >> /etc/hosts
#加入集群
kubeadm join apiserver.cluster.local:6443 --token 9xl3oj.xwpls6jft9tov81o \
    --discovery-token-ca-cert-hash sha256:3aac728342ab0e2993b0cf7abd13ae703eb032828e26121ce7536d58083ad66f \
    --control-plane --certificate-key 753b1037287af5711a9b12678983a6141da93ec5911f6ea868081b6caaff7ffd
#创建使用命令权限
mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/config
#将apiserver.cluster.local映射到本机ip
sed -i s/10.177.177.34 apiserver.cluster.local/10.177.177.35 apiserver.cluster.local/g /etc/hosts
  • k8s-node-01
echo "10.177.177.39 apiserver.cluster.local" >> /etc/hosts
kubeadm join apiserver.cluster.local:6443 --token 9xl3oj.xwpls6jft9tov81o\
    --master 10.177.177.34:6443 \
    --master 10.177.177.35:6443 \
    --master 10.177.177.36:6443 \
 --discovery-token-ca-cert-hash sha256:3aac728342ab0e2993b0cf7abd13ae703eb032828e26121ce7536d58083ad66f
  • k8s-node-02
echo "10.177.177.39 apiserver.cluster.local" >> /etc/hosts
kubeadm join apiserver.cluster.local:6443 --token 9xl3oj.xwpls6jft9tov81o\
    --master 10.177.177.34:6443 \
    --master 10.177.177.35:6443 \
    --master 10.177.177.36:6443 \
 --discovery-token-ca-cert-hash sha256:3aac728342ab0e2993b0cf7abd13ae703eb032828e26121ce7536d58083ad66f
  • 查看集群状态
kubectl get node
  • 取消污点

默认安装完主节点是不能被分配除了系统插件之外的pod的

kubectl taint nodes k8s-master-01 node-role.kubernetes.io/master-

kubectl taint nodes k8s-master-02 node-role.kubernetes.io/master-

kubectl taint nodes k8s-master-03 node-role.kubernetes.io/master-
  • 添加污点

希望某节点尽量不要被分配任务时添加污点

kubectl taint nodes k8s-master-01 node-role.kubernetes.io/master=:PreferNoSchedule

Dashboard

  • 安装dashboard
kubectl create -f soft/dashboard/.
  • 访问dashboard

https://10.177.177.34:32500

  • 生成访问key
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl get secret -n kube-system
kubectl describe secret dashboard-admin-token-mnzgv -n kube-system

token下的一长串就是秘钥

ceph集群

  • 安装ceph集群

安装ceph集群首先确定每台节点有已添加未格式化的硬盘,会自动给每块硬盘创建osd,安装需要等待几分钟

kubectl create -f  pv/ceph/rook/.
  • 查看ceph集群状态
kubectl exec -it rook-ceph-operator-7f7cf9bbff-9gwst  -n rook-ceph ceph status
  • 设置默认storageclass存储

设置默认storageclass存储,这样pvc模版在申请pv时不用配storageclass name

kubectl patch storageclass rook-ceph-block -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published