IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> kubeadm方式部署Kubernetes -> 正文阅读

[系统运维]kubeadm方式部署Kubernetes

kubeadm方式部署Kubernetes
准备三台机器
192.168.174.102 ?master
192.168.174.103 ?noder1
192.168.174.104 ?noder2

关闭防火墙:(三台机器)
systemctl stop firewalld
systemctl disable firewalld

关闭selinux::(三台机器)
sed -i 's/enforcing/disabled/' /etc/selinux/config?
setenforce 0

关闭swap::(三台机器)
$ swapoff -a ?$ 临时
$ vim /etc/fstab ?$ 永久

添加主机名与IP对应关系(记得设置主机名)::(三台机器)
$ cat /etc/hosts
192.168.174.102 ?master
192.168.174.103 ?noder1
192.168.174.104 ?noder2

hostnamectl set-hostname hostname

将桥接的IPv4流量传递到iptables的链: (三台机器)
$ cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
$ sysctl --system


4. 所有节点安装Docker/kubeadm/kubelet ? (三台机器)

Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。

4.1 安装Docker
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
$ yum -y install docker-ce-20.10.7-3.el7
$ systemctl enable docker && systemctl start docker
$ docker --version
Docker version 20.10.7, build f0df350
4.2 添加阿里云YUM软件源
$ cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

4.3 安装kubeadm,kubelet和kubectl
由于版本更新频繁,这里指定版本号部署:
$ yum install -y kubelet-1.16.0 kubeadm-1.16.0 kubectl-1.16.0
$ systemctl enable kubelet

5. 部署Kubernetes (Master)
在192.168.31.63(Master)执行。
$ kubeadm init \
? --apiserver-advertise-address=192.168.174.102\
? --image-repository registry.aliyuncs.com/google_containers \
? --kubernetes-version v1.16.0 \
? --service-cidr=10.1.0.0/16 \
? --pod-network-cidr=10.244.0.0/16

..
kubeadm join 192.168.174.102:6443 --token 1cfp0o.z1wintfa8n1es7ud \
? ? --discovery-token-ca-cert-hash sha256:51eeb8f4bf66ddd78d418a5366fc9b5b96ea8c727a1a3046bb8f6b8ebc6d3482 ? ? ? #记录下两条给到node1和noder2 执行加入


由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。
使用kubectl工具: (以下步骤在第五步跑完后显示在后面)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl get nodes

6. 安装Pod网络插件(CNI) (在master执行)
kubectl apply -f ?https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml [1.16]
确保能够访问到quay.io这个registery。?
# kubectl get pods -n kube-system

7. 加入Kubernetes (Node执行)
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:
#注意:以下命令是步骤5 完成后最后一小段
kubeadm join 192.168.174.102:6443 --token 1cfp0o.z1wintfa8n1es7ud \
? ? --discovery-token-ca-cert-hash sha256:51eeb8f4bf66ddd78d418a5366fc9b5b96ea8c727a1a3046bb8f6b8ebc6d3482 ? ? ? #记录下两条给到node1和noder2 执行加入

8. 测试kubernetes集群(master)
在Kubernetes集群中创建一个pod,验证是否正常运行:
$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pod,svc
$ kubectl get pod,svc -o wide
====================================
noder1和noder2拉取镜像
master机器执行
# kubectl get po -A
...
...
kube-system ? kuboard-59bdf4d5fb-ffn8d ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ? ?61m
kube-system ? metrics-server-78664db96b-5krwm ? 1/1 ? ? Running ? 0 ? ? ? ? ?61m

# kubectl ?describe po metrics-server-78664db96b-5krwm ?-n kube-system
..."eipwork/metrics-server:v0.3.7"
在node1和node2上拉取
# docker ?pull eipwork/metrics-server:v0.3.7
==============================================

9. 部署 kuboard(建议用)(master)
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.7/metrics-server.yaml

查询web登录端口
[root@localhost yum.repos.d]# kubectl ?get svc -A
NAMESPACE ? ? NAME ? ? ? ? ? ? TYPE ? ? ? ?CLUSTER-IP ? ? EXTERNAL-IP ? PORT(S) ? ? ? ? ? ? ? ? ?AGE
default ? ? ? kubernetes ? ? ? ClusterIP ? 10.1.0.1 ? ? ? <none> ? ? ? ?443/TCP ? ? ? ? ? ? ? ? ?95m
default ? ? ? nginx ? ? ? ? ? ?NodePort ? ?10.1.182.217 ? <none> ? ? ? ?80:31592/TCP ? ? ? ? ? ? 22m
kube-system ? kube-dns ? ? ? ? ClusterIP ? 10.1.0.10 ? ? ?<none> ? ? ? ?53/UDP,53/TCP,9153/TCP ? 95m
kube-system ? kuboard ? ? ? ? ?NodePort ? ?10.1.85.219 ? ?<none> ? ? ? ?80:32567/TCP ? ? ? ? ? ? 10m
kube-system ? metrics-server ? ClusterIP ? 10.1.226.45 ? ?<none> ? ? ? ?443/TCP ? ? ? ? ? ? ? ? ?10m

master或者node机器的id:32567(如master机器192.168.174.104:32567)

拥有的权限(登录界面) (获取到的钥匙用于登录授权钥匙 “复制粘贴”)
此Token拥有 ClusterAdmin 的权限,可以执行所有操作
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)

执行如下命令可以获得 只读用户 的 Token
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-viewer | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)

效果:

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:13:10  更:2021-09-11 19:14:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:00:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码