k8s 搭建

  • 准备三台以上的服务器

$ hostname #查看主机名称
#把所有服务器ip以及主机名 加入 /etc/hosts文件
echo 10.0.8.1  master-8-1 >>/etc/hosts
echo 10.0.8.11 node-8-11 >>/etc/hosts
echo 10.0.8.12 node-8-12 >>/etc/hosts
  • 安装kubectl、kubeadm、kubelet

#更新apt包索引并安装使用 Kubernetesapt存储库所需的包:
    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl
#下载公共签名密钥
    sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
#添加k8s apt存储库
    echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
#更新apt源  安装kubectl、kubelet、kubeadm
    sudo apt-get update
    sudo apt-get install -y kubelet kubeadm kubectl
#锁定版本
    sudo apt-mark hold kubelet kubeadm kubectl
  • 安装证书

apt-get update && sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
tee /etc/apt/sources.list.d/kubernetes.list <<EOF 
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
  • 初始化master、node

#master节点初始化
  kubeadm init  --pod-network-cidr=172.30.0.0/16 --service-cidr=10.10.10.0/24 \
--token-ttl=0 \
--image-repository registry.aliyuncs.com/google_containers

#根据提示分别在master、node节点操作
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
#node节点需要复制 master节点中 /etc/kuberbetes/admin.conf

#node节点加入主节点(命令是 kubeadm init 后 提示的最后一行)
kubeadm join 10.151.30.57:6443 --token 8xomlq.0cdf2pbvjs2gjho3 --discovery-token-ca-cert-hash sha256:92802317cb393682c1d1356c15e8b4ec8af2b8e5143ffd04d8be4eafb5fae368
#如果忘记了或之后添加新节点可通过<kubeadm token create --print-join-command>创建期限token 查看

#检查master状态:
kubectl get nodes
    1. 如果是NotReady
    2. 检查pods kubectl get pods -A
    3. 如果 kube-system   coredns 状态为pending
    4. kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #过程比较久需要下镜像

#(需要修改配置 kubectl edit cm kube-flannel-cfg -n kube-system
  {
      "Network": "10.244.0.0/16", ==> "172.30.0.0/16" #master节点初始化时 指定的地址范围
      "Backend": {
        "Type": "vxlan"
      }
    }
  )
    5. 如果不是以上情况  则查看日志journalctl -f -u kubelet.service
  • 检查健康状态

root@master-101-1:~# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok
scheduler            Unhealthy    Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused
etcd-0               Healthy   {"health":"true"}

vim /etc/kubernetes/manifests/kube-controller-manager.yaml
vim /etc/kubernetes/manifests/kube-scheduler.yaml
--port=0 #删除这行
systemctl restart kubelet
  • 授权docker secret

如果需要获取私有仓库的镜像则需要配置 secret
docker login 
kubectl create secret docker-registry regcred \
  --docker-server={你的镜像仓库服务器} \
  --docker-username={你的用户名} \
  --docker-password={你的密码} \
  --docker-email={你的邮箱地址}
#成功创建名为 regcred的 secret,只在当前命名空间下生效 指定命名空间 添加参数 -n {namespace}
#pod中引用方式
apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: regcred
#参见<https://kubernetes.io/zh/docs/tasks/configure-pod-container/pull-image-private-registry/>
  • 配置流量转发

echo net.ipv4.ip_forward=1 >> /etc/sysctl.d/10-ipv4-forwarding-on.conf
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.d/k8s.conf
echo net.ipv4.vs.conntrack=1  >> /etc/sysctl.d/k8s.conf
sysctl --system
  • kube-proxy设置代理模式为ip_vs

为服务提供外部可访问ip
#参见<https://metallb.universe.tf/installation/>
kubectl edit configmap kube-proxy -n kube-system

# 把mode改为ipvs strictApp改成true,然后删除所有kube-proxy pod
kubectl  get  pod -n kube-system -o wide |grep kube-proxy | awk '{print $1}' | xargs kubectl delete pod -n kube-system
kubectl  get  pod -n kube-system -o wide |grep coredns | awk '{print $1}' | xargs kubectl delete pod -n kube-system

#安装metalLB 
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.11.0/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.11.0/manifests/metallb.yaml
#layer2 Configuration 配置 layer2模式 ip地址范围
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
#addresses为 kubectl cluster-info 中ip地址
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.1.240-192.168.1.250  

常见故障

备忘单

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容