K8S

kubeadm安装dashboard、Harbor私有仓库

  • K8S
  • 一、安装dashboard
    • 所有节点安装dashboard
      • 方法一
        • 所有节点上传dashboard镜像 dashboard.tar 到 /opt 目录,master节点上传kubernetes-dashboard.yaml文件
      • 方法二
    • 查看所有容器运行状态
    • 使用火狐或者360浏览器访问
    • 创建service account并绑定默认cluster-admin管理员集群角色
    • 获取令牌密钥
  • 二、安装Harbor私有仓库
    • 修改主机名
    • 所有节点加上主机名映射
    • 安装 docker
    • 安装 Harbor
      • 上传 harbor-offline-installer-v1.2.2.tgz 和 docker-compose 文件到 /opt 目录
      • 生成证书
      • 在所有节点上修改daemon.json 文件
      • 在一个node节点上登录harbor
      • 上传镜像
      • 在master节点上删除之前创建的nginx资源
    • 浏览器访问
  • 内核参数优化方案
master(4C/4G,cpu核心数要求大于2)       192.168.100.100     docker、kubeadm、kubelet、kubectl、flannel
node01(2C/4G)                         192.168.100.110     docker、kubeadm、kubelet、kubectl、flannel
node02(2C/4G)                         192.168.100.120     docker、kubeadm、kubelet、kubectl、flannel
Harbor节点(hub.lp.com)              192.168.100.130     docker、docker-compose、harbor-offline-v1.2.2

一、安装dashboard

所有节点安装dashboard

方法一

所有节点上传dashboard镜像 dashboard.tar 到 /opt 目录,master节点上传kubernetes-dashboard.yaml文件
所有节点上
cd /opt/
docker load < dashboard.tar
master节点上
cd /opt/
docker load < dashboard.tarkubectl apply -f kubernetes-dashboard.yaml

方法二

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

查看所有容器运行状态

kubectl get pods,svc -n kube-system -o wide
NAME                                        READY   STATUS    RESTARTS   AGE   IP                NODE     NOMINATED NODE   READINESS GATES
pod/coredns-5c98db65d4-gv5p2                1/1     Running   0          58m   10.244.0.2        master   <none>           <none>
pod/coredns-5c98db65d4-mnwwb                1/1     Running   0          58m   10.244.0.3        master   <none>           <none>
pod/etcd-master                             1/1     Running   0          57m   192.168.100.100   master   <none>           <none>
pod/kube-apiserver-master                   1/1     Running   0          57m   192.168.100.100   master   <none>           <none>
pod/kube-controller-manager-master          1/1     Running   0          57m   192.168.100.100   master   <none>           <none>
pod/kube-flannel-ds-amd64-9d95m             1/1     Running   0          54m   192.168.100.110   node01   <none>           <none>
pod/kube-flannel-ds-amd64-mst9v             1/1     Running   0          54m   192.168.100.100   master   <none>           <none>
pod/kube-flannel-ds-amd64-r2hwn             1/1     Running   0          54m   192.168.100.120   node02   <none>           <none>
pod/kube-proxy-ghxsg                        1/1     Running   0          58m   192.168.100.100   master   <none>           <none>
pod/kube-proxy-lx67s                        1/1     Running   0          56m   192.168.100.110   node01   <none>           <none>
pod/kube-proxy-xd4xp                        1/1     Running   0          56m   192.168.100.120   node02   <none>           <none>
pod/kube-scheduler-master                   1/1     Running   0          57m   192.168.100.100   master   <none>           <none>
pod/kubernetes-dashboard-859b87d4f7-n2br6   1/1     Running   0          31m   10.244.2.3        node02   <none>           <none>NAME                           TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
service/kube-dns               ClusterIP   10.96.0.10    <none>        53/UDP,53/TCP,9153/TCP   58m   k8s-app=kube-dns
service/kubernetes-dashboard   NodePort    10.96.16.10   <none>        443:30001/TCP            31m   k8s-app=kubernetes-dashboard

使用火狐或者360浏览器访问

https://node02:30001/
https://192.168.100.120:30001/

创建service account并绑定默认cluster-admin管理员集群角色

kubectl create serviceaccount dashboard-admin -n kube-systemkubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

获取令牌密钥

kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')Name:         dashboard-admin-token-t2gfw
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: dashboard-adminkubernetes.io/service-account.uid: f4f03ee3-19a4-40bb-a0e0-e8db673aa424Type:  kubernetes.io/service-account-tokenData
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tdDJnZnciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZjRmMDNlZTMtMTlhNC00MGJiLWEwZTAtZThkYjY3M2FhNDI0Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.nuLMsyzuR1g0gg3PolrepXB7J5V4fXmCx0oo4zEhBfNoRBqv7j10GTgRAIjegE61hH699DE-M9CtRPd0N4sjFSgIgwIt5WjYIKWlJMBfxArNzusfUSVbMpyA1fS-kIBuA9nByddruZN3A_iD6zkrxlgCX83w-TJj4lYe6IPn7IRNV_Lrw8Wm9LFPCkp75ioCX0DcHsSFtAPYCBtt60-w3-VzT-X3f_bn3FsXgfY6HoDrxyxX9jAh211ytjYHYglo8A6DbqrCbLjkNR_7lVms4CeyDdp3PSlvJ1wXRaAPru9Bo2hPVo0yaVXus4vijCuTZDv1izBzOKhtsTdqMJNtTQ

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tdDJnZnciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZjRmMDNlZTMtMTlhNC00MGJiLWEwZTAtZThkYjY3M2FhNDI0Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.nuLMsyzuR1g0gg3PolrepXB7J5V4fXmCx0oo4zEhBfNoRBqv7j10GTgRAIjegE61hH699DE-M9CtRPd0N4sjFSgIgwIt5WjYIKWlJMBfxArNzusfUSVbMpyA1fS-kIBuA9nByddruZN3A_iD6zkrxlgCX83w-TJj4lYe6IPn7IRNV_Lrw8Wm9LFPCkp75ioCX0DcHsSFtAPYCBtt60-w3-VzT-X3f_bn3FsXgfY6HoDrxyxX9jAh211ytjYHYglo8A6DbqrCbLjkNR_7lVms4CeyDdp3PSlvJ1wXRaAPru9Bo2hPVo0yaVXus4vijCuTZDv1izBzOKhtsTdqMJNtTQ

//复制token令牌直接登录网站

二、安装Harbor私有仓库

修改主机名

hostnamectl set-hostname hub.lp.com

所有节点加上主机名映射

echo '192.168.100.130 hub.lp.com' >> /etc/hosts

安装 docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.iomkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://q7n9qid7.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"insecure-registries": ["https://hub.lp.com"]
}
EOFEOFsystemctl start docker
systemctl enable docker

安装 Harbor

上传 harbor-offline-installer-v1.2.2.tgz 和 docker-compose 文件到 /opt 目录

cd /opt
cp docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose

tar zxvf harbor-offline-installer-v1.2.2.tgz
cd harbor/
vim harbor.cfg
5  hostname = hub.lp.com
9  ui_url_protocol = https
24 ssl_cert = /data/cert/server.crt
25 ssl_cert_key = /data/cert/server.key
59 harbor_admin_password = Harbor12345


生成证书

mkdir -p /data/cert
cd /data/cert
#生成私钥
openssl genrsa -des3 -out server.key 2048
输入两遍密码:123456

#生成证书签名请求文件
openssl req -new -key server.key -out server.csr
输入私钥密码:123456
输入国家名:CN
输入省名:BJ
输入市名:BJ
输入组织名:LP
输入机构名:LP
输入域名:hub.lp.com
输入管理员邮箱:admin@lp.com
其它全部直接回车#备份私钥
cp server.key server.key.org

#清除私钥密码
openssl rsa -in server.key.org -out server.key
输入私钥密码:123456

#签名证书
openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crtchmod +x /data/cert/*
cd /opt/harbor/
./install.sh


浏览器访问:https://hub.lp.com
用户名:admin
密码:Harbor12345

在所有节点上修改daemon.json 文件

cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://q7n9qid7.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"insecure-registries": ["https://hub.lp.com"]
}
EOFsystemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service

在一个node节点上登录harbor

docker login -u admin -p Harbor12345 https://hub.lp.com

上传镜像

docker tag nginx:latest hub.lp.com/library/nginx:v1
docker push hub.lp.com/library/nginx:v1

在master节点上删除之前创建的nginx资源

kubectl delete deployment nginxkubectl run nginx-test1 --image=hub.lp.com/library/nginx:v1 --port=80 --replicas=2

kubectl expose deployment nginx-test1 --port=30000 --target-port=80
kubectl get svc,pods
NAME                       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
service/kubernetes         ClusterIP   10.96.0.1      <none>        443/TCP           3h16m
service/nginx              NodePort    10.96.76.72    <none>        80:32277/TCP      3h7m
service/nginx-deployment   NodePort    10.96.31.178   <none>        30000:32584/TCP   36m
service/nginx-test1        ClusterIP   10.96.208.79   <none>        30000/TCP         22sNAME                               READY   STATUS    RESTARTS   AGE
pod/nginx-test1-7c5f7ccf5b-9ppfw   1/1     Running   0          53s
pod/nginx-test1-7c5f7ccf5b-sgvjl   1/1     Running   0          53s

yum install ipvsadm -y
ipvsadm -Ln

kubectl edit svc nginx-test1
25   type: NodePort                     #把调度策略改成NodePort

kubectl get svc
NAME               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
kubernetes         ClusterIP   10.96.0.1      <none>        443/TCP           3h20m
nginx              NodePort    10.96.76.72    <none>        80:32277/TCP      3h12m
nginx-deployment   NodePort    10.96.31.178   <none>        30000:32584/TCP   40m
nginx-test1        NodePort    10.96.208.79   <none>        30000:31942/TCP   4m37s

浏览器访问

192.168.100.100:31942
192.168.100.110:31942
192.168.100.120:31942

内核参数优化方案

cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0                                    #禁止使用 swap 空间,只有当系统内存不足(OOM)时才允许使用它
vm.overcommit_memory=1                         #不检查物理内存是否够用
vm.panic_on_oom=0                              #开启 OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963                           #指定最大文件句柄数
fs.nr_open=52706963                                #仅4.4以上版本支持
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF

Kubernetes-------kubeadm安装dashboard、Harbor私有仓库相关推荐

  1. 【Kubernetes系列】Kubenetes如何访问Harbor私有仓库(401 Unauthorized问题解决)

    目录 一.问题描述 二.解决方法 1.登录 2.查看登录的密钥数据 3.加密密钥 4.Harbor 上创建机器人账号 5.创建 Secret (1)方式一:命令行创建 (2)方式二:yaml 文件创建 ...

  2. k8s-kubeadm和Harbor私有仓库部署

    部署k8s-kubeadm 文章目录 环境准备 需求: 环境部署 部署K8S集群 //设定kubectl //所有节点部署网络插件flannel //测试 pod 资源创建 部署 Dashboard ...

  3. 1+X 云计算运维与开发(中级)案例实战——搭建harbor私有仓库并实现主从同步

    1+X 云计算运维与开发(中级)案例实战--搭建harbor私有仓库并实现主从同步 前言 思路 实操 1.(个人习惯)修改主机名,添加主机映射 2. 配置镜像加速器 3. 生成CA证书,并分发证书 4 ...

  4. Docker容器私有仓库——Harbor私有仓库的搭建

    Docker容器私有仓库--Harbor私有仓库的搭建 一.Harbor介绍 1.Harbor概念 2.Harbor的核心组件 3.Harbor的优点 二.Harbor搭建的环境准备 1.当前Harb ...

  5. docker 从harbor 拉取镜像慢_Kubernetes-通过Rancher从Harbor私有仓库拉取镜像

    引言   前一篇文章详细描述了如何使用rancher搭建Kubernetes高可用集群,集群搭建好了后,我们就需要开始部署应用了,那么如何从私有镜像仓库拉取镜像呢? 原理   Harbor使用了基于角 ...

  6. 这就是你日日夜夜想要的docker!!!---------Harbor私有仓库

    文章目录 一.Harbor私有仓库介绍 1.什么是Harbor?有什么作用? 2.harbor的特性 3.harbor配置文件参数 二.部署Harbor私有仓库 1.harbor服务器安装harbor ...

  7. Docker容器之harbor私有仓库部署与管理

    Docker容器之harbor私有仓库部署与管理 前言 一.Harbor概述 二.Harbor的特性 三.Harbor的构成 四.Harbor私有仓库搭建 (1)安装docker-compose (2 ...

  8. Docker harbor私有仓库部署与管理

    Docker harbor私有仓库部署与管理. 前言 一.什么是Harbor 二.Harbor的特性 三.Harbor的构成 四.Harbor部署 4.1 环境准备 4.2 部署Docker Comp ...

  9. docker push到harbor私有仓库出现的相关问题及解决办法

    目录 0. 我们打开harbor的镜像仓库, 可以看到有推送仓库的命令, 包含了具体地址 1. 但是我在执行push命令报错了,  Get https://10.6.119.106/v2/: dial ...

最新文章

  1. 字符串处理函数C语言实现(一)
  2. linux下将目录授权给其他用户的步骤
  3. spark的Web UI中的Storage啥信息都没有
  4. Android_(游戏)打飞机04:绘画敌机、添加子弹
  5. 9种让肌肤美白的简单方法 - 生活至上,美容至尚!
  6. 适时突破[我眼中的戴尔转型]
  7. Java StringTokenizer类使用方式
  8. PCB绘图要点QA汇总
  9. vim 插件安装和卸载
  10. # 数学基础task 01 函数极限与连续性
  11. Squid安装及运行控制_wuli大世界_新浪博客
  12. Flashpaper去掉toolbar,去掉打印的方法
  13. pip install使用豆瓣库
  14. 织梦后台登录后页面一片空白怎么办?
  15. C语言实例5——用*号输出字母C的图案。
  16. 动态内存的分配与释放
  17. Alphalens笔记
  18. C#测试网络连接测试
  19. 用c语言switch计算奖金,求助。。关于用switch编写简易计算器
  20. Bootstrap浏览器兼容性

热门文章

  1. ubuntu服务器版安装桌面
  2. Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
  3. 英制、美制、公制螺纹标准
  4. 什么是项目管理软件中的时间管理?
  5. 计算机快速启动栏在哪,win7系统怎么找到快速启动栏
  6. 域名备案批量查询工具-域名备案查询
  7. (附源码)ssm+mysql+基于微信平台的牙科就诊信息管理系统的设计与实现 毕业设计211157
  8. 【日语论文】新干线对日本旅游业发展的影响-以秋田新干线为例(节选)
  9. codeforces Div3 E. Boxers(签到题)
  10. 假设指令:MOV BX