kubernetes内
部署环境
名称
系统
类别
master
centos
主节点
node1
centos
从节点
node2
centos
从节点
docker 安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunkubectl 安装
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet修改docker模式
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"registry-mirrors": ["https://am3hfczx.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker写入内核配置
echo vm.swappiness=0 >> /etc/sysctl.conf
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables关闭selinux & 关闭swap分区
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab网络桥接配置
确保br_netfilter已加载模块。
lsmod|grep br_netfiltercat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --systemkubernetes安装部署
pull 镜像 master节点和node节点操作
curl https://raw.githubusercontent.com/dongs365/docker-images/master/pull_image.sh|bash初始化 master主节点操作 (记录输出的kubeadm join xxxxxxxx)
kubeadm init --pod-network-cidr=10.244.0.0/16用户添加变量信息
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config安装网络 master主节点操作
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml从节点加入集群 node从节点操作
kubeadm join xxxxxxxxxxxxxxxxxxxxxxx第三方命令行监控
curl -Lo kubebox https://github.com/astefanutti/kubebox/releases/download/v0.8.0/kubebox-linux && chmod +x kubebox第三方web kuboard
# 安装
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.6/metrics-server.yaml
kubectl get pods -l k8s.kuboard.cn/name=kuboard -n kube-system
# Master 节点上执行此命令,获取token
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)
# 访问
http://任意一个Worker节点的IP地址:32567/dashboard部署
下载dashboard yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml修改yaml文件,添加 type: NodePort
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
type: NodePort应用dashboard文件
kubectl apply -f recommended.yaml创建用户文件 user.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard应用用户文件
kubectl apply -f user.yaml查看token
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')查看NodePort
kubectl get svc -n kubernetes-dashboard访问 kubernetes-dashboard
https://ip:NodePort常用命令
kubectl get nodes # 查看节点
kubectl get pods # 查看podnginx:部署/弹缩/删除/创建映射/删除映射
kubectl create deployment nginx --image=nginx
kubectl scale deployment nginx --replicas=10
kubectl delete deployments.apps nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl delete services nginx命令补全
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc最后更新于
这有帮助吗?